Forum: Mikrocontroller und Digitale Elektronik 14 LED's an Atmega ohne Treiber?


von Sascha D. (plutoonline)


Lesenswert?

Hallo,
ist es möglich 14 LED's (2,2V ca. 20mA) über Vorwiderstand an 14
Portpins des Atmega8 zu betreiben? Es muß auch möglich sein das alle
LED'S gleichzeitig leuchten.

von johnny.m (Gast)


Lesenswert?

Ich habe bisher im Datenblatt der Controller keinen Hinweis gefunden,
dass das nicht geht. Begrenzt ist nur der Strom pro Pin. Wenn da jemand
andere Infos hat, bitte melden!

von Paul Baumann (Gast)


Lesenswert?

Das wären 280mA. Das geht so nicht gut. Du kannst nur die Ausgänge
multiplexen, damit immer nur eine LED im Gang ist. Statisch so viel
Strom zu ziehen, wird er Dir übelnehmen.

MfG Paul

von Sascha D. (plutoonline)


Lesenswert?

Also doch nen ULN2003 bzw. 2 nehmen.
Ich dachte ich könnte mir den schaltungsaufwand Sparen.
Wenn jemand noch eine Andere Idee hat, ich bin für alle Anregungen
offen.

Vielen Dank schonmal!!!

von crazy horse (Gast)


Lesenswert?

geht schon. Du darfst nur nicht alle LEDs gegen Masse oder alle gegen
Vcc schalten. Teile sie auf, die Hälfte liegt an Masse und wird mit
PORTx.x=1 eingeschaltet. Die andere Hälfte liegt an Vcc und wird
dementsprechend mit PORTx.x=0 eingeschaltet. Damit bist du innerhalb
der Spezifikation.

von alex (Gast)


Lesenswert?

Falls du nicht auf genau diesen LED-Typ angewiesen bist, nim Super oder
Ultrahelle LEDs, die Leuchten schon bei 2mA sehr Hell...

von peter dannegger (Gast)


Lesenswert?

So wie crazy horse es sagt, ist es richtig !

Der Software ist es doch egal, ob das bit 0 oder 1 sein muß für
eingeschaltet. Alles nur ne Frage der Definition.


Peter

von Sascha D. (plutoonline)


Lesenswert?

