Semaphor mit einem Mikrocontroller-Pin

Ich versuche, ein Semaphor mit zwei LEDs grün und rot zu machen, die von einem Arduino-Pin gesteuert werden. Idee ist, wenn der Pin niedrig ist, leuchtet die rote LED und die grüne LED ist aus, wenn der Pin oben ist, leuchtet die grüne LED und die rote LED ist aus.

Also habe ich die Schaltung mit zwei Transistoren gemacht und in der Simulationssoftware scheint alles in Ordnung zu sein, aber beim Üben leuchtet die rote LED (rechts auf dem Bild) immer noch schwach, wenn die grüne (links) eingeschaltet ist.

Auf Diagrammen können Sie sehen, dass immer noch ein kleiner Strom durch die rote LED fließt, wenn der Pin im oberen Zustand ist.

Gibt es Ideen, wie man mit dieser Strömung umgehen kann?

Geben Sie hier die Bildbeschreibung ein

Hmm. Sind 33 uA zu hoch, um die LED "aus" zu nennen?
Ja, ich habe echte Schaltung, die LED leuchtet immer noch, aber schwach

Antworten (4)

Zwei Worte - Quelle, Senke.

Der Ausgangspin eines Arduino ist in der Lage, Quellen zu liefern (einen Ausgangsstrom zu liefern) sowie zu sinken (einen Strom in den Ausgang und auf Masse zu nehmen). Siehe http://arduino.cc/en/Tutorial/DigitalPins

Sie brauchen keine Transistoren, um die LEDs zu schalten.

Geben Sie hier die Bildbeschreibung ein

Wenn in dieser Schaltung der Ausgang LOW (nahe 0 V) ​​ist, leuchtet die grüne LED, die rote ist AUS. Wenn der Ausgang HIGH ist (nahe 5 V), ist die rote LED EIN, die grüne AUS.

Die Widerstände begrenzen den Sink/Source-Strom auf einen sicheren Wert.

Dasselbe wie bei @MichaelKaras - beide LEDs leuchten teilweise, wenn der Treiberstift Hi-Z ist.
@Dzarda Um aus der in der Antwort angegebenen Referenz zum Konfigurieren des Pins als AUSGANG zu zitieren "Pins, die mit pinMode () als AUSGANG konfiguriert sind, sollen sich in einem niederohmigen Zustand befinden . Dies bedeutet, dass sie eine beträchtliche Menge Strom liefern können an andere Schaltkreise. Atmega-Pins können bis zu 40 mA (Milliampere) Strom an andere Geräte/Schaltkreise liefern (positiven Strom liefern) oder senken (negativen Strom liefern). - Nicht gerade High z!

Der Vollständigkeit halber: Wenn Sie mehr Strom liefern wollten, als Ihre MCU liefern kann, können Sie immer noch zwei Transistoren verwenden, diesmal jedoch einen NPN und einen PNP. NPN arbeitet in diesem Fall als nicht invertierender Schalter, PNP ist invertierend.

Hinweis: Dies funktioniert nur, wenn Ihre Antriebsspannung (MCU-Pin) von 0 bis 5 V reicht. Mit dem ATMega kein Problem.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Sieht so aus, als ob Spannung von den 5 V durch die Basis des zweiten Transistors zum Emittor leckt, was Ihnen ein schwaches Leuchten gibt (ähnlich dem Problem, mit dem ich in diesem Beitrag konfrontiert war ) . Da der Strom vom Arduino ausreicht, um jeweils 1 LED zu betreiben (mit einem Widerstand von ~ 300-470 Ohm), könnten Sie einfach die Schaltung aus meinem Beitrag verwenden, damit dies alles funktioniert. Spart dir einen Transistor :)

BEARBEITEN: Die vollständige Schaltung, die Sie implementieren sollten (Ihr Arduino-Pin geht dorthin, wo IN1 ist, und Sie sollten die 9-V-Quelle durch Ihre 5-V-Quelle oder durch einen anderen Pin des Arduino ersetzen), ist dies (aus diesem Beitrag ) :

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Beachten Sie, dass davon ausgegangen wird, dass LED1 rot und LED2 grün ist - Sie müssten also Ihre Pin-Logik auf dem Arduino invertieren.

LED2 ist in dieser Schaltung immer eingeschaltet (bei gleicher Durchlassspannung)
Danke, ich habe den Spannungsunterschied der LEDs vergessen. Diese Schaltung funktioniert gut, aber eine andere mit Quelle / Senke funktioniert ohne Transistoren!
@geometrikal Deshalb sagt mein HINWEIS "LED1 ist rot und LED2 ist grün" - gemäß dem verlinkten Beitrag lässt das umgekehrte Szenario LED2 tatsächlich immer eingeschaltet
@PhilB. Die Farbe der LED entspricht nicht unbedingt der Durchlassspannung.

Eine gute Möglichkeit, damit umzugehen, besteht darin, die LEDs nicht mehr in den Emitterteil der Schaltung zu stecken. Setzen Sie stattdessen die LEDs im Kollektorteil der Schaltung in Reihe mit den Strombegrenzungswiderständen.

Eine andere zu berücksichtigende Sache ist, dass Sie die LEDs einfach wie folgt anschließen können, wenn der MCU-Pin über eine ausreichende Treiberfähigkeit und einen Spannungshub von 5 V verfügt:

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass bei dreistufiger MCU-PIN beide LEDs mit geringerer Intensität leuchten.
Sollte für das OP kein Problem sein, da sie sagten, dass der MCU-Pin High oder Low sein würde. Der MCU-Pin im INPUT-Modus würde zu dem von Ihnen angegebenen Zustand führen und würde vom Einschalten der MCU an bestehen und bis die Software den Ausgangspin festlegt. Die beide gedimmte Anzeige kann bedeuten, dass die Software nicht ordnungsgemäß ausgeführt wird.