Stromversorgung LED Matrix

Hallo,

Ich bin dabei mir eine 8x8 LED-Marix zu bauen. Pro Spalte soll ein 74HC595 Schieberegister die LEDs ansteuern. Die LEDs haben eine Stromaufnahme von 20mA. Bedeutet, wenn alle 64 LEDs leuchten eine gesamt Stromaufnahme von 1280mA.

Der Arduino soll meines Wissens nach per USB "nur" 500mA hergeben, da der USB-Port ja nicht mehr bringt.

Nun habe ich mir ein Schaltnetzteil gekauft welches mir 4,5V mit maximal 2 Ampere liefert.

Wie wäre nun eine sinnvolle und richtige Verkabelung?

  1. Schaltnetzteil an Arduino. Und die 595er mit dem 5V-Ausgangs des Arduino verbinden?

  2. Den Arduino einzeln mit Stromversorgen (USB) und die 595er über das Netzteil und nur die Massen verbinden?

  3. Oder geht das nur mit Treiberbausteinen bzw. Transitoren?

  4. Oder liege ich insgesamt falsch?

Mir ist wichtig, dass ich USB wahlweise benutzen kann und mir der Arduino nicht durchbrennt.

Ich entschuldige mich falls diese Thema hier schon besprochen wurde, habe die Suche benutzt und leider nichts gefunden.

Vielen Dank für eure Hilfe,
gruß phate85

Der Controller auf dem Arduino Board verträgt auf den Versorgungsspannungspings ganz sicher nicht 1A --> für so einen großen Strom brauchst Du geeignete Treiber. Wie man sowas macht steht im Playground:

http://www.arduino.cc/playground/Main/InterfacingWithHardware#Output

Gruß, Udo

Danke Udo. :slight_smile:
Ich hätte jetzt beinahe wieder angefangen auf alle Fragen sinnrichtig zu antworten, aber deine Lösung ist eindeutig besser :wink:

@phate85:
Und zu 4.) Ich würde sagen du liegst überwiegend richtig.

Vielen Dank erstmal für eure Infos.

Allerdings dachte ich es wäre möglich die 8 Stück 74HC595 mit einem extra Netzteil zu Betreiben und den Arduino halt per USB.
Dann wäre ja keine Last auf dem Arduino und die 595er werden ja nur über die DigitalOuts gesteuert.

Wenn ich das richtig verstehe wird in diesem Thread http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1274108424/0#0 ja auch dazu geraten, wobei es hier allerdings um Servos geht... Denke aber es verhält sich ähnlich.

Wie gesagt müssten halt die Masse vom Arduino mit der Masse des Netzteils für die 595 verbunden werden.

Brauch ich denn dringend nen Treiber dafür?! Der könnte doch bei dieser Lösung entfallen?!

Gemeinsame Masse reicht (nicht versch. +5V verbinden!). Ich würde es aber einfacher machen und den Arduino gleich mit speisen (also nicht über USB).
Ansonsten brauchst Du nach dem 595 natürlich einen Treiber (siehe Datenblatt, der kann auch keine 8 LEDs treiben!).

Mal so am Rande.
Du wirst ja wohl die Matrix Zeilen / Spaltenweise ansteuern. Demnach würden maximal 8 LEDs zur gleichen Zeit leuchten.

20mA x 8stk = 160mA

@elchue
Ne, ich wollte schon jeden Pixel zur Zeit einzeln ansteuern und nicht multiplexen, daher ja auch 8 Stück von den 595ern

@Martin Gerken
Danke, Klingt logisch dann wären Arduino und Rest der Schaltung einfach nur ne Parallelschaltung, oder?! Und der Strom kommt dann immer vom Netzteil auch bei bestehender USB-Verbindung?
Also laut Datenblatt kann der 595er 35mA per Outputpin. Und alle gleichzeitig hab ich auch schon zum leuchten gebracht. Oder ist der Gesammtstrom noch irgendwie begrenzt? Das hab ich im Datenblatt nicht raus lesen können?

Vielen Dank,
gruß phate85

@phate85
Ja, ich denke das würde gehen. gemeinsame (geregelte 5V mit 2A Strom) und gemeinsame Masse.

Man multiplext ja gerade deswegen, weil man sich da haufenweise Bauteile sparen kann.

Darf ich fragen warum du jeden Pixel (LED) dauerhaft ansteuern willst ? (nur aus reiner Neugier :wink: )

@Realizer

Aus Performancegründen, denke auch Software seitig an Vorteile.
Als ich Testweise ne Multiplexmatrix angesteuert hab flackerte es teilweise. Ausserdem muss ich dann nicht immer die Schleife für die Matrixansteuerung durchlaufen lassen, was beim Multiplexen ja selbst für ein "Standbild" gemacht werden müsste. Ausserdem kosten die Teile ja nich die Welt.

Wie gesagt um noch mal auf eventuell benötigte Treiber zurück zukommen:

Per Datasheet hat der 74HC595 35mA pro Outputpin zu verfügung.
Und zusätzlich wird hier im ShiftOut-Tutorial http://www.arduino.cc/en/Tutorial/ShiftOut ja auch ohne Treiber gearbeitet und trotzdem alle LEDs gleichzeitig zum Leuchten gebracht.

Ich weiß ich komme jetzt wieder mit was neuem;
Hallo phate85

So wie Du schreibst willst Du 64 LEDs nehmen mit 64 Vorwiderständen an 64 Ausgänge die an 8 Stück 74hc595 hängen.

Warum nimmst Du nicht einen MAX7219. Der kann eine 8x8 matrix ansteuern und ist über I2C programmierbar.
Einmal programmiert macht er alles was es brucht damit die LEDS leuchten. De Arduino kann andere Sachen machen.

Grüße Uwe

hey,

erstmal vielen Dank an alle die mir geholfen haben. Wie beschrieben habe ich die 8 Schiebregister mit einem eigenem Netzteil versorgt und den Arduino nur per USB. Die Massen sind verbunden.

Funktioniert alles einwandfrei und wie gewünscht.
Seltsam ist es nur wenn ich von den Schieberegistern den Saft wegnehme, leuchten die LEDs trotzdem, nur viel dunkler. Wahrscheinlich saugen die (bzw. die Register) dann doch am Arduino von den Latch-, Clock-, oder Datapins.

Ich triggere den Prototypen per Notebook mit Processing. Ist erstmal softwareseitig nur ne Demo und dient nur zum Test.

Video: Arduino LED Prototype Table Test - YouTube

Grüße.