The Transistor Menace - Fragen zu einem Arduino-RGB-LED-Projekt

Ich stöbere jetzt seit ein paar Tagen in diesem Forum und im Internet und was ich für ein einfaches Nebenprojekt hielt, wurde zu einer (für mich) ziemlich komplizierten Angelegenheit.

Ich plane, ein Stimmungslicht zu bauen, das aus 12 gemeinsamen Kathoden-RGB-LEDs besteht, wobei jede Farbe von den PWM-Pins eines Arduino gesteuert wird.

In diesem Diagramm, das vor einiger Zeit hier gepostet wurde, habe ich so ziemlich die Gliederung für alles gefunden, was ich tun möchte:Geben Sie hier die Bildbeschreibung ein

Meine Forschung hat mich so weit gebracht, die grundlegenden Dinge einer benötigten externen 12-V-Stromquelle und die Tatsache zu verstehen, dass ich die LEDs parallel mit entsprechenden Widerständen an jedem verdrahten müsste. Ich bräuchte Hilfe bei der Auswahl der Transistoren und der Widerstände für sie:

Soll ich normale PNP-Transistoren oder einen MOSFET verwenden? Gibt es jeweils besonders empfehlenswerte Versionen? Und welche Widerstände bräuchte ich vor dem Transistor?

Wichtig ist mir, dass man die einzelnen Farben flüssig steuern kann und nicht so viel Hitze entsteht, dass ich ein Waschbecken bräuchte.

Ich würde mich über jede Hilfe freuen,

Gruß Tim

Ich wette, Sie müssen nicht zu wählerisch sein - Sie haben es nicht mit einer Tonne Leistung zu tun, viele "Allzweck" -Transistoren sollten hier gut funktionieren, und Sie könnten dies entweder mit BJTs oder MOSFETs zum Laufen bringen.
Beachten Sie, dass Sie bei Verwendung von 12-V-UND-PNPs Probleme haben werden, sie von einem 5-V-Arduino auszuschalten. Dieses Diagramm scheint für 5 V an den LEDs ausgelegt zu sein.
Welche Wattzahl haben die LEDs? | Warum 12 V - sind sie 12 V-Eingang oder ... " | Teilenummer und / oder Weblink würden haufenweise helfen | Wie pjc50 sagt - Sie können das Gate der Basis eines Transistors, der sich auf der "hohen Seite" befindet, nicht "herunterziehen". die 5-V- oder 3-V-Ausgänge eines Arduino - die Transistoren benötigen zum Ausschalten fast 12 V, die Sie nicht haben high = on und low = off. Oder Sie könnten 3 Optokoppler für die Pegelverschiebung verwenden.

Antworten (2)

Sieht für mich gut aus, außer:

Wenn Ihre 12-V-Versorgung eine Masse mit dem Arduino teilt, wird es Ihnen schwer fallen, die LEDs auszuschalten. Das liegt daran, dass der Arduino entweder 0 V oder 5 V ausgibt, sodass immer noch 7 V die Transistoren ansteuern. (durch die Basiswiderstände, also solltest du nichts in die Luft jagen)

Wenn Sie separate Versorgungen haben, eine 12-V- und eine 5-V-Versorgung, und eine davon isoliert/schwebend ist, können Sie die Pluspunkte wie beim alten Automobilstandard mit positiver Masse miteinander verbinden. Stellen Sie nur sicher, dass Sie genau wissen, bei welcher Spannung die negative Schiene des Arduino endet, da der Programmierer immer noch davon ausgeht, dass dies Masse ist.


Oder Sie könnten den negativen Boden beibehalten, um Verwirrung zu vermeiden, und stattdessen Folgendes tun:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Q1, R1 und R2 bilden einen Pegelumsetzer für Q2, der derselbe ist, den Sie bereits haben:

  • Wenn Q1 ausgeschaltet ist, zieht R1 die Basis von Q2 ganz nach oben auf 12 V und schaltet sie ebenfalls aus.
  • Wenn Q1 eingeschaltet ist, bildet es einen Spannungsteiler zwischen R1 und R2, der Q2 einschaltet.
Warum konnten Sie die LEDs nicht mit einem NPN-Transistor auf der negativen Seite steuern?
Weil sie eine gemeinsame Kathode sind. Wenn sie eine gemeinsame Anode wären, wäre dies der natürliche Weg, dies zu tun. In jedem Fall sind die gemeinsamen Anschlüsse intern mit einem einzelnen Pin verbunden, sodass Sie ihn nicht wirklich ändern können.

Stellen Sie einfach sicher, dass der Transistor genügend Strom liefern kann, um alle LEDs mit Strom zu versorgen. MOSFETs wären wahrscheinlich besser, da an ihnen ein geringerer Spannungsabfall auftritt und sie sich nicht so stark erwärmen, aber beide funktionieren.

Wie AaronD sagte, reichen die 5 V vom Arduino nicht aus, um die PNP-Transistoren (oder MOSFETS) auszuschalten. Sie sind immer eingeschaltet, wenn die Basis mehr als 0,7 V unter dem Emitter liegt und 5 V nicht hoch genug sind. Ich würde normalerweise ein NPN verwenden, um jedes PNP anzusteuern, auf diese Weise kann ich Standard-Logikspannungen verwenden. Außerdem haben Leistungstransistoren tendenziell eine geringere Stromverstärkung als Signaltransistoren, sodass Sie viel Basisstrom benötigen. Es ist besser, dies von einem anderen Transistor versorgen zu lassen.

Schon jetzt ein großes Dankeschön an alle hier, die schnell auf das Problem mit den unterschiedlichen Spannungen hingewiesen haben. Das habe ich nicht bedacht. Aber ich habe gerade festgestellt, dass 5V für jede der RGB-LEDs sowieso ausreichen und ich nur die einzelnen Widerstände anpassen müsste. Dann bräuchte ich nur genug Strom im Gesamtkreis, um 12 * 3 * 0,20 mA = 720 mA zu liefern. Ich weiß, dass das Arduino nicht so viel liefern kann, aber mit einer 5-V-Batterie oder einem Netzteil sollte das oben gezeigte Diagramm in Ordnung sein, oder?
Theoretisch ja. Bedenken Sie jedoch, dass BJTs auch eine endliche Sättigungsspannung haben, ähnlich wie eine andere LED. Schlagen Sie das nach und prüfen Sie, ob Sie noch genügend Headroom für die Stromeinstellungswiderstände haben.
Oder Sie könnten P-Kanal-MOSFETs verwenden. Ähnlich wie PNP-BJTs, aber kein Treiberstrom bei Gleichstrom (im Grunde ein Kondensator) und geringer Widerstand im eingeschalteten Zustand anstelle eines Spannungsabfalls.