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.
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!
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
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!!!
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.
Falls du nicht auf genau diesen LED-Typ angewiesen bist, nim Super oder Ultrahelle LEDs, die Leuchten schon bei 2mA sehr Hell...
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
Vielen Dank für die anregungen, ich muß eh erstmal warten bis die LED`s da sind und dann geht es weiter.....
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
"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
"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.
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).
@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
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...
> 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.
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
"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
@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 ?
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 :)
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
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?
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.
klar schaltet der oder wie willste über nen 100k pullup noch 20mA ziehen???
Die nette theoriie funktioniert auch in der Praxis ! Die AVRs können sehr wohl gegen GND treiben...sogar besser als gegen VCC.
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
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 ??
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.
Hallo, Ja das mit den Bonddrähten leuchtet mir ein, danke. Es grüsst, Arno
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.
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.
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.
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
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 :)
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?
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.
Danke Andreas. Werd mir gleich mal das Datenblatt durchlesen. Gibt es da nix mit 8Stück zwecks der 8Pins pro Port?
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.