Ansteuerung von zwei LEDs mit einem digitalen Ausgang

Ich habe eine zweifarbige RG-LED, die so aussieht:

RG-LED.

Ich habe kein Datenblatt dazu. Daran befinden sich drei Kabel: Eines ist die Kathode jeder Farbe (üblicher Kathodentyp) und die anderen beiden sind die Anoden jeder Farbe. Die Durchlassspannung jeder LED beträgt 24 V und der Durchlassstrom 10 mA.

Ich möchte seine Farbe ändern, indem ich EINEN digitalen Ausgang eines Arduino ändere. Ich meine, wenn der digitale Ausgang niedrig ist, leuchtet die grüne LED und die rote LED ist aus. Und dann, wenn der Ausgang hoch ist, sollte die grüne LED aus sein, während die rote LED an ist. Der digitale Ausgangspegel beträgt 3 V DC im „High“-Zustand und „0“ V DC im „Low“-Zustand.

Wie kann ich also steuern, welche LED leuchtet, während ich einen Digitalausgang ändere?

Was denkst du würde das lösen? Dies kann sehr einfach mit Boolescher Algebra gelöst werden.
Nun, Sie könnten es so verdrahten, dass es immer grün ist, wenn es Strom hat, und es dann unter der Kontrolle des einen Arduino-Ausgangs auf gelb ändern, aber das ist wahrscheinlich nicht das, was Sie wollten. Kurz gesagt, mit nur einem Ausgang kann Ihnen hier nicht einmal Charlieplexing helfen.
@GlenYates eine gute Alternative, aber wie die Antwort zeigt, ist dies mit einer einzigen Ausgabe möglich.

Antworten (2)

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Abbildung 1. High-Side-Treiber und Inverter.

Wie es funktioniert:

  • Wenn GPIO niedrig ist, dann ist Q1 aus und Q2 ist aus. Die Basis von Q3 findet einen Weg zur Erde durch R1 und D1 und schaltet die Beleuchtung von D2 ein.
  • Wenn GPIO hoch ist, ist Q1 eingeschaltet, Q2 ist eingeschaltet und D1 leuchtet. Da der Kollektor von Q2 hochgezogen wird, fällt der Basisstrom von Q3 auf Null und D2 schaltet ab.
  • Durch die Verwendung von PWM (Pulsweitenmodulation) kann das Licht von einer Farbe in die andere übergehen.

Muss es so kompliziert sein?

Geben Sie hier die Bildbeschreibung ein

Abbildung 2. Ausfall des High-Side-Treibers .

Ja. Ohne den NPN-Transistor von Abbildung 1 gibt es zwei Probleme:

  1. Es gibt einen Schleichpfad für den Strom durch die Schutzdioden des GPIO des Mikros. Unabhängig davon, ob der Ausgang hochgezogen oder in den Tristate-Zustand versetzt wird, um zu versuchen, den PNP-Transistor von Fig. 2 abzuschalten, kann die Basis über D1 eingeschaltet werden.
  2. Die Hochspannung - in Ihrem Fall 24 V - kann den GPIO beschädigen.

Opto-Isolator-Option:

Geben Sie hier die Bildbeschreibung ein

Abbildung 3. Ein Paar Optokoppler vereinfacht die Aufgabe weiter und kann die 24-V-Schaltung vollständig vom Mikro trennen.

  • Wenn der GPIO niedrig ist, wird der obere Opto-Isolator eingeschaltet.
  • Wenn der GPIO hoch ist, wird der untere eingeschaltet.

Die ganz einfache Möglichkeit:

Die LED-Vorwiderstände sind gut sichtbar in Zuleitungen der Lampe eingeschrumpft. Wenn Sie bereit sind, diese zu ersetzen, wird die Schaltung trivial.

Geben Sie hier die Bildbeschreibung ein

Abbildung 5. Direkte Ansteuerung der LEDs.

Das Einstellen von R1 und R2 auf 56 Ω sollte in Ordnung sein.

Wenn der Ausgang dreistufig ist (als Eingang verdrahtet oder durch Programmsteuerung getrennt), fließt ein Strom durch R1, L1, R2, L2 und beide LEDs leuchten schwach. Bei einem 3,3-V-Gerät wäre die Spannung nicht hoch genug, um beide LEDs deutlich zu beleuchten, sodass sie dunkel erscheinen würden.

Sieht so aus, als gäbe es nur einen Low-Side-Widerstand
Sicher. Sieht so aus, als könnte es einen Pull-up zwischen q1 und q2 gebrauchen.
Ich habe die Klimmzüge schon einmal gesehen, aber nie das Risiko ohne den Klimmzug an der Basis verstanden. Können Sie erklären.
@Transistor Ohne ihn gibt es keinen Gleichstrompfad, um Basis und Emitter vollständig zu verbinden (es sei denn, Sie möchten den PN-Übergang als Gleichstrompfad bezeichnen). Es gibt einen Ladungsspeicher, erinnern Sie sich? Außerdem dient es aufgrund dieser Ladungsspeicherung auch der Geschwindigkeit. Und ansonsten ist es hochohmig und kann durch Dinge wie "Berühren" beeinträchtigt werden. Siehe: Warum Basis des BJT-Schalters ziehen? , für die Perspektive eines anderen. Ich benutze sie. Sie sind billig und effektiv.
Ich habe einen 18k Pull-up hinzugefügt. Alle glücklich? Danke für die Zeit, Jungs.
@Transistor Was ist mit Q 3 Und Q 1 ? Und, nun ja, jeder Knoten sollte sowohl einen Pulldown als auch einen Pullup haben. Und kann auch BAV99-Diodenschutz an den Basen und vielleicht auch Kollektoren hinzufügen. ;)
Hallo @jonk. Meine Opto-Isolator-Lösung sieht immer besser aus! Überbrückt Q2 die Basis von Q3 nicht ausreichend? (In Irland ist Licht aus.)
@Transistor Q 2 ist ein aktiver Zug, also wahrscheinlich nicht. Ich neckte mich hauptsächlich. Ich würde einen hinzufügen Q 1 , weil Mikrocontroller-Pins als Eingänge beginnen, bevor die Software sie neu konfigurieren kann. (Ah. Mein Heimatland! Familienname O'Quirivan!)
@jonk Q3 braucht keinen. Es wird entweder durch Q2 stark nach oben gezogen oder über die LED niedrig. Es schwebt zu keinem Zeitpunkt. Q1, na ja, es sei denn, der Arduino ist ausgeschaltet, während die 24-V-Versorgung eingeschaltet ist, in High-Z oder getrennt, sicher.
@Passant Genau wie ich geschrieben habe. Überhaupt keine Meinungsverschiedenheiten.
Wäre Q3 durch die grüne LED nicht eigentlich immer leicht an? Ich habe es simuliert (r1 und r2 sollten ungefähr 2 kΩ betragen) und die grüne LED + der Widerstand haben 3,6 V und 1,3 mA darüber, wenn der GPIO niedrig ist. Das ist also wirklich gelb getöntes Rot/Rosa und Grün.
Ich würde mit der Opto-Isolator-Lösung gehen. Schön und sauber. +1 dazu.
Dies könnte auch mit einem H-Brücken-Treiberchip erfolgen, der Mosfets verwendet.
Hallo. Im ersten Schema verwenden Sie 1 NPN- und 2 PNP-Transistoren. Warum das? Was sind die Vorteile?
@user1584421: Siehe Artikel GPIO-High-Side-Treiberfehler . Lass mich wissen, ob das hilft.

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstanden habe, aber wenn ja, dann ist die einfachste Antwort, ein Not-Gate zu verwenden.

Nehmen Sie den Ausgang vom Arduino-Pin, tippen Sie mit einem Not-Gate auf den Ausgang und verbinden Sie dann die beiden LEDs.

Wenn der Ausgang hoch ist, leuchtet die direkt mit dem Ausgang verbundene LED, während die andere nicht leuchtet. Wenn der Ausgang niedrig ist, leuchtet die mit dem Nicht-Gate verbundene LED, während die direkt mit dem Ausgang verbundene LED nicht leuchtet.

Beifall!

Dies würde zwar funktionieren, scheint jedoch aufgrund der beteiligten Spannungen das Gate und 4 Transistoren, einen NPN-Treiber für einen PNP-Transistor, zu erfordern.
@Passant, stimmt. Anstatt jedoch Transistoren direkt zu verwenden, würde ich empfehlen, sie in Form eines Halbleiterrelais zu verwenden.