Forum: Mikrocontroller und Digitale Elektronik Binärdecoder für LED Steuerung


von Alex B. (albex)


Lesenswert?

Hallo.

Ich möchte mit einem Microcontroller 4 LEDs ansteuern um damit den 
aktuellen Modus meines Programms (1-4) anzuzeigen. Da ich nicht 4 Pins 
dafür verbraten will, würde ich gerne einen Binärdecoder verwenden. Da 
ich gut zu Conrad in Essen gelange, habe ich mir diesen hier ausgesucht: 
SN74F138N

Meine Frage wäre nun ob mein Gedankengang korrekt war?
Also: Den Decoder mittels 2 Pins per MC ansteuern und damit direkt eine 
der 4 LEDs schalten (ohne Transistor).

Alternativ hätte ich hier auch ein paar (bisher nutzlose) Zähler 
herumliegen. Könnte ich evtl. einen davon für die Aufgabe einsetzten? 
Per Software sollte ich ja theoretisch einen Decoder imitieren können. 
(74HCT4040N, GAL16V8B, HEF4040BP)

Sorry, falls das alles zu kompliziert gedacht ist. Bin Neuling auf 
diesem Gebiet.

Alex

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Alex B. schrieb:
> SN74F138N

Such mal nach SN74HC138N, was willst du mit der F-Serie
SN74LVC1G139 würde auch passen.

> Also: Den Decoder mittels 2 Pins per MC ansteuern und damit direkt eine
> der 4 LEDs schalten (ohne Transistor).

Wenn der Strom den du fließen lassen willst, nicht die Spezifikation der 
Ausgangsstufe überschreitet, ist das ok. Vorwiderstand nicht vergessen.

von MaWin (Gast)


Lesenswert?

Alex B. schrieb:
> Da ich nicht 4 Pins dafür verbraten will, würde ich gerne einen
> Binärdecoder verwenden

Da brauchst du 2 pins, und einen dritten wenn du die LEDs auch 
ausschalten willst.
An 2 Pins kannst du aber auch ohne IC mit nur 2 Transistoren (und 6 
Widerständen) 4 LEDs anschliessen von denen 1 leuchtet.
An 3 Pins passen 6 LED ohne Transistoren.
Complementary Led Driving.

Schaltplan left as an excercise to the reader.

von Frank O. (fop)


Lesenswert?

74F138 würde funktionieren. Wobei das F damals für "fast" stand. Das 
Ding ist also nicht der Brüller beim Stromsparen. Aber dafür in Sachen 
ESD nicht allzu pinzig.
Du könntest damit mit 2 Pins immer genau eine von 4 Leds leuchten 
lassen.

Wenn Du die 2 Pins mit Reset und Clock eines Zählers verbindest, wäre 
sogar noch mehr möglich. Nur falls mal zwischen Status 1 und 2 ein 1a 
reingepopelt werden muss. Die Ansteuerung verlangt halt einmalig ein 
wenig Überlegen.
ca. 410us, um mit 10 MHz alle 12 Leds anzuwerfen, klingt jetzt auch 
nicht tragisch.

von Einer (Gast)


Lesenswert?

Alex B. schrieb:
> Den Decoder mittels 2 Pins per MC ansteuern und damit direkt eine
> der 4 LEDs schalten (ohne Transistor).

Da Leuchtet dann aber mindestens eine.
Bei der Lösung mit Zähler ist das beliebig.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Nimm WS2812-LEDs, da brauchst du nur 3 Leitungen (Plus, Masse, Daten) 
für nahezu beliebig viele LEDs, und die auch noch in Bunt!

von Max D. (max_d)


Lesenswert?

Charlieplexing macht mit 3 Leitungen 6 LEDs.
Wenn man nur statisch einen Zustand (=1 LED) anzeigen will muss man auch 
nicht multiplexen (und braucht so keine ISR oder ähnliche Konstrukte).

von Peter D. (peda)


Lesenswert?

