Forum: Mikrocontroller und Digitale Elektronik 4x7 LED-Anzeige mit ULN2803 und UDN2981A - Berechnung Widerstände


von Mike (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte ein 4x7 LED Display mit Multiplexing aufbauen (siehe 
Schaltplan/Platinenlayout in Anlage).

Folgende Bauteile sollen zum Einsatz kommen:

- ATtiny2313
- Kingbright CA56-11EWA (gemeinsame Anode)
- ULN2803 als Low-Side-Treiber
- UDN2981A als High-Side-Treiber (mir ist bewusst, dass das Teil für 
diesen Anwendungszweck nicht unbedingt notwendig wäre - aber hoffentlich 
trotzdem funktioniert)

Trotz der Lektüre der einschlägigen Artikel/Forenbeiträge und der 
Datenblätter bin ich bei der Berechnung der notwendigen Widerstände sehr 
unsicher...

Aus den Datenblättern habe ich folgende "Electrical Characteristics" 
entnommen (sind das die richtigen?), um sie dann in die Formeln 
einzusetzen:

4x7 LED Anzeige:
--> Forward Voltage = 2,0V
--> Input Current = 20mA
--> Peak Forward Current bei 0,1 ms Pulse Width = 160mA

ULN2803:
--> Sättigungsspannung 1,1V bei 200mA
--> Input Current: V(IN) = 3,85V / max. 0,93mA

UDN2981A:
--> Sättigungsspannung 1,7V bei 225mA
--> Input Current: V(IN) = 2,4V / max. 0,14mA

ATtiny2313:
--> Output Low Voltage: 0,7V / 20mA
--> Output High Voltage: 4,2V / 20mA

Bei einer Versorgungsspannung von 5V würde ich die Widerstände 
folgendermaßen berechnen:

R2 (Vorwiderstände LED Anzeige):

(5V - 1,7V - 1,1V - 2V) / (8*20mA) = 1,25 Ohm
--> würde das bedeuten, dass ich auf den Widerstand verzichten kann

R1 (zwischen LED-Anzeige und ULN2803):

--> ich hatte in einer anderen Beispielschaltung mal 47 Ohm gesehen. 
Aber braucht man hier überhaupt einen Widerstand? Wäre das nicht eh 
durch die LED-Vorwiderstände R2 abgedeckt?

R3 (Eingangswiderstand ULN2803):

(4,2V - 3,85V) / 0,93mA = 376 Ohm
--> hier bin ich jetzt komplett unsicher, ob ich die richten Zahlen in 
die richtige Formel eingesetzt habe... 4,2V ist Output High Voltage des 
ATtiny, die anderen beiden Werte sind V(IN) des ULN2803

R4 (Eingangswiderstand UDN2981A):

(4,2V - 2,4V) / 0,14mA = 1.285 Ohm
--> hier bin ich jetzt noch unsicherer (Werte analog zu R3 aus 
Datenblättern entnommen)... in einigen Schaltungen sieht man auf dieser 
Seite überhaupt keinen Widerstand und ich hatte irgendwo (im Elektronik 
Kompendium?) gelesen, dass man bei einer Kollektorschaltung (und die ist 
doch im UDN2981A umgesetzt, oder) keinen Vorwiderstand benötigen 
würde...

Stimmt das ULN2803 = Emitterschaltung und IUDN2981A = 
Kollektorschaltung?

Noch eine Frage: Das Multiplexing würde ich so machen, dass immer ein 
Segment der 4 Ziffern gleichzeitig an ist - und über die 7 Segmente dann 
"gemultiplext" wird - ist das der richtige Ansatz?

VG Mike

PS: Bei den richtigen Aussagen/Annahmen bitte nur ein kurzes "JA" 
(möchte Eure Zeit nicht überbeanstruchen) - bei den falschen würde mir 
eine kurze Klarstellung/Erläuterung sehr helfen... vielen Dank!

von RTFM (Gast)


Lesenswert?

Mike schrieb:
> Stimmt das ULN2803 = Emitterschaltung und IUDN2981A =
> Kollektorschaltung?

Wenn Du in deinem eigenen Post auf oder gleich hier auf ---> ULN2803 
klickst, dann kommst du auf das Datenblatt.

Dort siehst du unter Figure 12. Representative Schematic Diagrams, wie 
das intern geschaltet ist.

von MaWin (Gast)


Lesenswert?

> würde das bedeuten, dass ich auf den Widerstand verzichten kann

Nein, natürlich nie, wie kommt man auf so eine Unsinn ?

Es bedeutet, daß die Restspannug zu klein ist,
um bei den Schwankungen der Spannungensabfälle
(es sind ja nicht immer 1.1V am ULN2803, auch mal 0.6V,
und es sind nicht immer 2V an der LED, auch mal 1.8V oder 2.5V)
einen halbwegs definierten Strom (von 80mA max.) zu bekommen.

5V sind für die Kombination 2803/2981 zu wenig.

> Aber braucht man hier überhaupt einen Widerstand?

Du brauchst NUR Widerstände am 2803.


Den 2981 ersetzt du am besten durch P-Kanal MOSFETs wie IRLML2246

von Mike (Gast)


Lesenswert?

RTFM schrieb:
> Wenn Du in deinem eigenen Post auf oder gleich hier auf ---> ULN2803
>
> klickst, dann kommst du auf das Datenblatt.
>
>
>
> Dort siehst du unter Figure 12. Representative Schematic Diagrams, wie
>
> das intern geschaltet ist.

Ich habe das genannte Diagramm mit den Erläuterungen im Artikel 
"Transistor" Kap. 4 (http://www.mikrocontroller.net/articles/Transistor) 
verglichen und würde "ULN2803 = Emitterschaltung und IUDN2981A = 
Kollektorschaltung" behautpen, ohne es genau zu wissen (bin Anfänger und 
unsicher im Interpretieren der Schaltdiagramme) - also die Aussage ist 
richtig, oder?

MaWin schrieb:
> Nein, natürlich nie, wie kommt man auf so eine Unsinn ?

Wenn man die Werte aus dem Datenblatt "stupide" in Formeln einsetzt ;-)

