SHOW:
|
|
- or go back to the newest paste.
1 | #include <LedControl.h> | |
2 | #undef round | |
3 | ||
4 | // Teeces V3 Basic Sketch | |
5 | // With dumbed-down easily configured options at the start, | |
6 | // so you can easily adjust chain order, brightness and speeds. | |
7 | ||
8 | // Define devices here. These numbers will change depending on | |
9 | // what order you have everything connected in the chain. | |
10 | int rld1dev=0; //first LED driver on RLD | |
11 | int rld2dev=1; //second LED driver on RLD | |
12 | int rld3dev=2; //third LED driver on RLD | |
13 | // | |
14 | int psi1dev=3; //LED driver on Rear (Green/Yellow) PSI | |
15 | int psi2dev=4; //LED driver on Front (Red/Blue) PSI | |
16 | // | |
17 | int fld1dev=5; //LED driver on FLD 1 | |
18 | int fld2dev=6; //LED driver on FLD 2 | |
19 | // | |
20 | // Logic Display settings... | |
21 | int rldbright=12; // RLD brightness (0 to 15) | |
22 | int fldbright=7; // FLD brightness (0 to 15) | |
23 | int logicdelay=175; // adjust this number to change the speed of the logic patterns (lower is faster) | |
24 | // | |
25 | // PSI settings... | |
26 | int psibright=15; // PSI brightness (0 to 15) | |
27 | int red=2000; // time (in milliseconds) to stay red (default is 2000) | |
28 | int blue=1000; // time (in milliseconds) to stay blue (default is 1000) | |
29 | int yellow=1000; // time (in milliseconds) to stay yellow (default is 1000) | |
30 | int green=2000; // time (in milliseconds) to stay green (default is 2000) | |
31 | // | |
32 | // We're done with setting numbers. | |
33 | // We shouldn't have to change anything below here. | |
34 | // | |
35 | ||
36 | class PSI | |
37 | { | |
38 | bool state; | |
39 | unsigned long timeLast; | |
40 | int delay1, delay2; | |
41 | int device; | |
42 | ||
43 | public: | |
44 | ||
45 | PSI(int _delay1, int _delay2, int _device) | |
46 | { | |
47 | delay1=_delay1; | |
48 | delay2=_delay2; | |
49 | device=_device; | |
50 | ||
51 | state=false; | |
52 | timeLast=0; | |
53 | } | |
54 | ||
55 | void Animate(unsigned long elapsed, LedControl control) | |
56 | { | |
57 | if (state && (elapsed - timeLast) < delay1) return; | |
58 | if (!state && (elapsed - timeLast) < delay2) return; | |
59 | ||
60 | timeLast = elapsed; | |
61 | state=!state; | |
62 | ||
63 | int cols=B11000000; | |
64 | if (state) cols=B00110000; | |
65 | for (int row=0; row<4; row++) | |
66 | control.setRow(device,row,cols); | |
67 | ||
68 | } | |
69 | }; | |
70 | ||
71 | PSI psiFront=PSI(red, blue, psi1dev); //2000 ms on red, 1000 ms on blue. | |
72 | PSI psiRear =PSI(yellow, green, psi2dev); //1000 ms on yellow, 2000 ms on green. | |
73 | LedControl lc=LedControl(12,11,10,7); | |
74 | ||
75 | void setup() | |
76 | { | |
77 | for(int dev=0;dev<lc.getDeviceCount();dev++) | |
78 | { | |
79 | lc.shutdown(dev, false); //take the device out of shutdown (power save) mode | |
80 | lc.clearDisplay(dev); | |
81 | } | |
82 | ||
83 | lc.setIntensity(rld1dev, rldbright); //RLD | |
84 | lc.setIntensity(rld2dev, rldbright); //RLD | |
85 | lc.setIntensity(rld3dev, rldbright); //RLD | |
86 | lc.setIntensity(fld1dev, fldbright); //FLD | |
87 | lc.setIntensity(fld2dev, fldbright); //FLD | |
88 | lc.setIntensity(psi1dev, psibright); //PSI | |
89 | lc.setIntensity(psi2dev, psibright); //PSI | |
90 | ||
91 | // pinMode(13, OUTPUT); | |
92 | // digitalWrite(13, HIGH); | |
93 | ||
94 | //HP lights on constant | |
95 | lc.setRow(psi1dev,4,255); | |
96 | lc.setRow(psi2dev,4,255); | |
97 | ||
98 | } | |
99 | ||
100 | void loop() | |
101 | { | |
102 | unsigned long timeNew= millis(); | |
103 | psiFront.Animate(timeNew, lc); | |
104 | psiRear.Animate(timeNew, lc); | |
105 | animateLogic(timeNew); | |
106 | } | |
107 | ||
108 | void animateLogic(unsigned long elapsed) | |
109 | { | |
110 | static unsigned long timeLast=0; | |
111 | if ((elapsed - timeLast) < logicdelay) return; | |
112 | timeLast = elapsed; | |
113 | ||
114 | - | //for (int dev=0; dev<5; dev++) |
114 | + | for (int row=0; row<6; row++) |
115 | - | for (int row=0; row<6; row++) |
115 | + | |
116 | - | lc.setRow(rld1dev,row,random(0,256)); |
116 | + | lc.setRow(rld1dev,row,random(0,256)); |
117 | - | for (int row=0; row<6; row++) |
117 | + | lc.setRow(rld2dev,row,random(0,256)); |
118 | - | lc.setRow(rld2dev,row,random(0,256)); |
118 | + | lc.setRow(rld3dev,row,random(0,256)); |
119 | - | for (int row=0; row<6; row++) |
119 | + | lc.setRow(fld1dev,row,random(0,256)); |
120 | - | lc.setRow(rld3dev,row,random(0,256)); |
120 | + | lc.setRow(fld2dev,row,random(0,256)); |
121 | - | for (int row=0; row<6; row++) |
121 | + | |
122 | - | lc.setRow(fld1dev,row,random(0,256)); |
122 | + |