Helligkeitsproblem beim LED Multiplexen

Gast #586473
Lesenswert?

Guten Abend!
Ich habe mir in Tagelanger Arbeit eine Schaltung zusammengelötet, in der 
ein ATMega16 ein paar 5x7 DotmatrixDisplays ansteuert.

Das Problem ist nun folgendes: ich muss insgesamt 28 LEDs multiplexen.
Wenn ich eine Refresh-Rate von etwa 20 Bildern pro Sek. haben will, 
bleiben für jede LED noch mal 2ms Leuchtzeit. Dem entsprechend ist das 
Display sehr dunkel.

Nun suche ich also nach einer Möglichkeit die Schaltung zu retten, OHNE 
alles neu zu löten.
Mein erster Ansatz ist folgender: anstatt der 100 Ohm Widerstände, die 
im Moment vor den LEDs sitzen, könnte man vermutlich auch wesentlich 
kleinere nehmen (vielleicht sogar gar keine???). So könnte ein größerer 
Strom fließen, und die LEDs wären heller.

Was meint ihr? Würd's das bringen?
Oder gibt es noch andere einfache Lösungen?

Vielen Dank für eure Hilfe!
#586489
Lesenswert?

Den Strom kannst du in der Tat erhöhen.
Im Datenblatt zu den LEDs ist neben dem maximalen Dauerstrom meist auch 
angegeben, bei welchem Puls/Pausenverhältnis, bzw. bei welcher 
Einschaltdauer welcher Strom fließen darf. Der Betrieb ganz ohne 
Widerstände ist nicht zulässig. Und wenn der Controller die LEDs direkt 
treibt, so sind dessen Limits ebenfalls einzuhalten. Bei AVR-Controllern 
üblicherweise 40mA pro IO-Pin, bzw. 200mA pro Port, bzw 400mA für das 
ganze IC. Das sind dann die absoluten Grenzwerte, man sollte tunlichst 
merklich darunterbleiben.
Die Stromerhöhung sollte man erst nach erfolgreicher Fertigstellung des 
Programms machen, damit bei einem Fehler einzelne LEDs nicht überlastet 
werden.

Gruss
Jadeclaw.
Gast #586515
Lesenswert?

So, bin jetzt mal von 100 Ohm auf 10 Ohm runtergegangen. Leider wird's 
dadurch nur minimal heller.
Ich hab mich sogar getraut, den Widerstand durch einen Kurzschluss zu 
ersetzen, aber auch das brachte nicht viel (und nein, es ist nicht 
explodiert ;-)).

Die LEDs werden übrigens nicht direkt durch den AVR gesteuert, sondern 
über Transistoren, so dass sie ihren Strom direkt aus dem Netzteil 
beziehen können.

Dann frage ich nochmal etwas anders: ist es überhaupt möglich 28 LEDs zu 
multiplexen? Oder lässt sich dabei niemals genug Leuchtkraft erreichen?
Falls das geht - was mach ich dann falsch?
Gast #586538
Lesenswert?

Das Netzteil verspricht 4,5V und 800 mA. Das sollte doch eigentlich 
ausreichen?

Die Schaltung ist etwa folgende (habe leider kein Bild):

Der AVR steuert einen über 3 Leitungen vier 74HC238 (de)muxe (die hängen 
alle parallel, aber über den enable-Eingang wird sichergestellt, dass 
immer nur einer davon an ist).

Diese werten die drei Eingänge aus, und schalten einen ihrer 8 Ausgänge 
ein.
(das ganze dient nur dazu, um Pins am AVR zu sparen, also um 8 Ausgänge 
verwenden zu können, dabei aber nur 3 Pins zu opfern).

Von diesen 8 Ausgängen gehen 7 Leitungen an meine LEDs (jeweils an eine 
Zeile meiner 5x7 DotMatrizen).
Jeder der Demuxer multiplext also die Zeilen eines meiner vier Displays.

Die 5 (Spalten-)Ausgänge aller Displays sind dann wiederum über besagte 
10 Ohm Widerstände an einem ULN2803 angeschlossen. Das kann benutzt 
werden, um die  Spalten zu multiplexen.

Pff, hört sich ganz schön kompliziert an, ist aber eigentlich ganz 
einfach:
Ein AVR steuert 4 x 74HC238 und 1 x ULN2803.
Die 74HC238 dienen dabei zum Zeilen-Multiplexen, der ULN2803 zum 
Spaltenmultiplexen....ich glaube ich male doch grad mal ein Bild ^^
(poste ich gleich)


Ist es eigentlich richtig, dass die 74HC238 ihre Ausgänge direkt 
zwischen VCC und GND umschalten? Dienen die Inputs wirklich nur dazu, 
den aktiven Ausgang festzulegen?
Falls das nämlich nicht so ist, würde der AVR die LEDs ja doch selber 
versorgen müssen....mmmhhh
Gast #586567
Lesenswert?