MaWin schrieb:
> 5V sind für die Kombination 2803/2981 zu wenig.

Ich hätte auch 9V (vor dem Spannungsregler). Dann würde ich als 
LED-Vorwiderstände
(9V - 1,7V - 1,1V - 2V) / (8*20mA) = 26 Ohm nehmen - würde das passen?

MaWin schrieb:
> Du brauchst NUR Widerstände am 2803.

"Am 2803" heißt am Eingang (in Richtung Prozessor) oder am Ausgang (in 
Richtung LED-Anzeige)? Falls der zweite Fall gemeint ist - was ist da 
genau der Unterschied, ob ich die Widerstände vor oder hinter die LED 
schalte? Ok, einmal ist es vor der Spalte und einmal hinter der Zeile, 
oder? Kannst Du mir da auf die Sprünge helfen, warum die Widerstände 
genau da sein MÜSSEN?

Im Artikel "LED-Matrix" 
(http://www.mikrocontroller.net/articles/LED-Matrix) ist eine analoge 
Schaltung mit ULN2803 und UDN2981 - und da sind nur Widerstände zwischen 
UDN2981 und LED-Matrix eingezeichnet. Die Seite zum Prozessor hin ist 
dort leider nicht dargestellt..

MaWin schrieb:
> Den 2981 ersetzt du am besten durch P-Kanal MOSFETs wie IRLML2246

Wäre wohl die bessere Lösung, aber hab die Teile jetzt schon gekauft und 
(voreilig) teilweise verlötet... also wenn es mit der Kombi irgendwie 
geht, würde ich gerne dabei bleiben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mike schrieb:
> Ich hätte auch 9V (vor dem Spannungsregler).
> Dann würde ich als LED-Vorwiderstände
> (9V - 1,7V - 1,1V - 2V) / (8*20mA) = 26 Ohm nehmen - würde das passen?
Wenn du die 20mA brauchst, dann schon.
Brauchst du die? Oder mehr? Oder weniger?

> MaWin schrieb:
>> Du brauchst NUR Widerstände am 2803.
Das sind deine R1. Die R2 brauchst du nicht.

Zwischen uC und ULN/UDN brauchst du gar keinen Widerstand. Das ist ja 
der Tick bei den Dingern. Sieh dir einfach mal die Innenbeschaltung vom 
UDN an:
http://shop.griederbauteile.ch/images/artikel_medium/u/UDN2981A.jpg
Und die vom ULN:
http://amplifiers.tripod.com/integrated6.gif
Du siehst: da sind schon jede Menge Widerstände eingebaut. Wenn du aber 
unbedingt welche einbauen willst, dann nimm was zwischen 220..470 Ohm.

von Mike (Gast)


Lesenswert?

Lothar Miller schrieb:
> Wenn du die 20mA brauchst, dann schon.
>
> Brauchst du die? Oder mehr? Oder weniger?

wenn ich das so genau wüsste... ;-)

Im Datenblatt der 4x7 LED Anzeige steht:
--> Forward Voltage = 2,0V
--> Input Current = 20mA
--> Peak Forward Current bei 0,1 ms Pulse Width = 160mA

Wie ist das zu interpretieren? Die 20mA gelten für die gesamte Ziffer 
(mit 8 Segmenten), oder nur für ein einzelnes Segment? Wegen 
Multiplexing über die 4 Ziffern würde ich das dann mal 4 nehmen und 
komme auf 80mA für die "Gesamtanlage" - diesen Wert würde ich dann in 
die Formel einsetzen:

(9V - 1,7V - 1,1V - 2V) / (4*20mA) = 52 Ohm

Lothar Miller schrieb:
> Das sind deine R1. Die R2 brauchst du nicht.

Ok, im Artikel "LED-Matrix"
(http://www.mikrocontroller.net/articles/LED-Matrix) ist das genau 
umgekehrt dargestellt - mit "meinen" R2 und ohne die R1. Wären die R2 
nicht auch die klassischen LED-Vorwiderstände? Und welchen Unterschied 
macht es, ob ich R2 vor der Anzeige oder R1 hinter der Anzeige einbaue? 
Vermutlich ist die Berechnung anders (vom Gefühl her würd ich vermuten, 
dass R1 = 1/2 R2 ist, da es doppelt so viele gibt)

Lothar Miller schrieb:
> Zwischen uC und ULN/UDN brauchst du gar keinen Widerstand. Das ist ja
>
> der Tick bei den Dingern.

Weil die Widerstände dort schon eingebaut sind, oder? Falls dies nicht 
so wäre, würde meine Berechnung oben passen? ... will ja auch was 
lernen...

Lothar Miller schrieb:
> Wenn du aber unbedingt welche einbauen willst, dann nimm was zwischen
>
> 220..470 Ohm.

nöö, nur wenn's notwendig gewesen wäre

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mike schrieb:
> (4,2V - 3,85V) / 0,93mA = 376 Ohm
> --> hier bin ich jetzt komplett unsicher, ob ich die richten Zahlen in
> die richtige Formel eingesetzt habe... 4,2V ist Output High Voltage des
> ATtiny, die anderen beiden Werte sind V(IN) des ULN2803
Deine Zweifel sind berechtigt, denn du hast beim Tiny die 4,2V ja bei 
20mA.
> ATtiny2313:
> --> Output High Voltage: 4,2V / 20mA
Bei weniger Strom hast du dort aber automatisch auch mehr Spannung. Und 
damit stimmen die 4,2V nicht mehr...

von Mike (Gast)


Angehängte Dateien:

Lesenswert?

Lothar Miller schrieb:
> Zwischen uC und ULN/UDN brauchst du gar keinen Widerstand. Das ist ja
>
> der Tick bei den Dingern.

Lothar Miller schrieb:
> Bei weniger Strom hast du dort aber automatisch auch mehr Spannung. Und
>
> damit stimmen die 4,2V nicht mehr...

ok, aber brauche trotzdem keinen Widerstand? Ich hatte in einer anderen 
Schaltung (siehe Anlage - auch hier aus dem Forum) an dieser Stelle 2,2 
kOhm gesehen

In dieser Schaltung sind auch 47 Ohm zwischen Display und ULN (also 
annähernd die von mir berechneten 52 Ohm) - aber verstehe immer noch 
nicht so richtig, warum die Widerstände genau hierhin müssen, und nicht 
zwischen UCN und Display sollen/dürfen (wie im oben genannten Artikel 
"LED Matrix")

Sorry, wenn ich "nerve" - aber möchte es verstehen, damit ich zukünftig 
nicht mehr die Forumsgemeinde mit diesen Standardfragen "belästige" ;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mike schrieb:
> ok, aber brauche trotzdem keinen Widerstand? Ich hatte in einer anderen
> Schaltung (siehe Anlage - auch hier aus dem Forum) an dieser Stelle 2,2
> kOhm gesehen
Solche Angstwiderstände kann man einbauen. Man muss es aber nicht...

> In dieser Schaltung ...
Es wird immmer mit einem der T1..4 eine Anode eingeschaltet. Und mit dem 
ULN2803 werden dann die entsprechenden Segmente eingeschaltet.
Z.B. T1 eingeschaltet --> Tausender aktiv.
Segmente b und c über Vorwiderstände gegen GND --> die 1 leuchtet auf.
Danach T1 aus und T2 ein --> Hunderter aktiv.
Segmente a,b,c,d,e und f gegen Masse --> 0 leuchtet auf.
Usw...

Bei dir werden einfach die T1..4 werden durch den UDN ersetzt.

Und was wäre jetzt, wenn die Vorwiderstände in der Leitung zwischen T1 
und der Tausenderstelle wäre? Alle 7 Segmente müssen ihren Strom über 
diesen Widerstand beziehen. Und das würde bedeuten, dass der Widerstand 
zu klein wärem wenn nur 1 Segment an ist. Und zu hochohmig, wenn alle an 
wären.

von Mike (Gast)


Lesenswert?

@ Lothar: Vielen Dank für die sehr verständliche Erklärtung!

MaWin schrieb:
> würde das bedeuten, dass ich auf den Widerstand verzichten kann
> Nein, natürlich nie, wie kommt man auf so eine Unsinn ?
> Es bedeutet, daß die Restspannug zu klein ist,
> um bei den Schwankungen der Spannungensabfälle
> (es sind ja nicht immer 1.1V am ULN2803, auch mal 0.6V,
> und es sind nicht immer 2V an der LED, auch mal 1.8V oder 2.5V)
> einen halbwegs definierten Strom (von 80mA max.) zu bekommen.
>
> 5V sind für die Kombination 2803/2981 zu wenig.

Was ich noch nicht ganz begreife: Wenn ich die Schaltung mit 9V betreibe 
und entsprechende Widerstände (8 x 47 Ohm) einbaue, um die überschüssige 
Spannung (von 4V?) wieder zu "vernichten" - warum geht es dann nicht 
auch mit 5V und ohne Widerstände? Oder haben die Widerstände da eine 
"ausgleichende" Wirkung bzgl. eines "halbwegs definierten Stroms" bei 
Spannungsschwankungen? Hmm, aber wenn die Spannung wie beschrieben in 
gewissen Bandbreiten schwankt, bleibt der Widerstand doch trotzdem 
gleich und ich habe (das gleiche) Defizit oder Überschuss, je nachdem... 
kannst Du mir da auch noch bitte kurz auf die Sprünge helfen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mike schrieb:
> Oder haben die Widerstände da eine "ausgleichende" Wirkung bzgl. eines
> "halbwegs definierten Stroms" bei Spannungsschwankungen?
Ja. Und bei Schwankungen der LED-Vorwärtsspannung Uf.

> Hmm, aber wenn die Spannung wie beschrieben in
> gewissen Bandbreiten schwankt, bleibt der Widerstand doch trotzdem
> gleich und ich habe (das gleiche) Defizit oder Überschuss, je nachdem...
Aber die Stromschwankung (die letzlich eine Helligkeitsschwankung werden 
wird, weil bei LEDs gilt Strom=Licht) wird nicht so stark ausfallen.
Ein simples Beispiel mit theoretischen Werten:
Eine Spannungsquelle ändert ihre Spannung um 1 V nach oben. Die Uf der 
LED sei 2V, der gewünschte Strom seien die berüchtigten 20mA. Die 
Sättigungsspannungen seinen je 1V.
Dann wirst du bei Vcc=9V einen Widerstand von (9-1-2-1)/0.02 = 250 Ohm 
bekommen. Wenn jetzt die Spannung auf 10V steigt, dann steigt der Strom 
auf (10-4)/250 = 24mA.
Und das selbe bei 5V gibt 50 Ohm und mit 6V ergibt sich eine 
Stromsteigerung auf 40mA.

Und viel schlimmer wirkt sich das aber bei einer Reduzierung der 
Versorgung aus. Rechne das mal mit 10V->9V und mit 5V->4V aus. Du wirst 
Augen machen...

Mit einer Versorgung aus geregelten 5V hast du die Versorgungs- 
spannungsschwankung weg, aber es bleiben trotzdem Änderungen bei der Uf 
und bei den Durchlassspannungen der Schalter.

von Mike (Gast)


Lesenswert?

Ah verstehe, vielen Dank!!

Die Schwankung der Spannung ist zwar absolut gleich, aber RELATIV zu Vcc 
wird sie geringer - und damit auch die Stromstärke stabiler. Ist 
logisch, aber wäre ich jetzt nicht drauf gekommen...

VG Mike

von Mike (Gast)


Lesenswert?

Ich habe das Display jetzt zusammengelötet und programmiert 
(Multiplexing über die 4 Ziffern) - funktioniert auch einwandfrei, aber 
eine Frage hätte ich noch:

Die Ziffern mit wenigen Segmenten (also 1 und 7) leuchten etwas heller 
als die Ziffern mit vielen Segmenten. Ist mir auch klar, dass sich die 
LEDs den verfügbaren Strom teilen müssen. Aber gäbe es generell eine 
Möglichkeit bzw. ein Bauteil, dieses "Phänomen" zu vermeiden (also 
Anpassung der Stromstärke je nach Anzahl der leuchtenden Segmente)? Also 
Helligkeitsunterschied ist jetzt nicht dramatisch, aber rein aus 
Interesse..

VG Mike

von MaWin (Gast)


Lesenswert?

> Ich habe das Display jetzt zusammengelötet

Bloss warst du zu faul zu schreiben welche Variante du nun gebaut hast,
deine Ursprungsvariante, mit 9V, oder mit MOSFETs.

Bei deiner Ursprungsvariante ist das Verhalten durch die Widerstände an 
den UDN2981 und die Multiplexmethode zu erklären,

bei 5V und keinen/kleinen Widerständen ist es auch zu erklären weil der 
Spannungsabfall in einem Treiber, z.B. dem UDN2981, grösser wird wenn 
mehr Strom fliesst, also unetrschiedlich ist und damit die kleienn 
Widerstände zu sehr unterschiedlichem Strom und damit Helligkeit führen.

Nur die Variante mit 4 MOSFETs und 1:4 Multiplexing und ohne Widerstände 
an den MOSFETs dürfte das Verhalten nicht zeigen.

von Mike (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe die Variante mit 9V und UDN2918 / BLN2803 genommen - 
"Schaltplan" und Coding siehe Anlage. Sorry, hatte ich eben vergessen...

MaWin schrieb:
> Bei deiner Ursprungsvariante ist das Verhalten durch die Widerstände an
>
> den UDN2981 und die Multiplexmethode zu erklären,

und WIE ist es zu erklären? Meine laeinhafte Vermutung ist, dass die 
verfügbare Spannung einfach auf eine verschiedene Anzahl von Segmenten 
verteilt wird und dadurch eine einzelne LED mehr oder weniger Strom 
bekommt...

Nur um es zu verstehen: wenn ich jetzt z. B. 12V (statt 9V) und 
entsprechend größere Widerstände genommen hätte, wäre der 
Helligkeitsunterschied geringer?

MaWin schrieb:
> Nur die Variante mit 4 MOSFETs und 1:4 Multiplexing und ohne Widerstände
>
> an den MOSFETs dürfte das Verhalten nicht zeigen.

Ok, Ihr hattet es mir vorher ja schon so empfohlen, also darf ich mich 
jetzt nicht beschweren ;-) es geht mir auch mehr ums Lernen... also 4 
MOSFETs statt dem UDN2981 (und den ULN2803 so drin lassen)? Heißt 1:4 
Multiplexing, dass immer eine der 4 Ziffern an ist? Zumindest das mache 
ich jetzt schon so.

von Mike (Gast)


Lesenswert?

PS: Widerstände habe ich nur am ULN2803 - zumindest da bin ich Eurer 
Empfehlung gefolgt... ;-)

