Ansteuern eines 12-V-LED-Streifens mit einem Arduino

Ich habe einen 60-Watt-LED-Streifen, den ich mit einem Arduino (eigentlich dem Genuino Mega 2560) steuern möchte. Ich habe dieses Tutorial gefunden, das Ihnen zeigt, wie man es für einen weißen LED-Streifen macht, aber ich bin mir nicht sicher, ob ich einfach dreimal dieselbe Schaltung anschließen kann oder ob es einen besseren Weg gibt. Außerdem sagte der Webshop, von dem ich Komponenten kaufen wollte, dass einige Teile, insbesondere der BC639, "veraltet" seien, was stattdessen den BC63916 vorschlägt.

Die Schaltung des Artikels:die Schaltung des Artikels

Schema meines (wahrscheinlich sehr schlechten) Versuchs:mein Versuch

Wie Sie vielleicht bemerken, bin ich ziemlich unerfahren und bezweifle, dass mein obiger Ansatz "Einfach alles zusammenschlagen" funktionieren wird. Meine Fragen:

  • Ist es überhaupt schlau, den im Artikel empfohlenen Totempfahltreiber zu verwenden, oder sollte ich bei einer einfacheren Lösung bleiben?
  • Wenn ja, wie kann ich drei dieser Schaltkreise für meinen RGB-Streifen miteinander verbinden (oder wie kann ich meinen Versuch anpassen)?
  • Reichen schließlich die im Artikel genannten Bauteile und Widerstandswerte aus?

"Für die Transistoren erledigen ein BC639 NPN und ein BC640 PNP die Arbeit. R ist 3,3 Ω. RB ist 22 Ω. RGATE ist 4,7 Ω. C ist ein großer 1000-μF-Elektrolyt."

Ich habe noch eine letzte Frage, aber sie ist nicht so wichtig. Ich könnte ein 12-V-Netzteil kaufen, aber das Netzteil meines PCs (mit dem ich den Arduino steuern möchte) kann dies auch liefern. Ist das eine gute Idee oder werde ich mein Netzteil zerstören?

Für einen LED-Streifen sollten Sie die FETs direkt ansteuern (mit einem Widerstand am Gate und möglicherweise einem Pulldown). Versuchen Sie einfach, einen FET mit niedrigerer Gate-Kapazität und niedrigeren Vthres zu finden.

Antworten (3)

Ich habe mir kürzlich einen LED-Treiber erstellt, der dem in Ihrem verlinkten Tutorial sehr ähnlich ist.

  • Ist es überhaupt schlau, den Totempfahlfahrer zu benutzen?

Die Verwendung eines dedizierten MOSFET-Treibers ist wahrscheinlich wirtschaftlicher und wohl eine rationalere und / oder professionellere Lösung, aber die Totempfahl-Lösung kann mit Jellybean-Teilen erreicht werden, und AFAIU, daran ist per se nichts auszusetzen.

Solange Sie die Komponenten vernünftig abstimmen, erhalten Sie einen sehr schnellen und leistungsstarken PWM-Treiber.

  • Wie kann ich drei dieser Schaltungen miteinander verbinden?

Parallel, genau wie Sie gezeigt haben.

  • sind die Komponenten [...] ausreichend

22 Ω für den Basiswiderstand erscheinen mir etwas klein. Ich habe einen Basiswiderstand von ~300 Ω verwendet, der einen Basisstrom (und Mikrocontroller-Ausgangsstrom) von etwa 15 mA liefern sollte, was gut innerhalb der Spezifikation des von mir verwendeten Atmel liegt und ausreicht, um meine 2n2222- und 2n2907-Transistoren und damit meinen IRLB3034 anzusteuern Leistungs-MOSFET, ziemlich hart.

Ich habe keinen Widerstand zwischen VCC und dem Totempfahl verwendet.

4,7 Ω für den Gate-Widerstand erscheinen mir in Ordnung, ich habe nur geringfügig größere Werte verwendet und ein akzeptables Klingeln am Gate erhalten.

