Hallo Leute,
ich bin dabei mir eine LED-Matrix zu Versuchszwecken zu basteln.
Dabei handelt es sich um eine 5*7 Matrix (zur schönen Darstellung von
Zeichen). Die Ansteuerung erfolgt hauptsächlich wie hier beschrieben:
http://www.mikrocontroller.net/articles/LED-Matrix
Gesteckt hab ich die Schaltung schon in kleinerer Ausgabe, die Software
passt auch. Jetzt gehts ans Löten auf Lochraster.
Ich wollte mich hier nochmal vergewissern ob ich meine Widerstände
richtig dimensioniert habe, da ich sowas zum ersten mal mache.
Wegen dem Multiplex müssen ja höhere Ströme fliesen (kurzzeitig).
Bei meiner gesteckten Schaltung verwende ich vorsichtshalber noch
größere Widerstände, das macht sich aber in der Helligkeit bemerkbar.
Meine LEDs (gelb) haben laut Datenblatt eine Vorwärtsspannung von 2,2V,
messen tu ich aber nur so 2V.
Das ganze hängt an 5V, sodass abzüglich Uvorwärts und den Abfällen an
den beiden Transistoren (0.6V und 0.1V) ca. 2V am Vorwiderstand abfallen
müssen.
Die LEDs benötigen einen Strom von 20mA, vertragen dauerhaft angeblich
maximal 30mA. Pulsstrom verkraften sie kurzzeitig 150mA.
Da ich 1:5 multiplexe lasse ich 100mA fliesen, bei 2V am Rvor wähle ich
daher 22 Ohm als Vorwiderstand. Soweit in Ordnung?
Als Rbasis für den Spaltentreiber (Emitterschaltung) habe ich an ca.
5-10k gedacht. Hier muss man ja imho nicht so genau drauf achten, da ich
den Transistor eh in die Sättigung treibe. Soweit auch in Ordnung?
Bei den Transistoren handelt es sich um BC337, Zeilentreiber in
Kollektorschaltung, Spaltentreiber in Emitterschaltung. Spalten werden
gemultiplext. Aber das verlinkte Schaltbild sagt ja alles :)
Hoffe jemand könnte sich dazu eben 2min seine Gedanken machen. Habe zwar
das ganze durchgerechnet, aber wie gesagt, wollte mir als Anfänger das
ganze nochmal "absegnen" lassen :)
War ne heidenarbeit die LEDs zu verlöten, die müssen nicht gleich beim
ersten Einschalten in Rauch aufgehen :)
Danke schon mal!
Karlo schrieb:> Die Ansteuerung erfolgt hauptsächlich wie hier beschrieben:> http://www.mikrocontroller.net/articles/LED-Matrix
Diese Schaltung ist zwar nicht optimal, aber sie funktioniert.
> Da ich 1:5 multiplexe lasse ich 100mA fliesen, bei 2V am Rvor wähle ich> daher 22 Ohm als Vorwiderstand. Soweit in Ordnung?
Ja, das ist ok.
Aber Achtung: Wenn du einen Fehler in der Software hast brennen dir die
Leds durch. Daher würde ich, bis das Programm komplett fertig ist, die
Schaltung an 3,5V betreiben. Vorausgesetzt die anderen Bauteile
funktionieren damit.
Geht das nicht, dann baue einen zusätzlichen Widerstand zwischen GND und
den Spaltentransistoren ein, den du dann am Ende überbrücken kannst.
Hey danke dir.
Also aufn Testboard läuft die Software, lediglich die Zeilenanzahl ist
noch geringer um den Steckaufwand zu reduzieren. Aber das mit dem
zusätzlichen R werde ich wohl erstmal machen, danke dir.
Ist der Rbasis mit 5-10k auch in Ordnung?
Hab grad im Datenblatt noch was gefunden, bei "Peak vorward Current",
also die Pulsströme.
Unter der Tabelle, die mir den Wert von 150mA sagt, ist noch folgender
Zusatz: 1/10 Duty Cycle, 0.1ms pulswidth.
Bedeutet das sie halten den Wert von 150mA nur aus, wenn sie danach die
9fache Zeit zum Abkühlen haben? Ich multiplexe 1:5, deswegen sind die
Spalten 20% der Laufzeit an, nicht 10%. Dafür ist mein Peak Current aber
auch nur 100mA. Könnte das zum Problem werden?
und 0.1ms Pulswidth ist auch bischen wenig Zeit. Momentan lasse ich jede
Spalte für 2ms leuchten. 2ms * 5 Spalten ergibt 10ms für einen
kompletten Durchlauf, also 100Hz Bildfrequenz.
Ok laut dem Artikel ist das eh eine recht niedrige Frequenz. Welche
Frequenz sollte ich denn anstreben? Wenn ich mich stur an die 0.1ms
Pulswidth halte komme ich auf 2kHz? Bischen viel oder?
Karlo schrieb:> Ist der Rbasis mit 5-10k auch in Ordnung?
Mach mal eher 1k. Das hängt vom Transistor ab.
> Unter der Tabelle, die mir den Wert von 150mA sagt, ist noch folgender> Zusatz: 1/10 Duty Cycle, 0.1ms pulswidth.>> Bedeutet das sie halten den Wert von 150mA nur aus, wenn sie danach die> 9fache Zeit zum Abkühlen haben? Ich multiplexe 1:5, deswegen sind die> Spalten 20% der Laufzeit an, nicht 10%. Dafür ist mein Peak Current aber> auch nur 100mA. Könnte das zum Problem werden?
Ja, du bewegst dich damit außerhalb der Datenblattwerte.
Dein Strom ist: 2V/22ohm/5 = 18mA
Die Leds werden wohl nicht gleich kaputt gehen, aber sie altern dadurch
schneller.
> und 0.1ms Pulswidth ist auch bischen wenig Zeit. Momentan lasse ich jede> Spalte für 2ms leuchten. 2ms * 5 Spalten ergibt 10ms für einen> kompletten Durchlauf, also 100Hz Bildfrequenz.
Die 100 Hz sind eh etwas knapp, das kannst du noch etwas erhöhen. Auch
der Augenfreundlichkeit wegen.
Ob die Leds das aushalten kann ich dir nicht sagen. Würde ich einfach
ausprobieren. Allzu viel Angst hätte ich nicht.
Hast du einen Link zum Datenblatt.
Die Pulsdauer 0,1ms ist der Parameter bei dem 150mA noch erlaubt sind.
Wie es bei anderen Pulsdauern aussieht, darüber macht das DB keine
Angabe.
Aber wie du schon erkannt hast, sind bei längeren Pulsdauern sind in der
Regel nur kleinere Pulse erlaubt.
Aber für dich ist das gar nicht relevant, denn wenn du dir die Kurve
Vorwärtsspannung vs. Vorwärtsstrom anschaust, dann siehst du wie
abhängig die Spannung vom Strom ist.
Bei 90mA würden schon 3,85V über der LED abfallen, was natürlich nicht
geht da nur weniger Spannung zu Verfügung steht.
Solch eine Diodenkennlinie kann man entweder durch eine e-Funktion
annähern, das ist genau aber hier zu kompliziert.
Oder mit einer festen Flußspannung (1,6V) und einem differentiellen
Widerstand.
Der ist hier 1,0V / 40mA = 25ohm
D.h. Du kannst einfach Rechnen:
4V für Diode + Vorwiderstand
Die 1,6V fallen immer ab, also abziehen.
4V - 1,6V = 2,4V
Die restliche Spannung teilt sich am Vorwiderstand und am diff.
Widerstand der Led auf:
2,4V / (25ohm + 22ohm) = 51mA
Somit kommst du nicht über 51mA hinaus und das ist auf jeden Fall
unproblematisch.
Falls ich dich jetzt nicht erschlagen habe, frage einfach nach.
> Das ganze hängt an 5V, sodass abzüglich Uvorwärts und den Abfällen an> den beiden Transistoren (0.6V und 0.1V) ca. 2V am Vorwiderstand abfallen> müssen.
Recht grosszügig.
Bei den 100mA fallen am Emitterfolger eher 1V ab, die 800mA führen bei
den Spalten eher zu 0.5V. Dein LED-Strom ist also wohl geringer.
> Als Rbasis für den Spaltentreiber (Emitterschaltung) habe ich an ca.> 5-10k gedacht.
Zu hoch. Du willst ihn ganz durchschalten,
Im Datenblatt des BC337 (Figure 4, onSemi) siehst du,
das er für 500mA Kollektorstrom 10mA Basisstrom braucht (das ist
allerdings 'typisch' und nicht garantiert, kann also auch grandios
schief gehen, niedrigste UCEsat bekommst du nur mit 80mA aber so viel
liefert der uC-Ausgang nicht).
800mA stehen nicht drin, aber man sollte 20mA erreichen wollen wenn man
das Diagramm extrapoliert.
Also maximal 200 Ohm Basisvorwiderstand, nimm 220 oder 180 Ohm.
Besser wäre ein ZTX1048 (Anschlussbelegung!).
Noch besser MOSFETs wie IRF7331/IRF7329 oder Si9926/Si9934.
Danke euch beiden.
@ Alexander Schmidt: Deine Rechnungen versteh ich jetzt nach bisl
nachdenken. Ist eigentlich ziemlich praktisch eine LED so zu betrachten.
@ MaWin: Wieso genau fallen denn auf einmal soviel an den Transistoren
ab?
Nur wegen dem hohen Strom?
Ok ich könte die Spaltentreiber durch MOSFETs ersetzen.
Ausserdem könnte ich 9V anstatt 5V Versorgungsspannung nehmen. Aber bei
Zeilentreiber in Kollektorschaltung würde das ja auch nichts bringen,
kommen wieder nur 5V-Ube an und der Rest brät am Transistor.
Welche Möglichkeiten hätte ich denn noch?
> @ MaWin: Wieso genau fallen denn auf einmal soviel an den> Transistoren ab?
Weil man richtig rechnet.
Die Kollektorschaltung, also als Spannungsfolger, basiert
einerseits auf der Ausgangsspannung des uC, die bei gewissem
Ausgangsstrom auch nicht bei 5V liegt, sondern sagen wir
VCC-0.3V.
Dann noch Ube des Transistors, bei etwas Strom auch nicht 0.6V
sondern eher 0.7V (bei noch mehr Stro auch 1V),
macht in der Summe 1V (bis sogar 1.3V).
Der Spaltentransistor in Emitterschaltung wird hoch belastet,
du wolltest BC337 mit 800mA belasten, was gerade deren obere
Grenze ist (du belastest auch nur in Pulsen) udir im datenblatt-
Diagrammen schon gar nicht mehr drinsteht. Auf jeden Fall kommst
du nicht mit 0.2V aus. Die 0.5V sind realistischer (bei ausreichendem
Baissstrom).
> Aber bei Zeilentreiber in Kollektorschaltung würde das ja> auch nichts bringen, kommen wieder nur 5V-Ube an und der Rest> brät am Transistor.
Richtig erkannt.
> Welche Möglichkeiten hätte ich denn noch?
Bei mehr-als-5V brauchst du high side driver wie UDN2981
(oder eben dasselbe aus je 2 Transistoren diskret aufgebaut,
dann hättest du sogar saturated driver als PNP in Emitterschaltung).
Ok danke dir. Denke verstanden hab ich das Schaltprinzip schon vorher,
nur manche Zahlenwerte waren mir nicht ganz klar.
Wie gesagt, funktionieren würde meine Schaltung, nur eben nicht hell
genug. Mal schaun, entweder geb ich mich erstmal mit der dunkleren
Matrix zufrieden, oder ich geh das ganze nochmal ganz von vorne an, also
mit Treiber-ICs etc. Aber eigentlich wollte ich "meine erste Matrix"
diskret aufbauen.
Eine Möglichkeit, das ganze nur mit NPN-Transistoren aufzubauen wäre
wohl noch die Verwendung von diesen Low-Current-LEDs oder?
Sagen wir, die brauchen nur 5mA. Müsste ich diese im Multiplexbetrieb
dann mit 25mA Versorgen? Oder sind die auch mit geringerem mittlerem
Strom hell genug?
Naja wieder was gelernt. Hab bei meinen ersten Rechnungen nicht die
hohen Spannungsabfälle an LED+Transistoren bedacht :)
> Müsste ich diese im Multiplexbetrieb dann mit 25mA Versorgen?
Ja. (logisch, von nix kommt nix).
> ich mich erstmal mit der dunkleren Matrix zufrieden,
So ist das bei den meisten der LED-Matrizen die man so in AppNotes und
Interntartikeln findet, weil kaum jemand rechnet oder hinterher
nachmisst.
Mir ist gerade noch eine Frage gekommen, eher an Alexander Schmidt
gerichtet:
In deiner Rechnung gehst du davon aus, dass 1.6V immer an der Diode
abfallen. Soweit in Ordnung, sieht man ja in der Kennlinie.
Die Kurve ähnelt ja ab 1.6V ziemlich einer Gerade. Du gibst den
Steigungsfaktor dabei mit 25 Ohm an. Auch soweit noch ersichtlich.
Weiter sagst du, die verbleibenden 2.4V teilen sich am diff. Widerstand
der Diode und an Rvor auf. Wenn ich jetzt aber keinen Rvor verwenden
würde, ergäbe sich ja mein Strom zu 2.4V (oder bisl weniger, so 1.9V
wenn man von MaWins genannten Verlusten ausgeht) / 25 Ohm ~ 90mA.
Eigentlich ein recht schöner Wert für 1:5 Multiplex.
Aber auch wenn sich das hier schön rechnet, erscheint mir die
Vorstellung einer LED ohne Vorwiderstand gefährlich. ich vermute, ich
kann diesen diff. Widerstand nicht als Widerstand im herkömmlichen Sinne
ansehn oder?
Denn laut Rechnung würd ich ja ohne Rvor auf einen brauchbaren Stromwert
kommen.
Vielleicht kann mir das noch einer erklären.
Danke euch!
Und noch ein Nachtrag:
Die hohen Verluste an den Transistoren ergeben sich aus dem hohen Strom,
zB bis zu 800mA pro Spalte.
Das führt aber dazu, dass mein Rvor (+ dieser diff. R der LED) weniger
Spannung abkriegen, und nur noch ca 50mA pro Zeile, also max 400mA pro
Spalte fliesen. Aber dann müsst ja wieder weniger Spannung an den
Transistoren abfallen, weil die ja von weniger Strom durchflossen
werden.
Ein Teufelskreis. Kann mir vielleicht jemand noch erklären wie das Ganze
zusammenhängt? Mir fehlt noch so die letzte Eingebung :)
Karlo schrieb:> Aber auch wenn sich das hier schön rechnet, erscheint mir die> Vorstellung einer LED ohne Vorwiderstand gefährlich. ich vermute, ich> kann diesen diff. Widerstand nicht als Widerstand im herkömmlichen Sinne
Man kann diesen diff. Widerstand durchaus benutzen. z.B. arbeiten alle
billigen Led-Taschenlampen so. Diese haben auch keinen Vorwiderstand
eingebaut.
Allerdings ist das risikoreich, weil dieser diff. Widerstand recht
ungenau ist. Er ist ja eigentlich ungewollt. Daher kann er stark
schwanken. Auch die Flußspannung (die 1,6V) ist stark
temperaturabhängig.
Du bist auf der sicheren Seite wenn du von diesem "internen" Widerstand
sagen wir mal 30% abziehst und damit rechnest.
Außerdem solltest du mal eine Led nehmen und selbst durchmessen. Nicht
dass das ein Worst-Case Wert ist oder nur bei speziellen Temperaturen
gilt.
Und bei dir die Leds durchbrennen.
Außerdem lernt man was wenn man mal selbst so eine Kennlinie mit ein
paar Werten aufnimmt.
> ... Das führt aber dazu, dass mein Rvor (+ dieser diff. R der LED)> weniger Spannung abkriegen, ... dann müsst ja wieder weniger Spannung> an den Transistoren abfallen, weil die ja von weniger Strom durchflossen> werden.>> Ein Teufelskreis.
Das ist richtig.
Wenn man das ganz genau ausrechnen will dann muss man sich iterativ an
die Lösung heran tasten.
Also die Rechnung mehrmals durchrechnen, wobei man dem wahren Wert immer
näher kommt.
Im Endeffekt sind die Fehler durch Streuung und Toleranzen allerdings so
groß, dass sich das kaum lohnt.