Meine Frage heute ist wie gehe ich mit vielen RGB LEDs richtig um?
Mein Ansatz bisher: Alle RGB Kabel zusammen genommen und 3 Pins (mit jeweils 560 Ohm Wiederstand) vom Arduino belegt.
Für die 8 Grounds habe ich den 74595 genommen.
Damit rattere ich nun durch jedes LED und stelle die Farbe ein. Soweit so gut.
2 Probleme springen aber sofort ins Auge:
Die Farben "schlieren"... also je nach vorhergehender Farbe hab ich davon noch ein bisschen was in der nächsten. Ungewollte Pastelltöne.
Und natürlich leuchten die LEDs nicht mehr so hell wie sie könnten.
Ein delay(1) hilft einwenig die Farben intensiver und satter zu machen.
Allerdings bemerkt man schon mit delay(2) ein kleineres Flackern der LEDs. Und ich vermute mal wenn alle angeschlossen sind wird das nur noch schlimmer. (es kommen mindestens nochmals so viele.
Das Schema der Anschlüsse kommt von zwei der 2x2 ButtonPads
void updateLEDs(int value){
digitalWrite(latch, LOW); //Pulls the chips latch low
shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register
digitalWrite(latch, HIGH); //Pulls the latch high displaying the data
}
Nur verwende ich ihn umgekehrt weil ich 8 Grounds habe. Also common cathode würd ich jetzt mal sagen... 3xPlus, 1xMinus
Ich würde mit dem 74HC595 common cathode RGB Leds benutzen und die 3 Anoden, wie im Tutorial, mit dem 74HC595 verbinden. Desweiteren bei 5V für jeden Anodenanschluss einen 220Ohm Widerstand.
Die Dioden sind nur zum Debouncen. Das Problem ist ja hier, dass auf einen LedTreiber verzichtet wird, obwohl ein Pad durch einen TLC einwandfrei angesteuert werden könnte.
Kann der 595 überhaupt soviel sinken? Ich dachte irgendwie nicht dass man den so verwenden kann.
Wenn ich mir das Breakout so anschaue bin ich der Meinung das man die mit Rot, Grün und Blau gekennzeichneten Anschlusse jeweils über einen Widerstand mit 5V verbinden sollte.
Das kommt auf die Leds an, ist ja auch egal ob es CC oder CA Leds sind, daran ändert ja das Breakout nichts.
Das mit den Widerständen: Nein. Immer die Farben getrennt mit Widerständen versehen, nie den gleichen Wert und nie die zusammengelegte Anode oder Kathode
Getrennte R braucht man, da man für ROT in RGB Leds eine niedrigere Spannung benötigt, sonst dominiert sie in der Farbmischung und raucht zudem schneller ab.
Die Dioden sind nicht zum Entprellen da sondern um die Tasten un der Matix voneinander zu isolieren und so einen Mehrfachtastendruck erkennen zu können.
Das tut von Aaron hab ich mir natürlich schon angesehen.
Ich habe nun alle 16 RGBs angeschlossen und damit rumgespielt.
Was ich zum Beispiel machen will ist, dass alle LEDs blau leuchten. Dann mit einem roten Licht da entlangfahren... Wie bei KnightRider mit dem Unterschied das auch die übrigen LEDs blau leuchten.
Jedes ButtonPad hat 4 Grounds und 1xR 1xG 1xB (die Switches mal aussen vorgelassen)
4x4 Grounds = 16
4x3 RGB = 12
Was ist daran falsch?
Um die Farben pro Knopf zu steuern, muss ich sowohl die einzelnen Grounds wie auch die Farben kontrollieren können, da sonst alle 4 Knöpfe gleichzeitig in einer Farbe leuchten.