Warum würde bei 4 MOSFETs das Problem nicht auftreten? Schalten die 
schneller oder exakter oder mit weniger Stromverlust/-schwankung 
oder...? Eine kurze Erklärung würde mir für zukünftige Projekte sehr 
helfen.

von Mike (Gast)


Lesenswert?

PS: Übrigens leuchtet es auch dunkler, wenn 4 Ziffern statt nur 1 Ziffer 
an sind... würde sich das auch durch die MOSFETs lösen lassen?

von MaWin (Gast)


Lesenswert?

> Ich habe die Variante mit 9V und UDN2918 / BLN2803 genommen

Dann sollte es ohne solche Helligkeitseffekte funktionieren. 1:4 
Multiplex:
An einen UDN2981 Eingang high anlegen damit eine Stelle ausgewählt wird, 
an den ULN2803 die Segmente anlegen die leuchten sollen, etwas warten, 
einen anderen Eingang des UDN2981 auf high und die Segmente die an 
dieser Stelle leuchten sollen an den ULN2803 ausgeben. U.s.w. Niemals 
mehrere Eingänge des UDN2981 auf high

> Heißt 1:4 Multiplexing, dass immer eine der 4 Ziffern an ist?

Ja.

> zumindest das mache ich jetzt schon so.

Dann sollte es gut funktionieren.

