Ich versuche, ein Stimmungslichtsystem mit 4 RGB-LEDs zu entwerfen, das von einer externen 9-V-Quelle und einem Arduino zur Verarbeitung gespeist wird.
Stückliste:
Wie Sie sehen können, habe ich Folgendes versucht:
Was ich erwartet hatte, war, dass der PWM-Ausgang von Arduino die Emitterspannung zwischen 0 und 9 V regulieren würde, wodurch ich die LED mit meinen Töpfen dimmen könnte.
Was ich stattdessen habe, ist, dass die Spannung 0,7 V unter dem liegt, was die Basis von Arduino empfängt, und die an den Kollektor gelieferte Spannung wird ignoriert. Tatsächlich kann ich sogar die 9-V-Batterie abklemmen, und die LEDs würden immer noch leuchten.
Aus einer vorherigen Frage glaube ich, dass dies ein Emitter-Follower-Verhalten ist?
Gibt es eine Möglichkeit, dies neu zu verdrahten und das erwartete Verhalten zu erhalten? Oder muss ich andere Teile besorgen. Ich habe die falschen LEDs bekommen (gemeinsame Kathode statt Anode), aber der Laden ist erst in ein paar Tagen geöffnet, um einen Ersatz zu bekommen, also versuche ich, mit dem auszukommen, was ich habe.
Bitte ignorieren Sie die fehlenden Widerstände zwischen Emitter und LED. Ich habe sie der Einfachheit halber weggelassen.
Die Dinge bezüglich eines High-Side-Schaltens einer Spannung, die höher als die Steuerspannung ist, sind nicht so einfach, wie sie scheinen.
Nehmen Sie zum Beispiel die folgende Schaltung, die mit einem Arduino I/O-Pin gesteuert wird
Wenn der E / A-Pin LOW ist, ist die Spannung an der Basis 0, das bedeutet, dass die Vbe 9 V beträgt und da sie> 0,7 V beträgt, ist der Transistor eingeschaltet.
Wenn der I/O-Pin HIGH ist, beträgt die Spannung an der Basis 5 V, was bedeutet, dass Vbe 4 V beträgt und da es > 0,7 V ist, ist der Transistor ebenfalls eingeschaltet.
Im Grunde kann diese Konfiguration also nicht als Schalter funktionieren, da der Transistor immer eingeschaltet ist.
Damit eine Schaltung wie die obige ordnungsgemäß funktioniert, müssen Sie einen Pegelübersetzer hinzufügen, der die Basis tatsächlich mit 0 V und 9 V (oder was auch immer der Kollektorspannungspegel ist) ansteuert, eine Schaltung wie
Eine Alternative einer funktionierenden High-Side-Schaltung mit einem einzigen Transistor ist ein Emitterfolger
Das Problem ist, dass in diesem Fall der Emitter der Basisspannung folgt, wenn der Transistor eingeschaltet ist, sodass Sie bei einer Steuerspannung von 0 und 5 V einen Ausgang von 0 und 4,3 V erhalten, unabhängig von der an den Kollektor angeschlossenen Spannung (natürlich innerhalb der Transistorspezifikationen). möglicherweise nicht für Ihre spezifische Anwendung geeignet.
Eine andere Alternative ist die Verwendung eines Geräts wie ULN2003/2803, das jedoch für High-Side-Switching vorgesehen ist. Ein solches Gerät ist UDN2981 , das 8 Source-Treiber wie die folgenden hat und als High-Side-Schalter verwendet werden kann, der von einer TTL-Level-Logik gesteuert wird.
Die schnellste Lösung besteht darin, PNP-Transistoren für das "High-Side" -Schalten zu verwenden und Ihr PWM-Timing zu invertieren. Ich habe für diese Situationen eine Tüte mit 50 oder 100 2N3904 (NPN) und 2N3906 (PNP).
Hier finden Sie eine gute Erklärung zum Schalten von 9 V mit einem NPN-Transistor und einem Arduino
Sie können versuchen, eine geteilte Versorgung zu verwenden. Entfernen Sie die Jumper von den LEDs nach Masse. Nehmen Sie eine zweite 9-V-Batterie und verbinden Sie den + Anschluss mit Ihrer Systemmasse und den - Anschluss mit den gemeinsamen LEDs. Dies bildet eine Plus- und Minus-9-V-Versorgung und lässt die LEDs Strom von "unter 0 V" ziehen. Bewegen Sie Ihre Strombegrenzungswiderstände auf die Kollektorseite der NPNs. Ich denke, das wird funktionieren, und wenn nicht, sollte nichts schaden.
Ignacio Vazquez-Abrams
Markus
Ignacio Vazquez-Abrams
PeterJ
Markus
Markus
Ignacio Vazquez-Abrams
PeterJ
Markus
Ignacio Vazquez-Abrams
Markus
Olin Lathrop