Der ATmega32 mit Vs = 5 V kann +/- 20 mA pro Pin mit einem Spannungsverlust von ca. 0,7 V und 0,8 V versorgen und versenken
und es kann 4 · (20 mA) = 80 mA insgesamt (pro Packung) und sogar pro Port ohne Probleme quellen und sinken.
Angenommen, Sie möchten die 20-mA-Nennleistung pro LED nicht überschreiten, ist dies eine andere Vorgehensweise:
U1 = ADG1636 . Es verfügt über zwei SPDT-Schalter. Jeder Schalteranschluss kann 238 mA (max.) In jede Richtung bei 25 ºC führen. Das ist deutlich höher als 4 · (20 mA) = 80 mA. U1 wirkt also als Hochstrompuffer. Der IC kostet 1,83 USD in 1 kpcs.
Rs = (5-2-0,7 V) / (20 mA) = 115 , 1/4 W. Sie benötigen nur vier davon.Ω
Um sicher zu sein, dass LED-Paare wie gezeigt antiparallel verbunden werden, muss esund diese Bedingung ist normalerweise erfüllt.VF<|VRmax|
Schritte:
1) Setzen Sie B = 0 (wie in Abb. Gezeigt). Dadurch erhalten Sie Zugriff auf die Dioden D9 bis D16. Die Dioden D1 bis D8 sind alle ausgeschaltet.
2) Setzen Sie A = 0 (wie in Abb. Gezeigt). Dadurch erhalten Sie Zugriff auf die Dioden D10, D12, D14 und D16.
3) Setzen Sie C = A, wenn D10 ausgeschaltet sein soll. Setzen Sie C =! A (! Bedeutet negiert), wenn D10 eingeschaltet sein soll.
4) Machen Sie gleichzeitig mit 3) dasselbe für {D, D12}, {E, D14}, {F, D16}.
5) Setze A = 1. Dadurch erhalten Sie Zugriff auf die Dioden D9, D11, D13 und D15.
6) Wiederholen Sie 3) und 4), jedoch für {C, D9}, {D, D11}, {E, D13}, {F, D15}.
7) Setze B = 1. Dadurch erhalten Sie Zugriff auf die Dioden D1 bis D8.
8) Wiederholen Sie 2) bis 6), jedoch für die Dioden D1 bis D8.
9) Wiederholen Sie 1) bis 8) für jeden neuen ganzen Zyklus.
Damit ist jede Diode mit einem Tastverhältnis von 1/4 eingeschaltet (was gut ist, wenn man bedenkt, dass Sie 16 Dioden haben). Und ja, Sie können PWM mit dieser Idee mischen, wenn Sie die Helligkeit schrittweise steuern möchten.
Wie gesagt, diese Lösung überschreitet nicht die 20-mA-Bewertung pro LED, sodass die maximale Helligkeit, die Sie sehen, 1/4 der maximalen Helligkeit beträgt, die jede LED erzeugen kann. Wenn Sie mehr Helligkeit wünschen, verwenden Sie LEDs, die mehr mcd / mA erzeugen. Dies wird ihr langes Leben intakt halten.
Dank der hohen Stromstärke von U1 hängt die Lichtmenge, die jede LED erzeugt, nicht von der Gesamtzahl der eingeschalteten LEDs ab.
Und Sie benötigen immer noch nur sechs GPIO-Leitungen von Ihrer MCU. Mit nur einem externen IC anstelle von Decoder + Puffern oder Transistoren. Dies ist teurer, aber kompakter (wenn dies kritisch ist) und mit einer etwas einfacheren Verkabelung (sechs statt acht Leitungen gehen zur LED-Matrix). Dies ist meiner Meinung nach eher eine merkwürdige und akademische Antwort.
Für Federico Russo hinzugefügt : Was Sie sagen, wurde bereits in meinem Absatz "Wie gesagt, diese Lösung [...]" angesprochen. Es ist keine gute Idee, 80 mA durch eine 20-mA-LED zu zwingen, selbst für 1/4 der Zeit. Sein Leben wird verkürzt. Und nicht aufgrund einer übermäßigen Verlustleistung (die gleich ist), sondern aufgrund einer Elektromigration (die proportional zum Strom ist). Siehe diese Referenz von Cree. Auszug:
Wiederholtes Pulsieren
Die zweite Art des Überstromzustands, das wiederholte Pulsieren mit hohem Strom, kann zu einem frühen katastrophalen Ausfall der LED führen oder auch nicht. Wiederholtes Hochstrompulsieren kann zu einer verkürzten Lebenserwartung der LED im Vergleich zur üblichen erwarteten Lebensdauer in der Größenordnung von Zehntausenden oder Hunderttausenden von Stunden führen. Ein bestimmtes Gerät, das wiederholten Transienten mit einer Amplitude ausgesetzt ist, die einige Prozent über den Datenblattgrenzen, aber unter dem für einen Einzelimpulsausfall erforderlichen Schwellenwert liegt, fällt schließlich immer noch aus. Der Versagensmechanismus wird höchstwahrscheinlich auf Elektromigration zurückzuführen sein, da schließlich genügend Metallionen von ihren ursprünglichen Gitterpositionen weg verschoben werden.
Wenn Sie dieselbe Lebensdauer und dasselbe Licht für weniger Strom wünschen, verwenden Sie LEDs, die bei 20 mA mehr mcd erzeugen.