Forum: Mikrocontroller und Digitale Elektronik Anzahl benötigter Ausgänge für Ansteuern von LEDs


von Daniel Schmidt (Gast)


Lesenswert?

Hallo zusammen,

ich möchte für eine Anzeige 10 LEDs unabhängig voneinander ansteuern, 
habe aber nur 8 digitale Ausgänge an meinem Microcontroller.

Gibt es nicht irgendwie eine inteligente Verschaltungsmöglichkeit, 
sodass ich mit den 8 digitalen Ausgängen auskomme?

Vielen Dank!

von Hugo (Gast)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Wenn du sie wirklich unabhängig voneinander ansteuern willst, brauchts 
du 10 Leitungen.

Alles Andere läuft auf irgend eine Art von Multiplexing hinaus. Zum 
Beispiel 7 Leitungen für 3x4=12 LED's.

Googel nach "LED Multiplexing".

von Sebastian S. (amateur)


Lesenswert?

Die clevere Schaltung ist für 1 aus 8 geeignet, aber nicht für:
>für eine Anzeige 10 LEDs unabhängig voneinander ansteuern

Da helfen wohl nur ein externes Schieberegister, irgendwas mit I²C, oder 
wie auch immer all die Möglichkeiten heißen mögen.

von Ralf L. (ladesystemtech)


Lesenswert?

Wenn Du 10 LEDs hast, brauchst Du 4 Leitungen. Du musst dann leider 
multiplexen.

von Wolfgang (Gast)


Lesenswert?

Daniel Schmidt schrieb:
> Gibt es nicht irgendwie eine inteligente Verschaltungsmöglichkeit,
> sodass ich mit den 8 digitalen Ausgängen auskomme?

Hänge zwei LEDs an einen Pin (LED1 an VCC, LED2 an Gnd)

Dann gibt es folgende Möglichkeiten
(1) Pin Output Low  - nur LED 1 leuchtet
(2) Pin Output High - nur LED 2 leuchtet
(3) Pin Input - LEDs aus

Damit die Helligkeit der leuchtenden LED unabhängig vom Zustand der 
anderen ist, schaltest du schaltest du immer zwischen zwei Zuständen 
hin- und her. Jeder LED gehört damit ein Zeitfenster.

Nur LED 1: Umschaltung (1)-(3)
Nur LED 2: Umschaltung (2)-(3)
LED1 + LED2: Umschaltung (1)-(2)
Beide aus: (3)

Das ist von der Pin-Nutzung nicht so effektiv wie Charlieplexing, reicht 
in deinem Fall aber wahrscheinlich, wenn du die Pins sonst nicht 
brauchst.

von Manfred (Gast)


Lesenswert?

Ralf L. schrieb:
> Wenn Du 10 LEDs hast, brauchst Du 4 Leitungen. Du musst dann leider
> multiplexen.
Die dazugehörige Schaltung würde ich gerne mal sehen, da ich die 
Realisierbarkeit mit 4 Leitungen bezweifele.

Ja, ich kann mit Google umgehen.
Nein, ich werde nicht suchen!

von Toxic (Gast)


Angehängte Dateien:

Lesenswert?


von Joachim B. (jar)


Lesenswert?

Daniel Schmidt schrieb:
> ich möchte für eine Anzeige 10 LEDs unabhängig voneinander ansteuern,
> habe aber nur 8 digitale Ausgänge an meinem Microcontroller.
> Gibt es nicht irgendwie eine inteligente Verschaltungsmöglichkeit,
> sodass ich mit den 8 digitalen Ausgängen auskomme?

sogar mit einem, WS2812B

von Ralf (Gast)


Lesenswert?

Manfred schrieb:
> Die dazugehörige Schaltung würde ich gerne mal sehen, da ich die
> Realisierbarkeit mit 4 Leitungen bezweifele.

Mit vier Leitungen kann ich sogar 16 LEDs beliebig steuern! :P

2 hoch 4 = 16

von Joachim B. (jar)


Lesenswert?

Ralf schrieb:
> Mit vier Leitungen kann ich sogar 16 LEDs beliebig steuern! :P
> 2 hoch 4 = 16

stimmt, fast sagen wir 15 LEDs denn AUS muss es auch geben!
http://assets.nexperia.com/documents/data-sheet/74HC_HCT154.pdf

da könnte man sogar dimmen per PWM, muss nur schnell genug durchlaufen

von Manfred (Gast)


Lesenswert?

Ralf schrieb:
>> Die dazugehörige Schaltung würde ich gerne mal sehen, da ich die
>> Realisierbarkeit mit 4 Leitungen bezweifele.
> Mit vier Leitungen kann ich sogar 16 LEDs beliebig steuern!
Hilft wenig und steht noch immer in Zweifel.

Aber danke an Toxic, der die Schaltung hier reingestellt hat! Da sind es 
aber nur 12 LEDs.

von Ralf (Gast)


Lesenswert?

Manfred schrieb:
> Da sind es
> aber nur 12 LEDs.

Es werden sowieso nur 10 LEDs verwendet, Du Genauigkeitsfanatiker.

Ralf schrieb:
> Mit vier Leitungen kann ich sogar 16 LEDs beliebig steuern!

o.k. Du hast Recht, dann sind es eben nur max. 15 LEDs. Das sind 
immerhin noch mehr als benötigt werden.

von Noch einer (Gast)


Lesenswert?

> Mit vier Leitungen kann ich sogar 16 LEDs beliebig steuern!

????

16 LEDs können 2^16 Kombinationen von an/aus anzeigen. Da will ich aber 
sehen, wie du das mit 4 Leitungen machst.

