Stromversorgung für LED-Matrix (Und ein paar Fragen nebenbei)

Hallo,

ich habe ein Problem und hoffe, dass ihr mir vielleicht helfen könnt. Ich hatte bisher mit Elektrotechnik nicht viel am Hut. 11. Klasse Physik abgewählt und damit hatte es sich dann auch erstmal erledigt. Jetzt bin ich aber irgendwie mit dem Arduino in Kontakt gekommen und merke wie toll das Ganze ist.

Ich versuche mir also derzeit alles anzulernen und es macht viel Spaß. Und wie wahrscheinlich jeder Anfänger versuche ich jetzt als erstes Projekt eine LED-Matrix (Multiplexing) zu bauen. Der Plan sieht momentan so aus, dass es jeweils 3cm*3cm große Kästen in einem Bilderrahmen sind. Es soll also später an der Wand hängen.

Jetzt zu meinem Problem: Es soll eine 10*10-Matrix werden mit normalen LEDs. Wenn ich jede dieser LEDs leuchten lasse, muss ein Strom von 2A fließen. (20mA * 100 oder 200mA * 10) Das liefert der Arduino aber nicht (soweit ich weiß). Selbst wenn ich eine Externe Stromquelle anschließe kann ich maximal 1A ziehen. Zwei Stromstecker (bzw Stecker + USB) will ich nicht verwenden.

Mein Ziel ist: Stromstecker-------------Arduino------------Bilderrahmen Der Strom muss nicht durch den Arduino "durchgehen" aber Arduino und Bilderrahmen sollten die gleiche Stromquelle haben.

Was wahrscheinlich ginge wäre ein 7V-Netzteil, das dann an vin und gnd beim Arduino angeschlossen wird und an die Matrix weitergeleitet wird. Wenn ich aber 2 unterschiedliche Spannungen habe muss ich (so wie ich das gelesen habe) die Transistoren ändern, da PNP die gleiche Spannung an der Basis wie am Collector braucht, ist das so richtig?

Gibt es eine Möglichkeit einfach für beides 5V zu bekommen aber eben mit 2A max, bzw. was macht man Normalerweise bei diesem Problem?

Meine Schaltung sieht dann in etwa so aus (nur eben in 10*10): http://www.mikrocontroller.net/wikifiles/6/64/LED_Matrix_8x5.png

Für die Reihen (Q1-Q8) (Maximal 2A) - TIP 42C MBR :: Transistor PNP TO-220 100V 6A 65W

Für die Spalten (Q9-Q13) (Maximal 200A) - TIP 120 STM :: Transistor NPN-Darl TO-220 60V 5A 65W oder oder TIP 50 MBR :: Transistor NPN TO-220 400V 1A 40W

Sind diese Transistoren ok? (Mit Transistoren haben ich momentan noch einige Probleme)

Vielen Dank schonmal für die Antworten Tim

Du kannst die LEDs auch mit 7V laufen lassen. Dem Transistor ist das in diesem Fall egal. Nur die Vorwiderstände anpassen.

EDIT: Würde den BC337 PNP Transistor nehmen. Und alle gleich. In dieser Schaltung fungieren die nur als Schalter.

Wenn Du die LED in einer Matrix verlötet hast kannst Du um jedes einzelne LED ansteuern zu können sowieso nicht alle LED gleichzeitig ansteuern sonder Du mußt multiplexen ( Nur die LED einer Reihe (Spalte) ansteuern und dann die nächste Reihe (Spalte)). Also ist dein Strombedarf 10x20mA. Grüße Uwe

Danke für die Antworten

@R1der: OK wenn das kein Problem ist kann ich also die 7V einfach durch die 5V schalten. Ein Problem weniger

wegen dem BC337 ist ja ein NPN. Zudem kann da nur 0,5A durch, ich brauche ja 2A. Muss ich aber nicht PNP in den Reihen und NPN in den Spalten haben weil die Last einmal davor (spalten) und einmal dahinter (reihen) ist?

@uwefed: Das stimmt zwar, aber ich hab gelesen, dass man einer LED kurzzeitig bis zu dem 10-Fachen an Strom geben kann um auszugleichen, dass die LED ja nur 1/10 der Zeit leuchtet (deshalb das 10*200mA). Und damit bin ich ja wieder bei bis zu 2A.

Sorry, NPN ist richtig.

Es gibt Emitter und Kollektorschaltung. Und die ist unabhängig von Typ. NPN und PNP stehen nur für die Ansteuerung des Transisors. NPN bzw. so wie in deinen Plänen, ist es schon ok. Mit dem einen schaltest du die Versorgung durch, mit dem anderen die Masse. D.h. du hast im Betrieb vor der Diode und nach der Diode einen Transistor.