Legen Sie zu guter Letzt eine Freilaufdiode über den Ausgang. Ich dachte zunächst, dass eine Flyback-Diode bei einer "nicht-induktiven" Last wie einem LED-Streifen nicht erforderlich wäre, aber mein Oszilloskop hat mir das Gegenteil bewiesen: Es zeigte mehr als 40-V-Spitzen an meinem MOSFET unter Last, genug, um ihn theoretisch zu beschädigen. Durch das Anbringen einer Schottky-Diode wurde das Problem behoben.

  • das Netzteil meines PCs

Die Spezifikationen für das Netzteil sollten Ihnen sagen, wie viel Strom Sie aus der 12-V-Schiene ziehen können. Im Allgemeinen sollte ein modernes Netzteil von anständiger Qualität in der Lage sein, 60 W gut zu bewältigen.

Du verkomplizierst es zu sehr. Für die LED-PWM-Helligkeit bei weniger als vielen 10 KHz Modulationsfrequenz und für die Spannungen, mit denen Sie es zu tun haben, können Sie einfach ein N-Kanal-MOSFET-Gate direkt ansteuern oder einen einfachen nicht invertierenden Quad / Hex-Pufferlogikchip verwenden, wenn Sie haben sich Sorgen um Ihren Mikrocontroller gemacht.

Eine Schaltung für jeden Kanal der LED (R-, G-, B-Kanäle) kann so einfach sein:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ein nützlicher MOSFET könnte so etwas wie ein STP16NF06L sein

Dies setzt übrigens voraus, dass die LED-RGB-Kanäle keinerlei Strombegrenzung benötigen. Wenn sie keine Strombegrenzungswiderstände oder eingebaute Strombegrenzungsfunktionen haben, müssen Sie entweder für diesen Kanal irgendwo einen Widerstand in den Pfad von 12 V zur Masse schalten oder eine Widerstands- + BJT-Strombegrenzungsschleife auf dem implementieren N-Kanal-MOSFET.

