Die Funktion hier kannst du im setup mit ledLine(); aufrufen.
Code:
void ledLine()
{
long data = 0; // alle Bits aus -> alle LEDs aus
while (data <= 1048576)
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, data >>16);
shiftOut(dataPin, clockPin, MSBFIRST, data >>8);
shiftOut(dataPin, clockPin, MSBFIRST, data);
digitalWrite(latchPin, HIGH);
data = (data<<1)+1;
delay(1000);
}
}
Jedes Bit im long data repräsentiert letztendlich eine LED. Das kleinste Bit wird durch die Zahl 1 dargestellt, das nächstgrößere durch 2, dann 4,8,16... D.h. man kann auch sagen 2^n = repräsentierende Zahl. Bsp: 2^4 = 16, also repräsentiert 16 die 4.LED. Insgesamt gibt's 20 LEDs, also ist nach 2^20 = 1048576 Schluss.
und du hast in der shiftOut Methode noch >>16 >>8 geändert und dann nur data
damit sprichst du erst den dritten, dann den zweiten und zu letzt das erste Schieberegister an richtig ?
Ja, richtig.
diesen teil verstehe ich nicht, bzw is mir nicht so klar .... wo kann man sowas nachlesen
oder dieses Wissen herbekommen ... echt klasse =)
Im Zweifelsfall Elektrotechnik studieren, so wie ich.
Lesezeichen