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?
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.
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.
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.
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 ) :
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.
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:
Greg d’Eon
Stephan
Cano64