von Mike (Gast)


Angehängte Dateien:

Lesenswert?

MaWin schrieb:
> Dann sollte es ohne solche Helligkeitseffekte funktionieren. 1:4
>
> Multiplex:
>
> An einen UDN2981 Eingang high anlegen damit eine Stelle ausgewählt wird,
>
> an den ULN2803 die Segmente anlegen die leuchten sollen, etwas warten,
>
> einen anderen Eingang des UDN2981 auf high und die Segmente die an
>
> dieser Stelle leuchten sollen an den ULN2803 ausgeben. U.s.w. Niemals
>
> mehrere Eingänge des UDN2981 auf high

Das Multiplexing mache ich so ähnlich (siehe Code):

- alle Ziffern aus
- Segmente für Ziffer 1 an ULN2803
- Ziffer 1 über UDN2981 an
- Ziffer 1 aus
- Segmente für Ziffer 2 an ULN2803
- Ziffer 2 über UDN2981 an
- usw.

Schreibst Du mit Absicht, ZUERST an UDN2981 high anlegen und dann die 
Segmente der Ziffer, dann nächste Ziffer an und DANACH die Segmente auf 
high usw... ? Würde das nicht dazu führen, dass die nächste Ziffer am 
Anfang ganz kurz mit den Segmenten der vorherigen Ziffer leuchtet?

MaWin schrieb:
> Dann sollte es gut funktionieren.

Also es funktioniert ganz ok - aber wie gesagt: "1" ist (etwas) heller 
als andere Ziffern und eine einzelne Ziffer ist (deutlich) heller als 
alle vier Ziffern.

Noch eine Idee? Ist der Effekt wirklich durch UDN2981 statt MOSFETs zu 
erklären? Falls ja, warum? Danke

VG Mike

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
Noch kein Account? Hier anmelden.