Wie steuere ich drei LEDs mit zwei uC-Pins mit nur passiven Komponenten?

8

Ich habe nur 2 (3-Zustands-) Pins an einem Mikrocontroller und muss 3 rote LEDs steuern, uC läuft mit 5V. Ich kann zusätzlich nur passive Komponenten verwenden.

Cano64
quelle
Definieren Sie "Kontrolle". Benötigen Sie alle LEDs gleichzeitig vollständig beleuchtet oder nur eine nach der anderen oder etwas anderes? Warum können Sie nur passive Komponenten verwenden?
Joe Hass
Google "Charlieplexing".
John U
1
@ JohnU: Charlieplexing macht mit weniger als drei Pins nichts Nützliches. Mit zwei Pins erhalten Sie nur zwei LEDs.
Dave Tweed
Mit einem I2C-Port-Expander oder sogar einigen einfachen Schieberegistern können Sie natürlich eine beliebige Anzahl von LEDs steuern. Warum sind diese ausgeschlossen?
Dave Tweed
1
@ DaveTweed - Das googeln ist allerdings ziemlich informativ;)
John U

Antworten:

9

So steuern Sie vier LEDs:

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Um beide LEDs an einem bestimmten Pin zu leuchten, schalten Sie den Pin auf einige hundert Hz um.

Beachten Sie, dass dieses Setup erfordert , dass die Vorwärtsspannung der LEDs als Vcc kleiner / 2.

Beachten Sie auch, dass die Widerstände die ganze Zeit Strom verbrauchen, nicht nur, wenn die LEDs leuchten.

Dave Tweed
quelle
Wenn R1 nur an D1 und R2 nur an D2 usw. angeschlossen ist, wird die Stromaufnahme im Ruhezustand bei ausgeschalteter LED erheblich reduziert, vorausgesetzt, die LED-Spannungsabfälle verbinden sich mit VDD.
Supercat
@supercat: Ja, aber das trifft selten auf die vom OP angegebenen roten LEDs zu. Siehe Wills Diagramm .
Dave Tweed
Fügen Sie eine zusätzliche LED zwischen den Knoten R1-D1 und D2-D2 hinzu und verstecken Sie sie irgendwo.
Supercat
@supercat: Siehe Spehros Antwort .
Dave Tweed
6

Diese Lösung hängt von der Tatsache ab, dass 5 V die drei LEDs nicht in Reihe leuchten. Bei Bedarf können Sie eine Siliziumdiode in Reihe mit einer oder mehreren LEDs schalten, um den gesamten Durchlassspannungsabfall zu erhöhen.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

  • Wenn sowohl Pin A als auch Pin B dreifach sind, sind alle LEDs aus.
  • Wenn Pin A niedrig angesteuert wird, ist D1 eingeschaltet.
  • Wenn Pin A hoch und Pin B niedrig angesteuert wird, ist D2 eingeschaltet.
  • Wenn Pin B hoch angesteuert wird, ist D3 eingeschaltet.

Damit mehr als eine LED gleichzeitig leuchtet, müssen Sie multiplexen: Schalten Sie sie nacheinander schnell genug ein, damit sie kontinuierlich leuchten.

Dave Tweed
quelle
Gibt es einen Vorteil gegenüber der Methode von Michael Karas?
Wird
Dieser arbeitet mit einem geringeren Durchlassspannungsabfall an den LEDs. Seine Lösung besteht nur aus zwei Kopien der Ein-Pin / Zwei-LED-Version.
Dave Tweed
Ahh also, wenn Sie 2 Widerstände haben, fallen Sie etwas Spannung durch 1 und einige in den anderen und müssen weniger in Widerständen verbrennen?
Wird
1
@ Will: Ähm, nein. Bei diesem Schema leuchtet jeweils nur eine LED, und jeweils nur ein Widerstand senkt die Spannung. Wenn beide Pins dreifach sind, fließt überhaupt kein Strom, da er durch den kumulativen Vorwärtsabfall der drei in Reihe geschalteten LEDs blockiert wird.
Dave Tweed
Wenn Sie Pin b tristieren, können Sie mit Ihrem Schema 2 LEDs ansteuern, oder?
Wird
3

Mit zwei Pins können Sie tatsächlich vier LEDs steuern. Um zwei LEDs zu steuern, setzen Sie einen Widerstand vom MCU-Pin ein, um den Strom zu begrenzen, und binden Sie ihn an zwei LEDs - die Kathode einer LED und die Anode der anderen LED. Das freie Anodenende der ersten LED wird über einen anderen Widerstand mit dem VCC der MCU-Karte verbunden. Das freie Kathodenende der zweiten LED wird (über einen anderen Widerstand) mit GND verbunden. Jetzt leuchten die LEDs abwechselnd, wenn der MCU-Pin hoch oder niedrig eingestellt ist. Verdrahten Sie den zweiten MCU-Pin auf die gleiche Weise und Sie haben jetzt die Kontrolle über insgesamt vier LEDs.

Um den Anschein einer unabhängigen Steuerung jeder LED im Paar von einem der Port-Pins zu erwecken, ist ein wenig Software-Arbeit wie folgt erforderlich.

Wenn LED1 die Anode zum Port-Pin und LED2 die Kathode zum Port-Pin ist, gehen Sie wie folgt vor, um die vier Zustände für zwei LEDs festzulegen.