von Joachim B. (jar)


Lesenswert?

Noch einer schrieb:
> 16 LEDs können 2^16 Kombinationen von an/aus anzeigen. Da will ich aber
> sehen, wie du das mit 4 Leitungen machst.

schrieb ich doch
Beitrag "Re: Anzahl benötigter Ausgänge für Ansteuern von LEDs"

man muss nur schnell genug die Bitkombinationen durchtoggeln, je öfter 
Bit 1 gesendet wird umso heller wird LED1
dito LED2
man kann auch mal ein paar mal Bit 0 durchtoggeln, je öfter desto AUS 
für alle oder dunkler

von Ralf (Gast)


Lesenswert?

Ihr habt recht. Mit 4 Leitungen kann ich nur 15 LEDs nacheinander 
ansteuern, einschließlich alle aus. Der TO möchte aber alle LEDs 
unabhängig voneinander einschalten können und das habe ich überlesen. 
Sorry.

von Karl M. (Gast)


Lesenswert?

Hallo,

was ich noch nicht gelesen habe ist:

weitere externe Einheiten, die man z.B. über I2C, SPI, seriell oder über 
Portexpander CLK, DI und Reset ansteuern kann.

von DraconiX (Gast)


Lesenswert?

Karl M. schrieb:
> Hallo,
>
> was ich noch nicht gelesen habe ist:
>
> weitere externe Einheiten, die man z.B. über I2C, SPI, seriell oder über
> Portexpander CLK, DI und Reset ansteuern kann.

Doch steht weiter oben, aber das war ja auch nicht die Frage.

von Stefan F. (Gast)


Lesenswert?

Ich weiß ja nicht, auf welchem Trip ihr gerade seid.
Aber mit ganz normalem 4x4 Multiplexing steuere ich 16 LED's an.

Und zwar so: http://dokuwiki.ehajo.de/artikel:led-multiplex

Für 10 LED's genügt die 3x4 Variante, also 7 Leitungen.

von Joachim B. (jar)


Lesenswert?

Ralf schrieb:
> Ihr habt recht. Mit 4 Leitungen kann ich nur 15 LEDs nacheinander
> ansteuern, einschließlich alle aus. Der TO möchte aber alle LEDs
> unabhängig voneinander einschalten können und das habe ich überlesen.
> Sorry.

geht doch auch, einfach schnell genug die passenden Bits auf die 4 
Eingänge durchsenden also ein Zähler 1 bis 10 in einer Schleife stets 
wiederholend, dann ist jede LED kurz an und optisch siehts dann so aus 
als wenn alle leuchten.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Stefan U. schrieb:
> Ich weiß ja nicht, auf welchem Trip ihr gerade seid.
> Aber mit ganz normalem 4x4 Multiplexing steuere ich 16 LED's an.
>
> Und zwar so: http://dokuwiki.ehajo.de/artikel:led-multiplex
>
> Für 10 LED's genügt die 3x4 Variante, also 7 Leitungen.

Jep. Bei Verwendung einer regulären Matrix kann man mit 7 Pins bis
zu 12 LEDs steuern: N+M Pins für N*M LEDs.

Und wenn man Charlieplexing verwendet (weiter oben verlinkt) dann
reichen sogar nur 4 Pins für 12 LEDs: N Pins für N*(N-1) LEDs.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:
> Und wenn man Charlieplexing verwendet (weiter oben verlinkt) dann
> reichen sogar nur 4 Pins für 12 LEDs

Beim Charlieplexing für 10 LEDs leuchten die jeweils aktiven LEDs nur
für 1/10 der Zeit und damit nur relativ schwach.

Stefan U. schrieb:
> Ich weiß ja nicht, auf welchem Trip ihr gerade seid.
> Aber mit ganz normalem 4x4 Multiplexing steuere ich 16 LED's an.
>
> Und zwar so: http://dokuwiki.ehajo.de/artikel:led-multiplex
>
> Für 10 LED's genügt die 3x4 Variante, also 7 Leitungen.

Wieso nicht 2×5? Das genügt ebenso für 10 LEDs, aber es wird nur 2-fach
gemultiplext, wodurch die LEDs heller leuchten und die Multiplexperiode
verkürzt wird, was das Flimmern reduziert.

Das 2×5-Multiplexverfahren lässt sich aber auch mit nur 5 I/O-Pins
realisieren, wie Wolfgang gezeigt hat:

Wolfgang schrieb:
> Hänge zwei LEDs an einen Pin (LED1 an VCC, LED2 an Gnd)

Leider funktioniert das nur, wenn die Flussspannung der LEDs deutlich
größer als die halbe Versorgungsspannung ist. Sonst leuchten im
hochohmigen Zustand des I/O-Pins beide angeschlossenen LEDs, wenn auch
schwächer als normal. Aber vielleicht ist diese Bedingung beim TE ja
erfüllt. Dann ist das IMHO die optimale Lösung.

Eine andere Variante (s. Anhang) des 2×5-Multiplex nutzt ähnlich wie
beim Charlieplexing die Möglichkeit, die I/O-Pins alternierend sowohl
als Quelle als auch als Senke zu nutzen. Die Anzahl der benötigten
I/O-Pins liegt mit 6 zwischen dem klassischen Multiplex und Wolfgangs
Verfahren. I/O-Pin P0 muss 5 LEDs gleichzeitig treiben können, was bei
Low-Current-LEDs möglich sein sollte. Sonst muss der als "optional"
gekennzeichnete Treiber aus zwei Transistoren zugeschaltet werden, was
die Schaltung leider wieder etwas aufwendiger macht.

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.