ich hoffe die Community hier kann mir weiter helfen...
Kurze Erklärung:
Ich möchte einen Schieberegister verwenden, um Ausgänge für LEDs zu sparen...
Soweit so gut...
Kleines BSP
Eine LED-Gruppe besteht aus 4 RGB-LEDs, die Parallel verschaltet werden.
Das heißt mit einem Ausgang vom Schieberegister kann ich alle vier LEDs in blau leuchten lassen und mit einem zweiten Ausgang dann alle in rot und mit dem dritten alle grün..
Natürlich nacheinander.
Funktioniert auch alles.
Jetzt kommt mein Problem:
die zweite LED-Gruppe (auch 4 RGB-LEDs) würde ich gerne unabhängig von der ersten Gruppe, je nach Bedingung über den gleichen Schieberegister steuern.
Ist es möglich dem Schieberegister zu sagen, dass er zb. nur meinen 5. Ausgang schaltet OHNE die anderen Bits zu ändern???
Arbeiten tue ich mit Konstanten
zb "00000010" wird eingesetzt wenn ich Ausgang 2 auf "1" setzen möchte.
Wenn nun die zweite LED-Gruppe durch eine Bedingung leuchten soll, z.B. am Ausgang 5:
"00010000", dann würde ich Ausgang 2 auf Null setzen.
Das würde ich gerne umgehen, in dem ich sage:
6. Stelle im Byte auf "1".
Geht das überhaupt?
Ich hoffe die Erläuterung ist nicht allzu kompliziert...
Schon mal vielen Dank!
combie:
Nein, ein 74HC 595 kann das nicht!
Aber wieso kannst du dir den alten Wert nicht merken und dort ändern, und das Zeugs dann raus schieben.
Erst mal danke für die schnelle Antwort.
Das heißt ich kann meinen Schieberegister auslesen, abspeichern, und dann den zweiten Code mit dem ersten zusammenführen?
Oder für jede Möglichkeit eine Konstante?
Bei meinem Projekt sind das insgesamt 20 LED-Gruppen a 3 Ausgänge über ein Schieberegister, die alle unterschiedlich leuchten falls die Bedingung passt....
Sorry.. bei Schieberegistern tue ich mich schwer..
das verodert das 5. Bit.
Also wird das 5. Bit gesetzt.
Aber zurück zum Anfang: Warum Schieberegister - und nicht LED-Treiber wie ein MAX7219, HT16K33, SX1509 - alles bessere Varianten als so ein Schieberegister!
Echte LED-Treiber - bei einigen sparst dir dann sogar viele Widerstände.
Eine LED-Gruppe besteht aus 4 RGB-LEDs, die Parallel verschaltet werden.
Das heißt mit einem Ausgang vom Schieberegister kann ich alle vier LEDs in blau leuchten lassen und mit einem zweiten Ausgang dann alle in rot und mit dem dritten alle grün..
Natürlich nacheinander.
Funktioniert auch alles.
Hast Du Leistungsschieberegister? Hat jede LED seinen Vorwiderstand?
Schieberegister gibt es als
SIPO (serial IN - Paralell OUT) und
PISO (Paralell IN Serial OUT)
Das funktioniert immer nur in eine Richtung: Eingang nach Ausgang.
Du kannst in einer Variable den Wert den Du rausschickst abspeichern. So hast Du für das nächste mal den Wert parat.
noiasca:
Aber zurück zum Anfang: Warum Schieberegister - und nicht LED-Treiber wie ein MAX7219, HT16K33, SX1509 - alles bessere Varianten als so ein Schieberegister!
Echte LED-Treiber - bei einigen sparst dir dann sogar viele Widerstände.
Schieberegister waren dann doch nicht die beste Lösung nachdem ich mir die ganzen anderen Treiber angesehen habe.
Dank agmue
und noiasca
Habe mich für was komplett anderes entschieden. Werden RGB Ring LEDs...
Trotzdem nochmal danke an alle.
uwefed:
Hast Du Leistungsschieberegister? Hat jede LED seinen Vorwiderstand?
Die Elektronik passt soweit.. Widerstände, Transistoren etc pp
Wobei Widerstände jetzt integriert sein werden.
Ist mein erstes Projekt. Mal sehen wann der nächste Post kommt?!