Waarschijnlijk is onderstaande code heel ver gezocht en kan hem niet testen omdat ik nog wat onderdelen mis.
shift.writeBit(nummer, HIGH) de maakt die pin op de sr HIGH.
Dit geld ook voor LOW.
De kathode voor de layers zitten op 1 t/m 6
De anodes op 13 t/m 48.
Bij bijvoorbeeld Led(5) moet hij dus 17 HIGH maken.
En 13 t/m 48 LOW behalve 17.
En hij moet layer1 high maken en 2 t/m 6 LOW.
Gaat dit zo werken.
Of weet iemand een betere oplossing.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| void Layer(int pin) { for (int i = 1; i <= 6; i++) { shift.writeBit(pin, HIGH); if(i == pin) { continue; } shift.writeBit(i, LOW); } } void Led(int pin, int Number) { if(pin >=7) { // pin 1 t/m 6 activeert Layer1 Layer(1);} else if(pin <= 6) || (pin >= 13) { // pin 7 t/m 12 activeert Layer2 Layer(2);} else if(pin <= 12) || (pin >= 19) { // pin 13 t/m 18 activeert Layer3 Layer(3);} else if(pin <= 18) || (pin >= 25) { // pin 19 t/m 24 activeert Layer4 Layer(4);} else if(pin <= 24) || (pin >= 31) { // pin 25 t/m 30 activeert Layer5 Layer(5);} else if(pin <= 30) || (pin >= 37) { // pin 31 t/m 36 activeert Layer6 Layer(6);} for (int i = 1; i <= 36; i++) { shift.writeBit(pin +12, HIGH); // Led(1,500); maakt pin 13 HIGH if(i == pin) { continue; } shift.writeBit(i +12, LOW); // en maakt 13 t/m 48 LOW behalve LED1=pin 13 } delay(Number); // na alles gedaan te hebben delay(500); } |
shift.writeBit(nummer, HIGH) de maakt die pin op de sr HIGH.
Dit geld ook voor LOW.
De kathode voor de layers zitten op 1 t/m 6
De anodes op 13 t/m 48.
Bij bijvoorbeeld Led(5) moet hij dus 17 HIGH maken.
En 13 t/m 48 LOW behalve 17.
En hij moet layer1 high maken en 2 t/m 6 LOW.
Gaat dit zo werken.
Of weet iemand een betere oplossing.