Hm.. ist zwar sehr sonderbar diese Ansteuerung der Dot-Matrix (weil viel 
verschwendet wird, es geht einfacher und effektiver)

Egal:

In der Schaltung kann ich so nicht falsches erkennen.

Allerdings sind immer nur maximal fünf LEDs je Spalte eingeschaltet.
Dadurch ergeben sich hohe Ströme
=> Bringen die HC238 einen hohen LED-Strom?
   ich glaube der kann nur 10mA, vielleicht 20mA
   für LED multiplexen ist das ziemlich wenig, sollten 50..100mA sein
=> Selbe Frage für den ULN2803, nur der muss 20mal! den LED-Strom 
bringen
   es wäre aber sinnvoll, die Vorwiderstände eher hinter die HC238 zu 
machen.
=> Beim Schalten der Ströme enstehen induktive Spannungsfälle an den
   Zuleitungen zu Hc238ern und ULN2803. Es sollten zwingend direkt über
   die Pins Blockelkos eingebaut werden! (falls nicht vorhanden)
=> Liefert das Netzteil genug Strom?
Gast #586601
Lesenswert?

Nunja, aber drei solcher MAXe zu verbauen gefällt mir auch nicht. Andere 
Idee:

Die Demuxe waren ja nur dazu da um zwei Dinge zu tun :

1) Mit nur 3 AVR-Pins 8 Ausgänge anzusteuern
=> Das ist nicht unbedingt schlimm, hier könnte ich auch 8 Pins opfern

2) Mit je einem AVR-Pin einen Demux komplett deaktivieren zu können, ums 
so alle 4 Displays einzelnen an/aus schalten zu können

D.h. eigentlich wäre auch eine Art Transistor-Array (wie der ULN2803) 
geeignet, das allerdings:

1) Die aktivierten Ausgänge auf VCC zieht (nicht auf Masse)
2) Einen von den Eingängen unabhängigen ENABLE Pin hat, mit dem man den 
ganzen Baustein an/ab schalten kann

Gibt es sowas? *bitte bitte lieber Gott, mach dass es so einen IC gibt!* 
;-)
Gast #586623
Lesenswert?

Habe ich das richtig in Erinnerung, dass die Anode an - liegt?
Dann sind bei mir die Spalten (also 5 Pins pro Display) Anoden, die 
gehen nämlich über die 5 Widerstände an den ULN2803, und der zieht die 
wiederum auf GND.

Das sind übrigens Kingbright Displays (TC 12-11 RT).
"Dot-Matrix-Display, 5x7 Pkt., 8,0mm, rot, Kathode" heißt es bei 
Reichelt.
Gast #586762
Lesenswert?

So, ich habe mich heut Nacht noch ein bisschen drangesetzt, und eine 
neue Schaltung gezeichnet. Ist im Prinzip ähnlich der ersten, allerdings 
ist der störende Multiplexer raus.
Jetzt werden die LEDs ausschließlich über Transistorarrays gesteuert, 
müssten also genug Strom bekommen.
Ausserdem multiplexe ich jetzt über die Spalten anstelle der Zeilen, 
muss also nur noch:
4 (Displays) x 5 (Spalten) = 20 Schritte machen
(d.h jede LED bekommt jetzt mehr Zeit zum leuchten als vorher, wo ich 28 
Schritte machen musste).
Der "Pin-Verbrauch" hält sich auch in Grenzen. Mit genau 2 Ports, also 
16 Pins müsste alles gehen.

http://img411.imageshack.us/my.php?image=multiplex3ed8.gif

Dazu noch ein paar Fragen:

1) Der Baustein den ich mit einem "?" gekennzeichnet habe sollte genauso 
wie die ULN2803s funktionieren, nur die gewählten Ausgänge auf VCC 
anstatt auf Masse zu ziehen.
Gibt es solche ICs? Wie heißen die?

2)Gibt es da jetzt noch irgendwelche störenden Strombegrenzer?
Die ULNs sind ja eigentlich nur Transistoren, müssten also einiges 
vertragen...

3) Klappt das mit dem enablen der Displays so, wie ich mir das 
vorstelle?
Indem ich einfach die GND Ausgänge der ULNs nochmal mit einem Transistor 
versehe, müsste ich ja deren kompletten Stromfluss unterbrechen können, 
oder?

Vielen Dank für eure Hilfe!
Gast #586775
Lesenswert?

Oben stand die Lösung schon mal (von dom) ;-)

Mit den superhellen Display sollte das Problem gelöst sein ohne das Du 
etwas an der Schaltung ändern müsstest.
Habe selber mal 8 von den Biestern verwendet (jeweils 2 gleichzeitig 
angesteuert, also 4 Paare gemuxt) und wollte auch nicht so richtig hell 
werden. Durch den Einbau der superhellen Teile (Kingbright TC07-11SRWA 
wars glaub ich) war es sofort perfekt ohne weitere Änderungen an der 
Schaltung. Waren nur etwas schwierig zu bekommen. Musste gleich 25 auf 
einmal nehmen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren