Arduino, NPN und gemeinsame Kathoden-RGBs

Ich versuche, ein Stimmungslichtsystem mit 4 RGB-LEDs zu entwerfen, das von einer externen 9-V-Quelle und einem Arduino zur Verarbeitung gespeist wird.

Link zur Fritzing-Datei

Geben Sie hier die Bildbeschreibung ein

Stückliste:

Wie Sie sehen können, habe ich Folgendes versucht:

  • Verbinden Sie die gemeinsame Kathode jeder LED mit Masse
  • 9 V an jedem (R)(G)(B)-Kollektor
  • Arduino PWM-Ausgang zu jeder (R)(G)(B)-Basis
  • Emitter zu jeder (R)(G)(B)-Anode

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.

Warum treiben Sie die LEDs aus der 9-V-Versorgung?
Nun, erstens, um Arduino-Pins zu sparen, und zweitens und wichtiger, um zu vermeiden, dass der Arduino durch zu viel Leistung geröstet wird. Ich fange mit 4 LEDs an, werde aber wahrscheinlich mehr hinzufügen.
Sie könnten stattdessen in Betracht ziehen, von der Stromschiene des Arduino zu ziehen. Die Begrenzung jeder LED-Komponente auf 5 mA lässt Platz für eine anständige Anzahl von LEDs. Obwohl das das CC/CA-Problem immer noch nicht lösen wird.
Wenn ich auf diesen Link klicke, erhalte ich "Diese Datei kostenlos mit Tiny DM Manager (exe app) herunterladen", was ich nicht installieren möchte. Vielleicht posten Sie besser die Fritzing-Schaltplanansicht, sie sollte viel klarer sein als die Steckbrettansicht.
Danke Ignacio, aber irgendwelche Ideen zur tatsächlichen Lösung des genannten Problems? Ich verstehe nicht, warum ich die LEDs auf 5 mA begrenzen sollte, wenn ihr kontinuierlicher Durchlassstrom 20 mA beträgt.
Tut mir leid, Peter, ich habe gerade das erste kostenlose Hosting gefunden, das ich finden konnte. Oben war ein Link ohne EXE-Installer, als ich ihn sah? Es heißt "Download: LED Lamp.fzz" und es ist ein direkter Download. Die schematische Ansicht ist ein absolutes Chaos :(
Die einzige wirkliche Möglichkeit, dies zu beheben, besteht darin, die Schaltung neu zu strukturieren. Eine Verringerung des Stroms erhöht die Lebensdauer der Komponenten, und 20-mA-LEDs sind bei 5 mA immer noch gut sichtbar.
@Marko, ahh ja, ich sehe oben den direkten Download-Button. Ich hatte nach unten gescrollt, um zu sehen, was sich sonst noch auf der Seite befand, auf der ich den EXE-Download-Manager-Button sah.
@IgnacioVazquez-Abrams, ich bin sehr zufrieden mit der Neugestaltung der Schaltung, habe jedoch nicht vor, den Arduino als Stromschiene zu verwenden, damit ich ihn in Zukunft nicht erneut neu gestalten muss, wenn ich mich für 10-W-LEDs entscheide Weihnachtslichter machen ;)
Du musst. Sie werden diese Transistoren zerstören. Wie auch immer, ULN2803A.
@IgnacioVazquez-Abrams, natürlich :) Jetzt, da ich sie sowieso durch eine PNP-Version ersetzen werde, kann ich genauso gut die von dir erwähnten Big Daddy bekommen.
"Wie Sie sehen können, habe ich versucht, Folgendes zu tun ..." Nein, wir können es nicht sehen, da Sie keinen Schaltplan bereitgestellt haben. Es ist lächerlich, von Leuten zu erwarten, insbesondere von denen, von denen Sie um kostenlose Hilfe bitten, dass sie dieses dumme Diagramm entschlüsseln, um die Schaltung zu verstehen. -1

Antworten (2)

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 wirdGeben Sie hier die Bildbeschreibung ein

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 wieGeben Sie hier die Bildbeschreibung ein

Eine Alternative einer funktionierenden High-Side-Schaltung mit einem einzigen Transistor ist ein EmitterfolgerGeben Sie hier die Bildbeschreibung ein

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.Geben Sie hier die Bildbeschreibung ein

Hallo Alexander, danke für deine Antwort. Könnten Sie mit Ihrem ersten Vorschlag (unter Verwendung eines Ebenenübersetzers) ein bisschen mehr Informationen bereitstellen, dh zu verwendende Transistortypen? Danke noch einmal
@Marko Es gibt keine spezifischen Auswahlkriterien für die gezeigte Schaltung, solange die Geräte den Spezifikationen entsprechen. Der NPN-Strom ist sehr niedrig, nur wenige mA. Wenn Sie keinen zur Verfügung haben, können Sie mit 2N2222 arbeiten , was sehr häufig vorkommt. Der PNP-Strom hängt von Ihrer Last ab. Für die von Ihnen beschriebenen LEDs beträgt er 20 mA, sodass er den Spezifikationen jedes von Ihnen ausgewählten PNP entspricht, z. B. 2N3904 . Die Widerstände, ich würde mit etwas wie R1 = 4K7, R2 = 1K, R3 = 10K gehen, aber andere Werte funktionieren auch.

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.

Dank dafür. Der Link, den Sie gepostet haben, war zu meiner früheren Frage, und obwohl ich die erste Antwort zum Laufen gebracht habe, bin ich immer noch hängen geblieben. Ich werde weitermachen und PNP-Transistoren kaufen und es ausprobieren. Kann ich davon ausgehen, dass ich nur die Transistoren ersetzen und den PWM-Code umkehren muss? Alles andere soll funktionieren?
Ja, Ihre Strombegrenzungswiderstände befinden sich bereits zwischen dem Transistor und der LED, was für den PNP korrekt ist. Ich würde experimentieren. Sehen Sie, ob die LEDs ganz ausgehen, wenn das digitale Signal hoch ist und ob die Transistoren warm oder heiß werden. Messen Sie den Spannungsabfall über dem Transistor, wenn Sie sich im AUS-Zustand befinden (Signal hoch). Dies kann bedeuten, dass es nicht wirklich AUS ist und den größten Teil von V über den Transistor abfallen lässt. Wenn der Abfall über dem Transistor und dem Widerstand etwa 5 bis 7 Volt beträgt (abhängig von der Farbe der roten LED), schaltet die Diode ab.