Mit Schieberegister 74HC164 kannst Du über 2 Leitungen bis zu 8 LEDs 
ansteuern.

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


Lesenswert?

Alex B. schrieb:
> Ich möchte mit einem Microcontroller 4 LEDs ansteuern um damit den
> aktuellen Modus meines Programms (1-4) anzuzeigen.
Ich würde da nur 1 LED anschließen und die passend zum Modus in der 
Hauptschleife blinken lassen:
Modus 1 = _____#_____#_____#_____#____#____
Modus 2 = _____#_#_____#_#_____#_#____#_#__
Modus 3 = _____#_#_#_____#_#_#_____#_#_#___
Modus 4 = _____#_#_#_#_____#_#_#_#_____#_#_
Oder auch:
Modus 1 = _____#_____#_____#_____#___
Modus 2 = _____#_#_____#_#_____#_#___
Modus 3 = _____###_____###_____###___
Modus 4 = _____###_###____###_###____
Oder auch sonstwas...

Dann kann man das sehr leicht erweitern und um Fehlerfall sogar hektisch 
"SOS" blinken und sieht man auch gleich, ob das Programm noch irgendwie 
läuft oder irgendwie "holpert und stolpert".
Und wenn mans ganz ausgefuchst macht, dann kann man über diese LED sogar 
ein serielles Protokoll ausgeben und mit einem Fototransistor in ein 
Terminal oder einen Logicanalyzer einlesen... ;-)

: Bearbeitet durch Moderator
von lulu (Gast)


Lesenswert?

Mit 74hct4040 könnte man im aktiven Programmteil so lange durchtackern, 
bis die richtige low current LED leuchtet. MR halt vielleicht HW mäßig 
verzögert steuern. Auf dem Weg zur richtigen LED stört doch ein kurzes 
Aufleuchten der anderen nicht? Dann reicht ein µC Pin.

von Alex B. (albex)


Lesenswert?

Danke für die Ideen. Ich werde den 4040 mal ausprobieren und sehen ob’s 
mir gefällt. Die Complementary Schaltung muss ich auch erstmal 
durchdringen und verstehen. Die Idee mit dem Schieberegister finde ich 
super, weil das einen weiteren Ausbau erleichtert.

Jetzt muss ich noch sehen wo ich die paar ICs zum rumspielen möglichst 
Versandkosten-günstig herbekomme.

Das Kodieren des Modus als Blinksignal passt nicht so ganz. Baue im 
Prinzip nen Joystick mit einen Rotary Encoder drauf. Rechts/Links ist 
jeweils ein Button und der Push schaltet zwischen unterschiedlichen 
Button-Paaren um.

von c-hater (Gast)


Lesenswert?

Alex B. schrieb:

> Ich möchte mit einem Microcontroller 4 LEDs ansteuern um damit den
> aktuellen Modus meines Programms (1-4) anzuzeigen.

Wirklich nur die vier oder soll es auch einen Status "aus" geben? Wenn 
letzteres, reicht ein Binärdecoder mit zwei Eingängen nicht mehr, d.h.: 
du bräuchtest zu Ansteuerung eh' drei Pins. Dann aber brauchst du 
wiederum keinen extra Binärdecoder mehr, dann kann das der µC alleine. 
"Charlieplexing"...

von Harald W. (wilhelms)


Lesenswert?

Alex B. schrieb:

> Den aktuellen Modus meines Programms (1-4) anzuzeigen.

Das ginge auch mit zwei LEDs die binär angesteuert werden.
Du müsstest dann allerdings eine zweistellige Binärzahl im
Kopf in eine Dezimalzahl umrechnen. Wenn Dich das nicht
mathematisch überfordet, wäre das die einfachste Lösung.

von Peter D. (peda)


Lesenswert?

Mit Schieberegister ist auch eine 1-Draht Ansteuerung möglich, kostet 
nur ein RC-Glied von CP nach DS. Ein kuzes Low läßt den Kondensator 
geladen -> 1 schieben, ein langes Low entlädt ihn -> 0 schieben.

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.