Zur Belastbarkeit: Berechne mal, wieviel Strom max fließen kann. Das ist der Fall wenn du alle Zeilen ansteuerst. 12 x 0,02A = 0,24A fließen dann über den Transistor der ersten Zeile sowie der letzten Spalte, genauso wie für die anderen Zeilen. ;)

EDIT: Jetzt schreibe ich hier mist... Für die Zeilen max. 5*20mA = 100mA Für die Spalten max. 8*20mA = 160mA

serenDFU: @uwefed: Das stimmt zwar, aber ich hab gelesen, dass man einer LED kurzzeitig bis zu dem 10-Fachen an Strom geben kann um auszugleichen, dass die LED ja nur 1/10 der Zeit leuchtet (deshalb das 10*200mA). Und damit bin ich ja wieder bei bis zu 2A.

Willst Du einen Scheinwerfer bauen? auch mit 20mA und 10x multiplex sieht man die LEDs gut. Grüße Uwe

Naja, das Ganze soll hinter Milchglas und wenn es geht sollte man das ganze auch bei Tag sehen. Eine LED mit 20mA finde ich jetzt nicht zu hell (auch nicht wenn man 100 nebeneinander hat). Worauf ich das Ergebnis eines Tests mit 8 gemultiplexten LEDs schon eher bescheiden fand. Und dann benötige ich ja die 2A. (Wenn wirklich alles leuchtet)

Dennoch, selbst wenn das ganze völlig überdimensioniert ist/wäre. Wie geht man normalerweise mit diesem Problem um, welche Transistoren nimmt man und wie verteilt man am besten den Strom?

Viele Grüße Tim

Gerade in der Entwicklungsphase solltest du davon Abstand nehmen, mit erhöhten Strömen zu arbeiten. Wenn du durch deine Programmierung einen kleinen Fehler machst und das Puls-/Pause-Verhältnis verkehrt ist, brennt dir gleich eine ganze Zeile weg. Wie wäre es einen TLC5940 zu nehmen? Da kann man dann im Nachhinein über einen einzigen Widerstand den LED-Strom einstellen.

Es kommt auch auf die LEDs an. Da gibt es große Unterschiede. Manche kannst du schon gar nicht direkt anschauen, so blenden die. Kauf dir ultrahelle LEDs und es reichen auch 20mA. Und auch bei "ultrahell" gibt es ein breites Spektrum von 2000mCd bis 25000mCd.

Ok klingt überzeugend.

Zumindest erspare ich mir dann eben viele Probleme. Dann schließe ich einfach ein ausreichend starkes Netzteil an (7-12V bei 1A) und kann dann die Matrix direkt vom +5v-Port befüllen. (Zusätzlich hätte ich nicht das Problem des Durchbrennens wenn mal eine Reihe "stehenbleibt". Beim Drücken von Reset oder so)

Jetzt suche ich nur noch geeignete LEDs, bin aber etwas verwirrt von den Angaben der Leuchtstärke.

Die hier sehen aber vom Abstrahlwinkel und der Lichtstärke her recht gut aus, oder? http://www.reichelt.de/LEDs-super-ultrahell/LED5-30-02800-RT/3/index.html?&ACTION=3&LA=2&GROUPID=3019&ARTICLE=126467

Dann bleibt eigentlich nur noch die Frage welche Transistoren ich an die Kathoden (Spalten) und an die Anode (Reihen) hänge. Und welchen Vorwiderstand ich für diese brauche.

Ich war bisher davon ausgeganen, dass ich NPN oder PNP immer danach wähle wo die Last hängt. Daher an Kathoden PNP und Anoden NPN. Ich habe viele unterschiedliche Diagramme im Internet gefunden und bin jetzt etwas verwirrt. Zudem sind an manchen Transistoren Vorwiderstände, an anderen wieder nicht...

Generell wären aber für die Anoden (max 200mA) (je nach Typ) http://www.reichelt.de/2N-Transistoren/2N-5551/3/index.html?&ACTION=3&LA=2&ARTICLE=2059&GROUPID=2879&artnr=2N+5551 oder http://www.reichelt.de/2N-Transistoren/2N-5401/3/index.html?&ACTION=3&LA=2&ARTICLE=2053&GROUPID=2879&artnr=2N+5401 ja ausreichend.

und für die Kathoden (max 20mA): http://www.reichelt.de/2N-Transistoren/2N-3904/3/index.html?&ACTION=3&LA=2&ARTICLE=2020&GROUPID=2879&artnr=2N+3904 oder http://www.reichelt.de/2N-Transistoren/2N-3906/3/index.html?&ACTION=3&LA=2&ARTICLE=2022&GROUPID=2879&artnr=2N+3906

Vielen Dank für die Hilfe

Tim

serenDFU: Ok klingt überzeugend.

Zumindest erspare ich mir dann eben viele Probleme. Dann schließe ich einfach ein ausreichend starkes Netzteil an (7-12V bei 1A) und kann dann die Matrix direkt vom +5v-Port befüllen. (Zusätzlich hätte ich nicht das Problem des Durchbrennens wenn mal eine Reihe "stehenbleibt". Beim Drücken von Reset oder so)

Und so machst Du den Arduino kaputt.

Ich war bisher davon ausgeganen, dass ich NPN oder PNP immer danach wähle wo die Last hängt. Daher an Kathoden PNP und Anoden NPN. Ich habe viele unterschiedliche Diagramme im Internet gefunden und bin jetzt etwas verwirrt. Zudem sind an manchen Transistoren Vorwiderstände, an anderen wieder nicht...

Eigentlich umgekehrt. zwischen Katoden und masse NPN Transistoren und zwischen Aanode und 5V PNP. NPPN und PNP-Transistoren brauchen immer einen Basiswiderstand. Wenn Du irgendwo ein Schaltbild eines Transistors der als Schalter verwendet wird ohne Basiswiderstand findest ist das falsch.

Grüße Uwe

Hallo Uwe,

uwefed: Und so machst Du den Arduino kaputt.

Kannst du mir bitte sagen warum? Ich bin davon ausgegangen, dass der Spannungswandler bis zu 1A durchlässt, und da bin ich ja nichtmal nahe dran. Und 7-9V steht zumindest im Datasheet des Boards als empfohlene Eingangsspannung dran.

uwefed: Eigentlich umgekehrt. zwischen Katoden und masse NPN Transistoren und zwischen Aanode und 5V PNP. NPPN und PNP-Transistoren brauchen immer einen Basiswiderstand. Wenn Du irgendwo ein Schaltbild eines Transistors der als Schalter verwendet wird ohne Basiswiderstand findest ist das falsch.

Sorry, stimmt natürlich, das habe ich verwechselt. Aber z.b. das Bild aus meinem Eingangspost hat keinen Basiswiderstand vor den Anoden. http://www.mikrocontroller.net/articles/LED-Matrix Zudem sind in diesem Bild alle Transistoren PNPs.

Würden denn die Transistoren für den Zweck passen? (also anode->pnp, kathode->npn)

Viele Grüße Tim

Der NCP1117ST50T3G kann zwar bis 1A liefern, wird dabei aber entsprechend warm, und auf dem Arduino Board ist keine Leiterbahn für ansatzweise 1A ausgelegt. Selbst 500mA sehe ich hier bereits als kritisch. Da sollte die Polyfuse bei USB Speisung abschalten.

1A gehört wenn überhaupt auf Streifenrasterplatinen.

Das einfachste was es da gibt, ist die Matrix direkt mit einem 5V Netzteil zu betreiben und von da aus direkt auf den Arduino mit 5V gehen.

serenDFU:
Sorry, stimmt natürlich, das habe ich verwechselt. Aber z.b. das Bild aus meinem Eingangspost hat keinen Basiswiderstand vor den Anoden. http://www.mikrocontroller.net/articles/LED-Matrix
Zudem sind in diesem Bild alle Transistoren PNPs.

Pfeil zeigt aus dem Emitter heraus = NPN
Pfeil zeigt in den Emitter nach innen = PNP


Das sind alles NPN. Der Grund weshalb da die Basiswiderstände fehlen steht dort:
“Q1-Q8 arbeiten als Emitterfolger (Kollektorschaltung), darum gibt es hier auch keine Basiswiderstände.”

Der Emitterwiderstand verhindert da den Fast-Kurzschluss der Basis-Emitter Diode (PN-Übergang) der entsteht wenn man eine Emitterschaltung ohne Basiswiderstand betreibt. Die Kollektorschaltung hat aber den Nachteil, dass die Betriebsspannung nicht höher als die Spannung an der Basis sein kann! Man kann damit also keine z.B. 12V schalten.

Ich würde da aber PNPs in Emitterschaltung nehmen. Gerade wenn man die Grundschaltungen nicht wirklich versteht (was ich auch nicht im Detail tue). Das funktioniert sicher und die paar Widerstände einzusparen bringt nicht wirklich viel.

Super, schon wieder verwechselt.

Ich muss zugeben, dass bei Transistoren bei mir das Verständnis etwas aufhört. Vorallem wenn ich versuche Emitter-Schaltungen und Kollektor-Schaltungen zu verstehen. Für mich war es bisher so, dass man bei NPNs +5V auf die Basis setzt um zu schalten und die Last zwischen Transistor und +5V ist. Bei PNP lege ich Ground auf die Basis um zu schalten und die Last ist zwischen Transistor und Ground. Und im Endeffekt macht man nichts anderes als 2 unterschiedliche Stromkreise zu verbinden. Oder besser gesagt mit einem Stromkreis einen anderen zu schalten.

