Steuern Sie eine zweifarbige LED mit nur einem Pin

9

Ist es möglich, eine zweifarbige LED mit nur einem Pin eines Mikrocontrollers zu steuern?

Der Instinkt sagt NEIN, weil ein Ende geerdet sein kann und das andere zum Stift des Mikros führt, sodass Sie es ein- oder ausschalten können, aber seine Farbe nicht ändern können.

Aber vielleicht hat jemand eine bessere Idee?

Thomas O.
quelle
1
Mit einem Stift eines Mikros können Sie fast alles machen. Genauer bitte?
Nick T

Antworten:

6

Sie können dies mit einer zweifarbigen LED tun, bei der die beiden LEDs hintereinander angeordnet sind, wenn Sie einen LED-Anschluss an eine Zwischenspannung anschließen, z. B. 2,5 V bei einem 5-V-Design, und die andere Seite über einen geeigneten Widerstand an die MCU anschließen ( Ich habe 560R verwendet).

Dann gibt eine niedrige Ausgabe eine Farbe, eine hohe die andere und der Tri-State lässt die LED aus. Mit der Pulsweitenmodulation können Sie die Helligkeit steuern (Ausgang zwischen aktivem und Tri-State umschalten) oder die Farben mischen (Schaltausgang niedrig nach hoch).

Sie können die Zwischenspannung einstellen, um auch unterschiedliche LED-Durchlassspannungen auszugleichen.

Ich habe einen Operationsverstärker LM2904 verwendet, um die Zwischenspannung bereitzustellen - er funktioniert mit einer Versorgungsspannung von bis zu 5 V. Es gibt viele andere Geräte, die mit niedrigeren Spannungen betrieben werden können und dennoch genügend Strom aufnehmen und liefern, um die LEDs anzusteuern.

John Gallant
quelle
3

Wenn Sie keinen Aus-Zustand benötigen und Ihr Voh ausreichend groß ist (Bearbeiten: um die Vorwärtsvorspannung der LED zu überwinden), können Sie möglicherweise ein Ende der LED an eine Mid-Rail-Spannung anschließen. Die Ausgabe einer 1 erhält eine Farbe, die Ausgabe einer 0 die andere Farbe. Um es auszuschalten ... ha, viel Glück. Vielleicht könnten Sie versuchen, dort einen Kondensator einzubauen und dann den Ausgang mit einer PWM anzusteuern, die die Kappe bis zur Mitte der Schiene glättet?

ajs410
quelle
7
Ich dachte so ziemlich das Gleiche, vielleicht könnte der Aus-Zustand durch Drehen des Ausgangsstifts des Mikros erreicht werden.
Tcrosley
1
Ein großartiger Vorschlag ... Wenn Sie den Pin dreimal angeben, sollte er ohne die ausgefallene PWM ausgeschaltet werden. Sie müssen jedoch vorsichtig sein, wenn Sie den Eingang schweben lassen, wahrscheinlich einen Pulldown benötigen (NICHT Teiler, lassen Sie den Eingangspin nicht die Mittelschienenspannungen sehen!)
ajs410
1
Sie können einen hochohmigen (470k) Widerstand verwenden, der hoch oder niedrig gezogen wird. Die LED ist vorgespannt oder in der einen oder anderen Farbe, aber der Stromfluss ist so gering, dass Sie die LED nicht wie eingeschaltet sehen.
Akohlsmith
5
@ ajs410 - Ich denke, MCUs sind viel intelligenter gestaltet als ein dummer Logikchip. Bei einem durchschnittlichen 8-Bit-Mikro kann die überwiegende Mehrheit der Pins als analoge Eingänge verwendet werden (ohne sie explizit als solche zu konfigurieren), sodass keine negativen Auswirkungen (Gate-Oszillation, übermäßige Stromaufnahme) auftreten sollten, solange die Spannung innerhalb bleibt GND und VDD.
Nick T
2
Einer der (möglicherweise signifikanten) Nachteile dieser Topologie ist, dass Sie immer eine ziemlich signifikante Stromaufnahme haben, die (ohne Modifikation) für alle langfristigen batteriebetriebenen Anwendungen nix wird.
Nick T
0

Sie können Charlieplex es

Tom
quelle
3
Dies erfordert jedoch mindestens zwei Stifte. OP bat um eine Lösung mit einem Stift.
Tcrosley
In einigen Fällen ist es sogar möglich, Charlieplexing zu erweitern, um N * (N + 1) -LEDs mit N-Pins zu versehen, wenn die Versorgungsspannung weniger als das Doppelte des LED-Spannungsabfalls beträgt und die richtige Kombination von LED-Spannungsabfällen verfügbar ist. Nehmen wir der Einfachheit halber an, dass das Ziel darin besteht, 12 LEDs mit drei Pins zu steuern. Sechs LEDs haben einen Abfall von 2,5 Volt und sechs einen Abfall von 1,7 Volt und die Versorgungsspannung beträgt 3,0 Volt. Ziel sind 5 mA für die 2,5-Volt-Dioden und 6,5 mA für die 1,7-Volt-Dioden. Schalten Sie mit jedem Ausgang einen 100-Ohm-Widerstand in Reihe. Drei der 2,5-Volt-LEDs verbinden die Ausgänge mit VDD, drei mit VSS ...
Supercat
... und die 1,7-Volt-LEDs verbinden die Ausgänge in "normaler" Charlieplex-Form miteinander. Um eine 1,7-Volt-LED einzuschalten, treiben Sie einen Ausgang hoch und einen niedrig an. Die Widerstände fallen um 0,65 Volt ab, so dass 1,7 Volt für die LED und eine unzureichende Spannung für die 2,5-Volt-LED übrig bleiben. Um eine 2,5-Volt-LED einzuschalten, treiben Sie einen Ausgang hoch oder niedrig und keinen der anderen an. Dann hat eine 2,5-Volt-LED genug Strom, um zu leuchten.
Supercat
Man könnte bei Bedarf mehr Widerstände oder Siliziumdioden hinzufügen, um mit verschiedenen Spannungsszenarien fertig zu werden, aber das würde eine gewisse Komplexität hinzufügen. @tcrosley: Das Obige verallgemeinert die Verwendung eines Pins zur Steuerung von zwei LEDs.
Supercat