Die Funktion hier kannst du im setup mit ledLine(); aufrufen.
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.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); } }
Ja, richtig.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 ?
Im Zweifelsfall Elektrotechnik studieren, so wie ich.diesen teil verstehe ich nicht, bzw is mir nicht so klar .... wo kann man sowas nachlesen
oder dieses Wissen herbekommen ... echt klasse =)![]()







Zitieren

Lesezeichen