LED2  LED1    Action
OFF   OFF     Set the port pin to tristate level.
OFF   ON      Set the port pin low.
ON    OFF     Set the port pin high.
ON    ON      Toggle the port pin high and low at a frequency over about 120 Hz. 

Wiederholen Sie die gleichen Aktionen für den anderen Port-Pin, und Sie sehen aus, als hätten Sie vier unabhängige LEDs an zwei Port-Pins.

Dieses Schema eignet sich gut für LEDs mit einem Durchlassspannungsabfall, der über der Hälfte des VCC-Pegels liegt. Rote LEDs mit 2,1 VF funktionieren nicht so gut, wenn der VCC beispielsweise 5 V beträgt. Auf der anderen Seite funktioniert eine grüne LED mit 2,5 V VF hervorragend auf einem System mit einer VCC von 3,3 V.

Michael Karas
quelle
3
Ist das aber totale Kontrolle? Wie schaltest du sie alle ein oder aus?
Stanri
Eine LED leuchtet, wenn Strom aus dem Pin fließt, die andere LED leuchtet, wenn Strom in den Pin fließt. Schalten Sie beide aus, indem Sie den Port-Pin nur in drei Zuständen ausführen. Es fließt kein Strom hinein oder heraus, also keine LEDs. Der Strom kann nicht gleichzeitig ein- und ausgehen, sodass nicht beide LEDs genau im selben Moment leuchten können. Aber Sie können den Effekt erzeugen, dass beide eingeschaltet sind, indem Sie den Stift hoch, dann niedrig, dann hoch, dann niedrig, dann hoch, dann niedrig usw. fahren
Will
2

2 LEDs ein Stift, schlecht gezeichnet

Auf diese Weise fließt kein Strom, wenn sie ausgeschaltet sind, und Sie können so viel / wenig Durchlassspannung ansteuern, wie Sie benötigen

Wille
quelle
Dies entspricht der Lösung von Michael Karas. Es ist erforderlich, dass V_f der LEDs größer als Vcc / 2 ist, sonst können Sie sie nicht vollständig ausschalten.
Dave Tweed
+1 für die Mühe, die Lösung von Michael Karas vorzustellen, die die Schaltpläne von Dave Tweed CircuitLabs kopiert und mit MS Paint (oder ähnlichem) Freihandlinien darin zeichnet .
Ricardo
Und es war in Farbe :)
Will
1
Ah, ich verstehe, wovon du jetzt sprichst, Dave. Der Strom fließt r1 d1 d2 r2 und es muss nichts in den Pin fließen
Will
2

EDN hat einige verwandte Ideen für Design veröffentlicht hier

Hier ist einer von ihnen: -

Geben Sie hier die Bildbeschreibung ein

Für typische Werte mit D1 eine gelbe LED (2,2 V ein), D2 eine rote LED (1,9 V ein) und Aus-Spannungen von 1,2 V bzw. 1,1 V und Einschaltströmen von jeweils 8 mA ist Vcc = 5,0 V das Optimum Werte sind

R1 = 300 Ohm R2 = 330 Ohm R3 = 1,2 K Ohm

Der Ruhestrom beträgt 2,7 mA. Damit beide LEDs leuchten, schalten Sie den Ausgangspin auf 100 Hz oder höher um.

Ich habe den Excel-Solver im Originalartikel verwendet. Der Code ist möglicherweise noch bei EDN erhältlich.

Der zusätzliche Freiheitsgrad, den der Widerstand R3 bietet, kann die Einschränkungen der Schaltkreise von Dave Tweed und Michael Karas vermeiden. Für den speziellen Fall von zwei roten LEDs, die mit einer 5-V-Versorgung betrieben werden, ist der Schaltkreis von Dave Tweed wahrscheinlich akzeptabel. Überprüfen Sie jedoch den Vf Vorsichtig ist es für einige rote LEDs nicht in Ordnung und für andere möglicherweise marginal, wenn der Anschlussstift nicht ganz nach unten oder oben gezogen wird.

Spehro Pefhany
quelle
Hinweis: OP fordert eine vollständig passive Schaltung an. Wenn der MCU-Pin hoch-Z ist, wird der Wechselrichter in einen linearen Betriebsmodus gezwungen, der im Allgemeinen Energie verschwendet.
Dave Tweed
@ DaveTweed Ja, in meinem ursprünglichen Beitrag wurde ein ST-Wechselrichter angegeben, daher habe ich ihn bearbeitet, um dies zu verdeutlichen. Es ist nicht alles passiv, aber es ist einfach und null Iq. Die zweite Schaltung ist höher Iq, aber rein passiv. Danke für die Kommentare.
Spehro Pefhany
Ich sehe nicht, wie ein Schmitt-Trigger-Eingang hilft; Stattdessen würde ich denken, dass dies die Schaltung zum Schwingen zwingen würde. Zugegeben, die LEDs sind aus, aber der Wechselrichter selbst verbraucht viel Strom.
Dave Tweed
Nun, da es nicht die ursprüngliche Anforderung erfüllt, keine aktiven Teile zu haben, werde ich es löschen, aber ich glaube, es funktioniert in Ordnung.
Spehro Pefhany
+1 für R3 könnte ein nützlicher Trick sein. Und eine billige dazu
Will