Ich bin etwas spät dran, aber ist R1 da? Brauche ich es wirklich?
@thijmen321 es ist nur eine Vorsichtsmaßnahme, du kannst darauf verzichten.
@KyranF Tolle Antwort! ich verstehe das R 2 (Vielleicht besser beschriftet R G S , da es Gate --> Source abschließt) ist ein "schwacher" Pulldown-Widerstand, der den MOSFET während des Starts ausgeschaltet hält (wenn eine 12-V-Source am Drain erscheint). Damit ich lernen kann, wäre eine höhere R 2 , sagen 100 k Ω , arbeiten noch besser? Weil es noch weniger Strom vom Arduino "herunterziehen" würde, der den MOSFET antreibt.
@VladislavMartin ja, der schwache Pulldown kann viel höher sein, sogar 500k, und dennoch seine Aufgabe erfüllen - um schwebende Spannungen zu verhindern, wenn die digitalen E / A der Mikrocontroller normalerweise während der Start- und Reset- / Programmiersequenzen in den hochohmigen Modus wechseln. Es verhindert, dass sich das MOSFET-Gate auflädt und aufgeladen bleibt, was sicherlich passiert - mir ist es in einem großen 48 x 12-W-LED-Strobe-Panel passiert, das ich mit dem 2,5-fachen Nennstrom gepulst habe, also war das Schweben und Hochhalten gefährlich und katastrophal . Diese Art von Pulldown-Widerstand stoppte dieses Verhalten sehr effektiv.
@KyranF Ich verstehe. Außerdem macht der erste Kommentar zu Ihrer Antwort für mich keinen Sinn. Ich weiß nicht, wie ich es berechnen soll, aber ich weiß, dass zwischen Source und Gate ein Spannungsabfall erforderlich ist, damit sich der MOSFET einschaltet. Ist nicht ein Widerstand erforderlich, um sicherzustellen, dass bei Erreichen des erforderlichen Spannungsabfalls der am Gate gezogene Strom begrenzt wird? Ich verstehe, dass kräftigere MOSFETs eine ziemlich beeindruckende maximale Stromaufnahme in ihren Spezifikationen haben.
@VladislavMartin, der N-Kanal-FET mit seiner Source an Masse muss einfach sein Gate über 0 V liegen, und normalerweise beträgt die V_gs-Schwelle etwa 2,5 bis 4,5 V, um mit dem Einschalten zu beginnen. FETs auf Logikebene sind bei 5 V vollständig eingeschaltet, sodass ein 5-V-Mikrocontroller hervorragend funktioniert. Der Gate-Widerstand hilft, Stromspitzen zu reduzieren und hilft auch, den Mikrocontroller zu schützen, wenn der FET irgendwie mit einem Kurzschluss von Gate zu Masse durch die Gate-Source ausfällt. Ein BJT-Transistor ist wichtiger für Basisstrombegrenzungswiderstände. Der Anwendungsfall für den FET ist hier ein Ein-/Ausschalter.
@VladislavMartin nein, das FET-Gate verhält sich wie ein Kondensator. Sobald es auf die Eingangsspannung aufgeladen ist, hört es auf, Strom zu ziehen (außer vielleicht ein winziges Leck). Ein BJT-Transistor erfordert einen kontinuierlichen Stromfluss von der Basis zum Emitter, jedoch nicht für FETs. Stellen Sie sich in diesem Fall vor, dass der FET ein Kondensator gegen Masse ist und das Gate nur ein Knoten ist, der zum Laden des Gate-Kondensators verwendet wird. Wenn der Kondensator im Dauerzustand auf 5 V aufgeladen ist, ist der Drain-Source-Kanal schön offen und lässt viele Ampere durch (abhängig vom FET natürlich!). Es gibt praktisch einen unendlichen Widerstand, wenn der Ladevorgang abgeschlossen ist.
@VladislavMartin und da der Ladevorgang abgeschlossen ist, erreicht er die vollen 5 V oder was auch immer die Eingangssteuerspannung war.
@ KyranF Ja ... das war eine dumme Frage. Also, dann habe ich nur noch eine letzte Frage (ich kann sie als separate SO-Frage stellen): Wie haben Sie die ausgewählt 100 Ω Wert für Ihren Basiswiderstand? Ich habe einen sehr ähnlichen Anwendungsfall: Mein digital_ioist ein PWM-Pin an einem Arduino, der an eine 5-V-Quelle angeschlossen ist, aber ich kann keine solide Berechnung finden, der ich folgen sollte, um den Wert meines Basiswiderstands zu bestimmen ( R 1 ). Da der Zweck nicht darin besteht, das PWM-Signal stromzubegrenzen, ist der Wert von 100 Ω erscheint mir willkürlich.
@VladislavMartin es ist meistens willkürlich, für die Szenarien der meisten Leute. Der entscheidende Punkt ist, dass es vor einem Kurzschluss gegen Masse schützen sollte, wie es jeder digitale Ausgang eines Mikrocontrollers für die Interaktion mit Stromkreisen oder der Außenwelt tun sollte. 5 V/40 mA max. Strom = 125 Ohm. Sie möchten also wirklich mindestens 125 Ohm für R1. Wenn Sie eine 3,3-V-Logik verwenden, können Sie sicher 100 Ohm verwenden. Dann gibt es den RC-Filter, den R1 mit dem FET-Gate-Kondensator herstellt, den Sie sicherstellen sollten, dass er Ihre PWM-Frequenz nicht verletzt, da Sie sonst Sägezahnwellen erhalten (sehr schlecht für Widerstand und Wärme im FET).

Für geringe Stückzahlen und wenig Platz auf der Platine kann ein integrierter CMOS-Gate-Treiber verwendet werden, um den MOSFET anzusteuern. Siehe UCC27517A für ein Beispiel.

Übrigens, wenn Sie weniger als 7 A benötigen, können Sie anstelle des Treibers und des MOSFET so etwas wie den LM5112 verwenden. (Wenn Sie es einfacher mögen, ist es besser.)