Vielen Dank für die anregungen, ich muß eh erstmal warten bis die LED`s
da sind und dann geht es weiter.....

von Conlost (Gast)


Lesenswert?

Hallo,

welche physikalische Gesetzmäßigkeit steht hinter
dieser Theorie mit dem aufteilen der LEDs?

Meiner Meinung nach ist es vollkommen egal ob nun
mit einem Transistor eine Last an VCC oder GND
gezogen wird, es tritt bei beiden ein Spannungsabfall
auf und das bringt in Verbindung mit dem Strom die
Verlustleistung, welche einen maximalen Wert nicht
überschreiten darf.

Ich halte den Vorschlag mit den ultrahellen LEDs
für besser, aber noch besser ist ein Treiber für die
LEDs.

Es grüsst,
Arno

von peter dannegger (Gast)


Lesenswert?

"welche physikalische Gesetzmäßigkeit steht hinter
dieser Theorie mit dem aufteilen der LEDs?"

Ganz einfach:

Schaltest du alle LEDs gegen VCC, muß der GND-Pin des AVR 14*0,02=280mA
abkönnen, der VCC-Pin bleibt fast unbelastet.

Nach dem Aufteilen müssen GND und VCC des AVR nur jeweils 140mA
aushalten.


Peter

von Manos (Gast)


Lesenswert?

"Ich habe bisher im Datenblatt der Controller keinen Hinweis gefunden,
dass das nicht geht. Begrenzt ist nur der Strom pro Pin. Wenn da
jemand
andere Infos hat, bitte melden!"
Meld
Strom pro Pin max 40mA
Strom gesamt max 200mA (Seite 239)
Abhängig von der Bauform (z.B. PDIP): B0 - B7, C6, D0 - D7 dürfen
zusammen nicht mehr als 100mA haben (Seite 240)

Hättest Du evtl. auch Low-Current LED's nehmen können? Die brauchen
nur 2mA.

von johnny.m (Gast)


Lesenswert?

@Manos: Danke!

von Läubi (Gast)


Lesenswert?

Was spricht den gegen Multiplexen? bei 14 Leds sollte das kein Problem
sein, spart Strom und du brauchst keinen Treiber oder sonstiges, und
alle aufn Mal könne auch leuchten (zumindest siehts so aus).

von Conlost (Gast)


Lesenswert?

@Peter:

Coole Theorie, aber leider nur Theorie.  ;-)

Wie willst du die Elektronen davon überzeugen,
das sie bei an VCC angeschlossenen Dioden nur
durch VCC fließen und bei an GND angeschlossenen
Dioden nur durch GND fließen dürfen?

Deiner Theorie zufolge braucht man bei an VCC
angeschlossenen Dioden keinen GND-Anschluß mehr
und umgekehrt dann bei an Gnd angeschlossenen
Dioden keinen VCC_Anschluß mehr.

Es grüsst,
Arno

von johnny.m (Gast)


Lesenswert?

Keine Theorie: Wenn Du LEDs zwischen uC-Pin und Masse legst, fließt der
Strom über den VCC-Pin in den Controller und über den Portpin und die
LED wieder nach draußen. Wenn man ne LED zwischen VCC und Portpin
anschließt, fließt der Strom über die LED, durch den Portpin in den
Controller und über GND wieder raus. Peter hat vollkommen recht! Man
kann das durchaus so aufteilen. Man muss nur wissen, wie so ein uC-Port
funktioniert...

von Rolf Magnus (Gast)


Lesenswert?

> Wie willst du die Elektronen davon überzeugen,
>das sie bei an VCC angeschlossenen Dioden nur
> durch VCC fließen und bei an GND angeschlossenen
> Dioden nur durch GND fließen dürfen?

Umgekehrt wird ein Schuh draus. Wie soll denn auch über die Diode ein
Strom von Vcc nach Vcc fließen?
Bei einer LED, die nach Vcc geschaltet ist, muß der zweite Pin nach GND
gezogen werden -> Der LED-Strom fließt durch den GND-Pin des
Controllers. Wenn die LED nach GND geschaltet ist, muß der andere Pin
nach Vcc gezogen werden -> Strom durch Vcc-Pin des Controllers.

von Conlost (Gast)


Lesenswert?

Wenn nun aber alle LEDs leuchten sollen,
dann fließt also durch GND und VCC jeweils
nur der halbe Stom?
Ich dachte doch tatsächlich, der Strom
fließt immer durch GND und VCC gleichzeitig.

Ich gebe es zu, ich bin zu blöde das zu
verstehen.  ;-)

Es grüsst,
Arno

von peter dannegger (Gast)


Lesenswert?

"dann fließt also durch GND und VCC jeweils
nur der halbe Stom?"

Aber nur durch GND und VCC des AVR !

Durch GND und VCC der gesamten Schaltung fließt natürlich der volle
Strom.


Peter

von phagsae (Gast)


Lesenswert?

@peter & crazy horse

Das ist/oder wäre ja ein guter trick.

Ich hab mal im Datenblatt eines Mega16 geschaut.
Da findet sich folgende Zeile:

DC Current Vcc and GND pins......200mA PDIP /   400mA TQFP

Jetzt ist nur die Frage wie ist das "and" gemeint.

A:Die summe der Ströme von Vcc und GND nicht größer als 200mA.
B:Die Pins Vcc und GND dürfen jeweils 200mA.

Ich tendiere eigentlich zu Variant A.

Weil ja der Strom nur indirekt die Leistung kennzeichnet die der Chip
thermisch abkann.

Bei B würde die Aufteilung in Sink/Source ja was bringen
Bei A jedoch nicht.

Zu dem gibt ja naoch die Einschränkung das die summe der Ströme
pro Port zB PB0..7 auch nicht 100mA überschreiten darf.
Das gilt sowohl für H und auch für L.

Was stimmt denn nun ?

von Manos (Gast)


Lesenswert?

Klingt in der Theorie faszinierend.... und ich denke mal, das müßte
sogar stimmen (finde zumindest in der Doku nichts was dagegen sprechen
würde)...

Genial einfache - einfach geniale Idee :)

von Conlost (Gast)


Lesenswert?

Aha, also ein sogenannter Stromteiler.

Wenn ich mir nun mal den Controller wegdenke
und statt dessen eine Glühlampe anschließe,
dann fließt durch die Glühlampe also nur
noch der halbe Strom der Glühlampe und durch
die restliche Schaltung dann der ganze Strom
der Glühlampe.

Nun habe ich es verstanden, danke.

Es grüsst,
Arno

von Läubi (Gast)


Lesenswert?

Genial einfach wäre Multiplex... dann braucht man sich garkeine Gedanken
über begrenzungen machen, da der COntrolelr in jedem Fall nur eine LED
zur Zeit am leuchten hat, fertig ist die Sache, wozu sich auf
Datenbaltt interpretationen einlassen?

von Philipp Burch (not logged in) (Gast)


Lesenswert?

Nette Theorie mit dem Aufteilen. Aber kann denn der Controller auch
gegen GND treiben? Ich kann es grade nicht sagen, aber es würde mich
sehr wundern, wenn da nicht einfach ein Pullup drin wär'. Das würde
auch mit der Tatsache aufgehen, dass bei Inputs mit PORTXX die internen
Pullups aktiviert/deaktiviert werden können und bei Outputs das Signal.

von Ludwig W. (lordludwig)


Lesenswert?

klar schaltet der oder wie willste über nen 100k pullup noch 20mA
ziehen???

von Andreas S. (Gast)


Lesenswert?

Die nette theoriie funktioniert auch in der Praxis ! Die AVRs können
sehr wohl gegen GND treiben...sogar besser als gegen VCC.

von Conlost (Gast)


Lesenswert?

Hallo,

ich verstehe es leider immer noch nicht, warum man
sich da an dem Strom festklammert, welcher durch
die VCC und GND Anschlußpinns fließt.
Wäre es nicht besser sich um die Spannungabfälle an
den internen Treiber-Transistoren zu kümmern, denn diese sind
es doch, welche die Verluste und somit die Wärmeentwicklung
verursachen und nicht die Anschlußpinns?
Wenn ich nun 14 LEDs anschließe, dann sind 14 Treiber
Transistoren beteiligt mit den entsprechenden Spannungabfällen.
Wenn ich nun jeweils 7 LEDs nach VCC und 7 LEDs nach GND
ziehe, dann sind doch auch wieder 14 Transistoren beteiligt.

Ich gehe einfach davon aus, das die Spannungabfälle über den
Transistoren größer sind als die Spannungabfälle an den Pins
für VCC und GND.

Es grüsst,
Arno

von DAU-xxl (Gast)


Lesenswert?

Hmmm...?
könnte es sein das der maximale strom eher mit den bonddrähten und
innerer verdrahtung zu tuen hat ?

die bei tqfp-gehäusen mehrfach vorhanden sind...
und somit dadurch mehr strom abkönnen ??

von crazy horse (Gast)


Lesenswert?

Hast du dir mal die Verlustleistung für einen Ausgangstransistor
ausgerechnet? Bei 20mA sinkt die Spannung um ca. 0,5V, macht dann
sagenhafte 10mW pro Portpin, im hier konkreten Fall von 14 LEDs also
140mW!
Das Problem sind die Chipgeometrie (auch Masse- und Vcc-Bahnen haben
nur begrenzte Breite) und die Bonddrähte.

von Conlost (Gast)


Lesenswert?

Hallo,

Ja das mit den Bonddrähten leuchtet mir ein, danke.

Es grüsst,
Arno

von senex24 (Gast)


Lesenswert?

an Läubi

Ich habe eine 5*5-LED-Matrix und benötige die volle Helligkeit der
zugelassenen 20 mA, ständig leuchten bis zu 7 LEDs. Im Multiplexbetrieb
müsste ich also einen 20%-Impuls von 100 mA auf die LEDs geben - kann
ich das? Das Gerät soll in 20 Jahren noch laufen.

von Läubi (Gast)


Lesenswert?

Also erstmal ist die helligkeit nicht Linear.
Ich würde mal ausprobieren ob man das Multiplex überhaupt merkt (also
ob die Helligkeit merklich nachläßt)
Dann kann man die LEDs noch bei Multiplex mit einem geringerem
Vorwiderstand betreiben (steht im Datenblatt wieviel der maximale
Pulstrom ist) und so die Helligkeit nochmals erhöhen.
Was auch noch geht udn hier schon gesagt wurde, Ultrahell oder Low
Current LEDs. Oder einen Treiber dazwischen.
Das ganze sollte auch in 20 Jahren noch laufen, LEDs sind recht robust,
und das Multiplexen schädigt diese auch nicht.
Ich würde wie gesagt nicht gleich mit so hohem current rangehen, weil
gerade in den unteren und oberen Bereichen die LED nicht sehr linear
sind was die helligkeitsveränderung angeht, heißt du erhöhst den Strom
um den Faktor 2 aber die LED erscheint nur um den faktor 0,2 heller..
deswegen, am besten erstmal "normal" mit 20mA testen udn dann wenn
Multiplex läuft, ggf den Vorwiderstand verringern.

von senex24 (Gast)


Lesenswert?

an Läubi

Ihre lange Antwort hat sicher viel Zeit gekostet und für die Mühe danke
ich Ihnen, aber...

Wenn ich 'volle Helligkeit' schreibe, dann meine ich das auch, was
soll ich mit low current. Meine Erfahrung sieht so aus:

Ich habe hier 3 verschiedene Typen LED, 5mm weiß, alle ultrahell, alle
zeigen das gleiche Verhalten: ich teste vorsichtshalber mit 3-fach
Multiplex statt 5-fach, zwei LED nebeneinander, eine mit konstant 20 mA
betrieben, die andere mit 33% gepulst; selbst bei 50 mA ist der
Helligkeitsunterschied noch deutlich.
Für 5-fach bräuchte ich also einen 20%-Implus mit mindestens 90 mA,
besser 100, und davon werde ich die Finger lassen.

von Ludwig W. (lordludwig)


Lesenswert?

grundregel: wenn die LED nur 1/5 der zeit leuchtet dann 5 mal so viel
Strom. Nimm bei 33% mal 60mA, die 10 mA können schon deutlich was
ausmachen.

Außerdem haben ultrahelle LED's normalerweise mehr als 20mA

von Läubi (Gast)


Lesenswert?

Jo hast du ein Datenblatt zu der LED?
Leider ist "Helligkeit" ein sehr subjektiver Eindruck ebenso wie
"warm" oder "gutes Wetter".

In deinem Falle würde ich Schieberegsiter (HC 4094).
Der kann LEDs sehr gut gegen GND treiben, entweder kombirt mit
multiplex (60mA strom) oder halt je Led ein Anschluss das wären dan bei
25 / 8 = 4 Bausteine.

Und nochmals zu den LowCurrent Leds: Die sind keinesfals "dunkler"
als ne Standard LED aber gut mit superhell oder Ultrahell könne die
wirklich nicht mithalten :)

von Markus Neubauuer (Gast)


Lesenswert?

Kurze zwischenfrage da mich das schon lage interessiert.
Wenn ich jetzt bissal mehr Strom pro port für z.B. ne große LED brauch
hab ich das bisher immer mit einzelnen Transistoren gemacht was aber
auf lochrasterplatinen immer sehr unangenehm ist da ich viel auftrennen
muss. Gibt es vielleich Treiber ICs die praktisch mehrere Transitoren
eingebaut haben und nur noch VCC und GND benötigen?

von Andreas Lang (andreas) (Gast)


Angehängte Dateien:

Lesenswert?

zum Thema Multiplex:
Bei superhellen LEDs reichen oft schon recht geringe Ströme, um sie
sehr hell zu bekommen. Die LEDs in dem Bild haben gerade mal 10mA und
laufen im Multiplex mit 5 Backplanes, sind also 20% der Zeit an. Die
sind übrigens auch bei Tag ziemlich hell.

von Andreas Lang (andreas) (Gast)


Lesenswert?

im ULN2003 stecken 7 Transistoren inkl. Vorwiderstand

von Markus Neubauer (Gast)


Lesenswert?

Danke Andreas.
Werd mir gleich mal das Datenblatt durchlesen.
Gibt es da nix mit 8Stück zwecks der 8Pins pro Port?

von Läubi (Gast)


Lesenswert?

ULN gibts auch mit 8 Transen ist der 2300x oder so glaub ich

von Rahul (Gast)


Lesenswert?


von Rahul (Gast)


Lesenswert?

bei 14 LEDs bietet sich aber an, zwei ULN2003 zu benutzen. Dann sind
beide komplett belegt...

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.