Pages: [1] 2 3 ... 5   Go Down
Author Topic: 8xRGB  (Read 5614 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab den Source vergessen, sry.
Code:

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);
}

Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vielleicht erst mal das Tutorial durchlesen:
http://arduino.cc/en/Tutorial/ShiftOut
« Last Edit: November 21, 2010, 01:45:54 pm by Megaionstorm » Logged

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

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich würde den 74HC595 mal mit dem Befehl shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend) steuern !

Sind die RGB Leds common cathode oder common anode ?
« Last Edit: November 21, 2010, 02:35:42 pm by Megaionstorm » Logged

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

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

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

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: November 21, 2010, 06:01:49 pm by Megaionstorm » Logged

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

0
Offline Offline
God Member
*****
Karma: 1
Posts: 659
Arduino sucks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: November 21, 2010, 06:04:17 pm by saw0 » Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: November 21, 2010, 06:24:36 pm by Megaionstorm » Logged

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

0
Offline Offline
God Member
*****
Karma: 1
Posts: 659
Arduino sucks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: November 21, 2010, 06:14:42 pm by saw0 » Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.flickr.com/photos/aarongoselin/5130930286/sizes/l/in/photostream/
http://www.flickr.com/photos/aarongoselin/5130930200/in/photostream/
http://www.aarongoselin.com/active-posts/28-using-sparkfuns-2x2-rgb-led-button-pad-with-an-arduino   ***SOURCECODE***





Ich hoffe das diese Informationen ausreichend sind !
« Last Edit: November 21, 2010, 07:20:42 pm by Megaionstorm » Logged

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

0
Offline Offline
God Member
*****
Karma: 1
Posts: 659
Arduino sucks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vielleicht wird in der Beispielschaltung kein 74HC595 benutzt wegen dem PWM ?
Logged

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

Pages: [1] 2 3 ... 5   Go Up
Jump to: