Hallo, ich habe ein kleines Problem bei meiner 8x24 LED-Matrix. Also erstmal hab ich ein Board mit einem Atmega16 entworfen, das beliebig erweitert werden kann. Daher auch die Pads, die benötige ich um die LED's per Steckkabel mit dem uC oder anderen Komponenten zu verbinden. Also die Zeilen werden mit 200Hz direkt vom uC gemuxt (Impuls-Pausenverhältnis von 5000:1) und ich benutze Low-Current-LED's. Wie ihr seht, werden die LED's per Transistoren durchgeschaltet damit der Kontroller nicht hart belastet wird. Trotzdem leuchten die LED's nicht mit ihrer maximaler Helligkeit. Bei Belichtung sieht man sie noch relativ gut, ich möchte aber dass sie noch heller sind. Könntet Ihr mir sagen woran das liegen mag?
Wenn ich richtig gerechnet habe, fließt durch eine LED ein Strom von 20mA. Bei einem Impuls-Pausenverhältnis von 5000:1 ergibt das 4µA mittleren LED Strom. Das das nicht hell ist, sollte klar sein. Wieso verwendest du auch ein Impuls-Pausenverhältnis von 5000:1???
@ Max Stephany (masterjekkt) >Hallo, ich habe ein kleines Problem bei meiner 8x24 LED-Matrix. In der Tat. Lies man was zum Thema LED-Matrix und erkenne - Deine Q1..Q8 als Kolletorschaltung (Hallo Matthias!) sind falsch. Der Basiswiderstand ist kontraproduktiv. - Die Widerstände R9..R16 sind an der falschen Stelle, die gehören in die Spaltenleitungen vor die Transistoren Q9..Q32, - Die Basiswiderstände vn Q9..32 sind zu hoch, 470 Ohm sind empfohlen. >erweitert werden kann. Das glaub ich mal nicht. >Also die Zeilen werden mit 200Hz direkt vom uC gemuxt >(Impuls-Pausenverhältnis von 5000:1) ???? 5000:1 Dann wärsen sie quasi total aus. Die Matrix wird sinnvollerweise zeilenweise 8:1 gemuxt. MFG Falk
Na, was soll sie denn auch anderst tun als schwächer leuchten, wenn sie nur einen kurzen Impuls bekommt. Hättes jeder LED noch ein FlipFlop oder ähnliches vorschalten sollen, oder zumindest einen Kondensator parallel.
Ich habe es bereits mit 5:1 versucht, hat leider nichts gebracht. Und eine Low-Current-LED benötigt 1-2mA.
>Na, was soll sie denn auch anderst tun als schwächer leuchten, wenn sie >nur einen kurzen Impuls bekommt. Hättes jeder LED noch ein FlipFlop oder >ähnliches vorschalten sollen, oder zumindest einen Kondensator parallel. Autsch!
@ Stefan (Gast) >nur einen kurzen Impuls bekommt. Hättes jeder LED noch ein FlipFlop oder >ähnliches vorschalten sollen, oder zumindest einen Kondensator parallel. Autsch! Informier dich mal über die Funktion einer LED-Matrix. MFG Falk
Bei einem Verhältnis von 5000:1 (also hier 5ms ein, 1us aus) leuchten sie maximal hell, jedoch nicht so hell wie sie sollten.
Hallo, was meinst Du mit Impuls-Pausenverhältnis 5000:1? Bei 8 Zeilen MUX sind es bei mit 1:8 für jede Zeile, also 1/8 des LED-Stroms bei statische Ansteuerung. Die Spaltentreiber sind Emitterfolger, die Emitterspannung kann aber höchstens Uh vom Port (ca. 4,9V) - Ube (ca. 0,7V) = 4,2V sein. Die Sättigungsspannung der Spaltentreiber ist ca. 0,2V. Bei roten LED (hast DU nicht angegeben) kommt jetzt die Flußspannung (ca. 1,6V) dazu. Macht also 4,2V - 0,2V - 1,6V = 2,4V 2,4V / 68 Ohm = 35mA. Bei 1:8 Mux also 35mA/8 = 4,4mA. Die LED wären also so hell wie bei 4,4mA Dauerstrom. Das sieht relativ passend aus. Aber: die Emitterfolger bekommen ihren Basisstrom über 8,2k. Diese Widerstände sind bei einem Emitterfolger unnötig und hier vermutlich sogar ziemlich störend. Da die LED-Widerstände in den Zeilen liegen mußt Du ja die Spalten multiplexen, das wären aber 1:24 und damit nur noch ca. 1,5mA als statischer LED-Strom. Mein Vorschlag: zeilenweise multiplexen, jeder Spalte einen LED-Vorwiderstand, die Zeilentreiber brauchen keinen Basiswiderstand. Gruß aus Berlin Michael
Max Stephany wrote: > Bei einem Verhältnis von 5000:1 (also hier 5ms ein, 1us aus) leuchten > sie maximal hell, jedoch nicht so hell wie sie sollten. Ach so rum meins du das. Dann solltest du besser das hier lesen LED-Matrix, denn Prinzip bedingt kann eine 8x24 Matrix nie mehr als 1/8 haben.
Michael U. wrote: > Hallo, > > was meinst Du mit Impuls-Pausenverhältnis 5000:1? > Bei 8 Zeilen MUX sind es bei mit 1:8 für jede Zeile, also 1/8 des > LED-Stroms bei statische Ansteuerung. > Mit dem Impuls-Pausenverhältnis meine ich die Ein- und Auszeit einer einzigen LED.
>Mit dem Impuls-Pausenverhältnis meine ich die Ein- und Auszeit einer >einzigen LED. Das meinen die Vorredner auch. Eine LED ist so lange an wie ihre Zeile oder Spalte aktiv ist. Also bei dir 1:8 oder 1:24.
Hallo, verstehe ich nicht. Eine LED auch in einer Matrix ist entweder logisch an oder aus. Aus ist klar. An ist die Zeit, wie oft sie in der Matrix dran kommt. Bei zeilenweisen Multiplex wäre es also so: alle Zeilen ausschalten passende Daten an alle Spalten für Zeile 1 anlegen. Zeile 1 einschalten alle Zeilen ausschalten passende Daten an alle Spalten für Zeile 2 anlegen. Zeile 2 einschalten ... alle Zeilen ausschalten passende Daten an alle Spalten für Zeile 8 anlegen. Zeile 8 einschalten Jede LED ist also 1/8 der Zeit eines Durchlaufs eingeschaltet. Sind als bei 200Hz Multiplexfrequenz 5ms für einen Durchlauf aller Zeilen. Also jede Zeile und damit jede LED 5ms/8 = 0,625ms an und 4,375ms aus. Falls die 200Hz die Frequnt ist, mit der weitergeschaltet wird, sind es eben 5ms an und 35ms aus. Geht garnicht anders. Gruß aus Berlin Michael
Das Missverständniss leigt wohl darin, das bei einer LED Matrix mehr als eine LED gleichzeitig leuchen kann. Die Begrenzung auf jeweils 1 LED gibts beim Charleipixeling. Selbst mit den Widerständen so wie gezeichnet kann man noch auf ein Tastverhältnis von 1:24 kommen, allerdings sollten die Basiswierstände dann kleiner werden, denn Transistoren in Emitterschaltung müssen 8 LEDs gelichzeitig versorgen, also 8 * 30 mA = 240 mA. Wenn man die Matrix andersherum nutzen will, mit 24 Widerständen für die LEDs, wird man auch 8 größere Transistoren brauchen, denn 24 mal rund 30 mA sind fast 1 A. Statt der Low Current LEDs würde ich die ähnlichen hellen LEDs vorschlagen, die können meistens mehr Strom ab, bei gleichem Wirkungsgrad. Neue LEDs muß man sich aber nicht extra kaufen.
Die Basisvorwiderstände für die Transistoren müssten eigentlich korrekt berechnet sein. 5V - 0,7V (UBE) = 4,3V. Der BC547 liefert einen maximalen Kollektorstrom von 10mA bei 0,5mA Basisstrom und eine Spalte benötigt 2mA. Also 4,3V/0,5mA = 8,6k also 8,2k Vorwiderstand. Was ist daran falsch?
> > Wenn man die Matrix andersherum nutzen will, mit 24 Widerständen für die > LEDs, wird man auch 8 größere Transistoren brauchen, denn 24 mal rund 30 > mA sind fast 1 A. > Nein ich benutze ja LED's mit 2V/2mA im Zeilenmultiplex, also werden das 48mA wenn jede LED durchgeschaltet ist (in meinem 1. Programm allerdings nicht jede LED).
Wie kommst du auf die 2mA ? Weil es low-current LEDs sind die bei 2mA hell leuchten? Das "brauchen" heißt ja nicht, dass man ihnen nicht auch 1A reinjagen kann bis sie es "bekommen".
Ok ich ersetze die 8,2k Widerstände mal durch 4,7k. Bis dahin wird es noch ein wenig dauern. Danke für eure Ratschläge! mfg Max
Deine BC547 sind außerdem unterdimensioniert. Die können dauerhaft 100mA und Peak 200mA. Die sind schon arg an der Schmerzgrenze.
@ Max Stephany (masterjekkt) >maximalen Kollektorstrom von 10mA bei 0,5mA Basisstrom und eine Spalte >benötigt 2mA. Nöö, die braucht 8*2=16 mA, weil du ja 8:1 Multiplexen willst. > Also 4,3V/0,5mA = 8,6k also 8,2k Vorwiderstand. Was ist >daran falsch? OK, passt in etwa. Ich hatte nciht die Low Current LEDs bedacht. :-0 >Nein ich benutze ja LED's mit 2V/2mA im Zeilenmultiplex, also werden das >48mA wenn jede LED durchgeschaltet ist Nöö, es sind 2*24*8= 384mA. 8:1 MULTIPLEXEN! MFG Falk
Falk Brunner wrote: > Nöö, die braucht 8*2=16 mA, weil du ja 8:1 Multiplexen willst. > Ich muxe die Zeilen, nicht die Spalten. Zu jeder Zeit ist bloß 1 Zeile aktiv und damit nicht die ganze Spalte, also keine 8 LED's. Also fliesst in einer Spalte 2mA. > Nöö, es sind 2*24*8= 384mA. 8:1 MULTIPLEXEN! > Auch wiederum nicht :)
@ Max Stephany (masterjekkt) >Ich muxe die Zeilen, nicht die Spalten. Zu jeder Zeit ist bloß 1 Zeile >aktiv und damit nicht die ganze Spalte, also keine 8 LED's. Eben, dann sind bis zu 24 LEDs einer Zeile für 1/8 der Umlaufzeit aktiv. > Also fliesst in einer Spalte 2mA. Das macht dann aber effektiv 2/8=0,25mA LED-Strom. Kein Wunder, dass die so dunkel sind. >Auch wiederum nicht :) Aber sicher, mein multiplexender Freund ;-) MFG Falk
Kann das sein, dass du uns sagen willst, dass du die LEDs einzeln scannst? So nach dem Prinzip: - Zeile 1 aktivieren (Q1) - Spaltentreiber (Q9-Q32) nacheinander durchschalten - Zeile 2 aktivieren (Q2) - usw. ... Ansonsten verstehe ich nicht an welcher Stelle wir aneinenader vorbeireden.
Aber was das Schlimmste ist: Die LED-Vorwiderstände hängen an den Zeilentreibern, nicht an den Spaltentreibern, wo sie eigentlich für das 1:8 Multiplexing benötigt würden. Momentan sollte also die Helligkeit durchaus von der Anzahl der LEDs abhängen, die pro Zeile leuchten. Im schlimmsten Fall teilen sich also 24 LEDs einen Vorwiderstand. Wenn das nicht dunkel wird. Viel Spass beim umlöten :-)
@ Falk Brunner Ich weiss jetzt was du meinst. Ich habe jetzt an die Transistoren in den Spalten gedacht, nicht Q1-Q8 :P @ ARM-Fan Ich arbeite nach dem Prinzip: -1. Zeile einschalten, Daten an die Spalten ausgeben (alle gleichzeitig). -1. Zeile ausschalten. -2. Zeile einschalten, Daten an die Spalten ausgeben. -2. Zeile ausschalten. usw.
>Im schlimmsten Fall teilen sich also 24 LEDs einen Vorwiderstand.
Eben. Deswegen kam ich grad auf die Scanning Idee.
Ansonsten müßten doch schon die Zeilentreiber oder der Zeilenvor-
widerstand abgeraucht sein.
Hugo Ratlos wrote: > Aber was das Schlimmste ist: > > Die LED-Vorwiderstände hängen an den Zeilentreibern, nicht an den > Spaltentreibern, wo sie eigentlich für das 1:8 Multiplexing benötigt > würden. > > Momentan sollte also die Helligkeit durchaus von der Anzahl der LEDs > abhängen, die pro Zeile leuchten. Im schlimmsten Fall teilen sich also > 24 LEDs einen Vorwiderstand. Wenn das nicht dunkel wird. > > Viel Spass beim umlöten :-) EDIT: Die Vorwiderstände hab ich für den schlimmsten Fall berechnet, also so als ob die 24 LED's zusammen leuchten würden.
"Normalerweise" würde man keinen 1:24 Multiplex bauen, weil es die LEDs bei hinreichender Helligkeit stark strapaziert, aber mit Deinen Low-Current-LEDs geht das in Ordnung. Welchen LED-Typ benutzt Du eigentlich?
Hugo Ratlos wrote: > "Normalerweise" würde man keinen 1:24 Multiplex bauen, weil es die LEDs > bei hinreichender Helligkeit stark strapaziert, aber mit Deinen > Low-Current-LEDs geht das in Ordnung. > > Welchen LED-Typ benutzt Du eigentlich? Ich benutze rote Low-Current-LED's mit 2V/2mA.
Ich meinte eigentlich die Typenbezeichnung ;-) Auch um eine Vorstellung vom preislichen Rahmen zu bekommen.
Hugo Ratlos wrote: > Ich meinte eigentlich die Typenbezeichnung ;-) Auch um eine Vorstellung > vom preislichen Rahmen zu bekommen. Typenbezeichnung ist bei Conrad nicht angegeben, da stand nur rote 5mm low-current. Ich hab den Fehler jetzt behoben. Die Basisvorwiderstände der Transistoren für die Zeilen waren zu hoch, hab die durch 1k Widerstände und die LED-Vorwiderstände durch 0 ohm Wid. ersetzt. Durch die hohe Multiplexfrequenz kann also nicht viel passieren. Jedenfalls leuchtet die Anzeige jetzt sehr viel heller. Hab die Schaltung als Dateianhang hinzugefügt. Lasst euch nicht durch die vielen Kabel verwirren, die brauche ich um für jedes Programm alles optimal verdrahten zu können, abhängig davon für welche Funktion. Auf dem Foto ist dann meine Digitaluhr dargestellt.
@Max Stephany (masterjekkt) >und die LED-Vorwiderstände durch 0 ohm Wid. ersetzt. Durch die hohe >Multiplexfrequenz kann also nicht viel passieren. Jedenfalls leuchtet >die Anzeige jetzt sehr viel heller. Klar, wenn mir jemand ne Kugel durch den Kopf jagt, dauert das nur ein paar Mikrosekunden, kann also nicht viel passieren . . . :-0 Tu deinen LEDs einen Gefallen und bau 24 Widerstände in die Spaltentreiber. >die vielen Kabel verwirren, die brauche ich um für jedes Programm alles >optimal verdrahten zu können, abhängig davon für welche Funktion. Schalu Leute verdrahten das immer gleich un machen den Rest in der Software . . . MfG Falk
Falk Brunner wrote: > Schalu Leute verdrahten das immer gleich un machen den Rest in der > Software . . . > Ja schon, aber wenn ich jetzt alles fest verdrahten würde, könnte ich zb PortD nicht für den USART oder die externen Interrupts benutzen. Ich möchte ja nicht nur die Matrix ansteuern, sondern auch andere Schaltungen damit betreiben, diese Platine dient als Hauptkomponente wo der uC drauf sitzt. Wenn ich jetzt zb ASCII-Zeichen an den uC senden möchte und die dann auf der Matrix anzeigen lassen will, und danach etwas anderes programmiere, wobei ich den gesamten PortD brauch dann klappt das mit einer festen Verdrahtung nicht. Es ist sozusagen zum Experimentieren :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.