Go Down

Topic: 8xRGB (Read 6 times) previous topic - next topic

Radar

Hi zusammen.

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

Radar

Hab den Source vergessen, sry.
Code: [Select]


int i = 0;
int led[] = {B11111101, B11111110, B11011111, B11101111, B11110111, B11111011, B01111111, B10111111};
void loop()            
{
 for(i=0;i<8;++i)
 {
   updateLEDs(led[i]);
   switch(i)
   {
     case 0: rgb(0,0,1); break;
     case 1: rgb(0,1,0); break;
     case 4: rgb(1,0,0); break;
     case 5: rgb(0,0,0); break;
     
     case 2: rgb(1,1,1); break;
     case 3: rgb(1,0,0); break;
     case 6: rgb(0,1,0); break;
     case 7: rgb(0,0,1); break;
   }
   delay(1);
 }
}

void rgb(boolean r, boolean g, boolean b)
{
 digitalWrite(red, r); digitalWrite(grn, g); digitalWrite(blu, b);
}


Megaionstorm

#2
Nov 21, 2010, 07:45 pm Last Edit: Nov 21, 2010, 07:45 pm by Megaionstorm Reason: 1
Vielleicht erst mal das Tutorial durchlesen:
http://arduino.cc/en/Tutorial/ShiftOut
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

Ich hab doch gesagt das es funktioniert. Nur, dass ich mit dem Ergebnis nicht zufrieden bin.

Megaionstorm

#4
Nov 21, 2010, 08:33 pm Last Edit: Nov 21, 2010, 08:35 pm by Megaionstorm Reason: 1
Ich würde den 74HC595 mal mit dem Befehl shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend) steuern !

Sind die RGB Leds common cathode oder common anode ?
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

die updateLEDs(int val) habe ich aus dem Tutorial von ardx.com/CODE05

Code: [Select]

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

Megaionstorm

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.

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

Ich kann an dem SetUp nichts ändern, da es die 2x2 ButtonPads sind.
http://www.sparkfun.com/datasheets/Components/Buttons/2x2Button_Pad_Breakout-v01.pdf

Es muss doch möglich sein damit schöne satte Farben hinzukriegen. Ich vermute es ist nur ein Kniff mit dem Programmieren, den ich nicht sehe.

Megaionstorm

#8
Nov 21, 2010, 11:45 pm Last Edit: Nov 22, 2010, 12:01 am by Megaionstorm Reason: 1
Ich vermute mal das jedesmal wenn man eine Taste drückt diese erleuchtet werden soll ?

Button Pad 2x2 - Breakout PCB:
http://www.sparkfun.com/products/9277

Button Pad 2x2 - LED Compatible:
http://www.sparkfun.com/products/7836

Ist das dass richtige Produkt ?

Wenn ja, hast Du die empfohlenen 1N4148 Dioden eingelötet ?

Wieviele Pads benutzt Du zur selben Zeit ?

Bei dem oben erwähnten Pads müssen Common Cathode RGB Leds benutzt werden.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

apogee

#9
Nov 22, 2010, 12:01 am Last Edit: Nov 22, 2010, 12:04 am by saw0 Reason: 1
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.

Grüsse

Megaionstorm

#10
Nov 22, 2010, 12:07 am Last Edit: Nov 22, 2010, 12:24 am by Megaionstorm Reason: 1
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.

Grün und Blau jeweils 100Ohm und Rot 150Ohm.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

apogee

#11
Nov 22, 2010, 12:13 am Last Edit: Nov 22, 2010, 12:14 am by saw0 Reason: 1
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.


apogee

Der Link von Aaron aus den Comments von SFE ist allerdings ohne HC, und verbraucht viele Arduinopins, sonst hätt ich den auch schon gepostet.

Megaionstorm

Vielleicht wird in der Beispielschaltung kein 74HC595 benutzt wegen dem PWM ?
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Go Up