Es geht mir auch nicht um Widerstände die ich sparen könnte nur merke ich gerade, dass das Ganze komplizierter ist als ich mir das vorgestellt habe.

Aber heißt das jetzt, dass ich das so machen kann wie bereits geplant? PNPs an die Anoden, NPNs an die Kathoden und beides mit Basiswiderständen?

Da ich ja einen Maximalen Strom von 200mA habe sollte es ja auch ohne Probleme vom Arduino über den 5v-Pin genommen werden können.

Viele Grüße, vielen Dank und gute Nacht Tim

Am einfachsten kannst du es dir merken, wenn dir du den Pfeil am Emitter als die Stromfluss-Richtung für den Gesamtstrom betrachtest.

NPN: Strom fließt in die Basis und den Kollektor -> Gesamtstrom fließt aus dem Emitter heraus PNP: Gesamtstrom fließt in den Emitter -> Strom fließt aus dem Kollektor und der Basis heraus

Dadurch sieht man auch wohin die Masse gehört. Nämlich dorthin wohin der Strom abfließt. Bzw. die Betriebsspannung kommt dahin wo der Strom herkommt.

Das erklärt auch wieso PNPs bei Low schalten. Strom fließt wenn die Basis ein niedrigeres Potential als der Emitter hat.

Aber heißt das jetzt, dass ich das so machen kann wie bereits geplant? PNPs an die Anoden, NPNs an die Kathoden und beides mit Basiswiderständen?

Korrekt.

Da ich ja einen Maximalen Strom von 200mA habe sollte es ja auch ohne Probleme vom Arduino über den 5v-Pin genommen werden können.

Oder anders herum: 5V Netzteil an die Matrix und von dort an den 5V Pin des Arduino. So ist auch kein Problem, da z.B. ein 7V oder 9V Netzteil zu nehmen und dann an den Vin Pin zu gehen. Dadurch, dass nicht der gesamte Strom über den Regler läuft, wird er kaum belastet.

Man muss nur die Vorwiderstände der LEDs auf die Betriebsspannung anpassen.

Und so machst Du den Arduino kaputt.

sschultewolter hat es bereits richtig erklährt. Bleibt mir nichts dazu zu sagen. Grüße Uwe

uwefed:

Und so machst Du den Arduino kaputt.

sschultewolter hat es bereits richtig erklährt. Bleibt mir nichts dazu zu sagen. Grüße Uwe

Wenn man sowieso mit der gleichen Betriebsspannung (5V) arbeitet, versteh ich eh nicht, warum man dann noch zwingend über den Linearregler gehen möchte ;) Uwe, wird mal Zeit, dass wir einen angepinnten Thread mit den häufigsten Fragen eröffnen :D

Naja der Grund ist einfach, dass ich noch relativ am Anfang bin. Und bei dem +5V am Arduino weiß ich, dass es funktioniert.

Da ich aber auch gerne was lerne:

Kann ich einfach den Arduino bepowern indem ich ein Stabilisiertes Netzteil mit 5v nehme und den +Pol mit dem +5v pin am Arduino verbinde und den -Pol mit dem Groundpin? Ich hatte etwas Angst, dass ich da wichtige Bauteile übergehe und dann den Arduino zerstöre :)

Zu den 7V: Wenn ich ein 7V-Netzteil anschließe und den +Pol am Vin und den -Pol am Ground-Pin anschließe geht das ja ohne Probleme (so habe ich das gelesen). Jetzt aber das Verständnis-Problem: Ein PNP-Transistor schaltet wenn zwischen collector und basis ein Strom fließt. Wenn ich aber jetzt 5v an der Basis habe und 7v am collector habe ich doch immer einen potential-unterschied von 2v und er würde trotzdem schalten oder?

Es geht bei Ansteuern immer um Emitter und Basis. Und ja. Wenn am Emitter 7V anliegen und an der Basis 5V sperrt der Transistor nicht. Das hatte ich wieder mal vergessen. :( Dann bräuchte man noch einen NPN um das Potential an an der Basis auf 7V zu bringen. Noch ein Grund das gleich mit 5V zu versorgen :)

Oder einen UDN2981 nehmen. 8 Darlington PNPs mit Eingangsstufe in einem IC. Die kann man unabhängig von der Betriebsspannung mit 5V ansteuern, da das alles schon intern gemacht ist. Du kannst übrigens auch das NPN Gegenstück ULN2803 als NPN Treiber verwenden. Damit fallen auch die Basiswiderstände weg.

Ist hier mal gezeigt: http://atmega32-avr.com/8x8-dotmatrix-scrolling-led-display-using-atmega8515-microcontroller/ http://www.mikrocontroller.net/wikifiles/7/7e/LED-Matrix-ULN-UDN.png

Das spart auch etwas Arbeit auch wenn die mit 5V versorgt.