Steuerung von Hochleistungs-LEDs mit einem Mikrocontroller

Ich möchte eine Schaltung bauen, um den Strom durch ein paar (LED- und Laser-) Dioden genau zu steuern. Ich möchte die Anzahl der Komponenten möglichst minimieren. Der Stromverbrauch ist kein Hauptanliegen, daher sind Linearregler und Ableitwiderstände in Ordnung.

Ich betrachte eine LM317-basierte Schaltung und diese eignet sich gut für einen konstanten oder per Potentiometer abgestimmten Strom, aber ich möchte, dass mein Strom von einem Mikrocontroller steuerbar ist. Wie könnte ich das erreichen?

Wenn es möglich ist, dies ohne einen zusätzlichen Operationsverstärker, BJT oder FET zu tun, erklären Sie es bitte ... Eigentlich, bitte erklären Sie es, egal was passiert. :)

Sie möchten LEDs einzeln (oder in Reihe) mit bis zu nicht viel mehr als 1 A ansteuern. (Vf < 4 V)

Was ist die aktuelle Reichweite?
Jetzt bevorzuge ich eine Lösung, die 3A fahren kann

Antworten (7)

Okay, der TL4242 ist zu teuer. Kein Problem, Sie können immer noch eine Stromquelle mit gebräuchlicheren Komponenten erstellen.

Geben Sie hier die Bildbeschreibung ein

Der Strom wird durch die Eingangsspannung als definiert ICH L Ö A D = v ICH N R S E N S E . Wählen R S E N S E in Funktion des Mikrocontrollers v D D . Wenn Sie liefern v ICH N Mit dem PWM-Signal wird der Strom zwischengeschaltet ICH L Ö A D und null.

Bearbeiten
Ich hatte mir den Preis für den TL4242 nicht angesehen, aber Federico hat Recht: Der Preis ist sehr vernünftig. Sie würden mehr ausgeben, wenn Sie den LM317 PWM-steuern möchten.

Bearbeiten : 2A fahren
Eine Sache, die Sie bei der Auswahl von Komponenten beachten sollten, ist, dass der Transistor Ihren Vorwiderstand ersetzt, der normalerweise den LED-Strom steuert.
Wenn der Transistor ein reiner Schalter wäre, möchten Sie, dass er so effizient wie möglich ist, dh sehr wenig Leistung verbraucht. In diesem Fall wäre ein MOSFET die beste Option, es gibt viele davon R D S ( Ö N ) von weniger als 100 M Ω .
Da das Schaltelement nun eine Strombegrenzungsvorrichtung ist, ist dies nicht so wichtig. Sie können hier einen BJT verwenden. Leistungstransistoren für 2A ICH C hab kein high H F E , was bedeutet, dass der Operationsverstärker einen ziemlich hohen Strom in die Basis liefern müsste, und dies kann die Fähigkeiten des Operationsverstärkers übersteigen. Ein Darlington-Transistor wie der TIP110 ist die Lösung.

Angenommen, ich möchte mit dieser Methode bis zu 1,5 oder 2 A fahren. Welche Komponenten für den Operationsverstärker und den Transistor würden Sie vorschlagen? Zum Beispiel scheint ein 2N2222 nur 800 mA liefern zu können.
@Steven - Ich habe meine Antwort bearbeitet (etwas lang für diesen Kommentar)
@Steven - Übrigens, der 2n2222 kann 800 mA zulassen, aber es sind nur 500 mW. Das liegt daran, dass es sich um einen Schalttransistor handelt, der nicht wie hier im aktiven Bereich arbeiten soll.
@stevenvh Danke. Mir ist gerade klar geworden, dass ich vielleicht einige CREE XM-L-LEDs ansteuern möchte, die bis zu 3A benötigen. Wird dieser 4A Darlington funktionieren? search.digikey.com/scripts/DkSearch/… Und was ist mit dem Operationsverstärker? Ich bin mir nicht sicher, nach welcher Art ich suchen soll, und ein Ort wie digikey hat viele Möglichkeiten.
Außerdem scheint der gesamte Strom durch R_sense zu fließen. R_sense wird wahrscheinlich etwas über 1 Ohm liegen, bei 3 Ampere werden 3 Watt verbraucht. Gibt es nicht eine Möglichkeit, dies etwas effizienter zu machen?
Könnte ich vielleicht einen anderen Operationsverstärker verwenden, um den PWM-Ausgang linear auf einen niedrigeren Bereich zu skalieren, damit ich einen kleineren Widerstand für R_sense verwenden kann? Wenn ich Vin im Bereich von 0 bis 1 V habe und Rsense = 0,2 verwende, kann ich bis zu 5 Ampere erreichen, und die 5 Ampere würden nur ein Watt am Widerstand verbrauchen, anstatt 5 Watt, wenn ich einen Vin mit 1 Ohm und 5 Volt verwende. Ist irgendetwas davon sinnvoll?
Auch das R1 im Diagramm ... ist es notwendig?
Also bekam ich meine erste Lieferung von LEDs und habe mit ihnen an meinem aktuellen geregelten Netzteil gespielt. Sie geben sogar bei sehr kleinen Strömen viel Licht ab, daher scheint es, als wäre die Steuerung ihrer Helligkeit durch Variieren der Spannung wahrscheinlich ein besserer Weg für mich, glatte Intensitätsübergänge zu erzielen. Da ich mit dem LM317 leicht einen Maximalstrombegrenzer konstruieren kann, glaube ich, dass mein Problem vereinfacht wurde.
Okay, ich glaube, ich verstehe diese Schaltung jetzt, stevenvh. Diese Operationsverstärkerschaltungen mit negativer Rückkopplung sind sehr praktisch, und es fließt überhaupt nicht viel Strom durch sie, da sie einen Gleichgewichtszustand aufrechterhalten. Ich weiß jetzt definitiv, was ich mit meiner Schaltung machen soll :)
Ich kann keine Pakete finden, die mehrere Leistungstransistoren in einem Chip haben. Ich nehme eine Vermutung an ... zu viel Verlustleistung, um praktisch zu sein?
@Steven - R1 ist nicht erforderlich. Abnehmend R S E N S E und die Steuerspannung zu senken ist eine sehr gute Idee. (Entschuldigung für die späte Antwort, aber ich versuche, einer Reihe von Threads zu folgen, und verliere manchmal einen aus den Augen, besonders wenn die neuesten Kommentare ausgeblendet sind.)
Es scheint mir also, als würde diese Schaltung hier nicht so gut funktionieren, wenn Vcc nicht wesentlich höher als Vin sein kann. Da die Emitterspannung Vin ist und Vcc höher sein muss, unabhängig vom Lastspannungsabfall, plus dem CE-Abfall.

PWM ist der Weg, um den Ausgang zu modulieren, aber es wird noch etwas anderes benötigt, da Sie möchten, dass der Strom präzise ist. Stellen Sie es so ein, dass Sie, wenn der Mikrocontroller-Pin hoch ist, den maximalen Strom mit guter Präzision erhalten, und gehen Sie dann mit PWM von dort nach unten.

Bei 300 mA möchten Sie den LED-Strom von der gut geregelten Versorgung fernhalten. Was auch immer Sie die geregelte Versorgung antreiben, hat wahrscheinlich eine etwas höhere Spannung und ist nicht so gut geregelt. Ein netter Trick besteht darin, die LED von einem NPN im gesteuerten Stromsenkenmodus zu treiben. Dies bedeutet, dass die Basis direkt vom Ausgangspin des Mikrocontrollers angesteuert wird, der Emitter über einen Widerstand auf Masse geht und die LED zwischen einer positiven Versorgung und dem Kollektor angeschlossen ist. Wenn die Stromversorgung des Mikrocontrollers gut geregelt ist, wird die Spannung über dem Widerstand angemessen festgelegt und stellt den Strom ein, den der Transistor zieht, wenn er eingeschaltet ist.

Wenn das Mikro beispielsweise mit einer guten 3,3-V-Versorgung betrieben wird, beträgt die Emitterspannung etwa 2,6 V. 2,6 V / 300 mA = 8,7 Ohm. Sie müssen ein wenig experimentieren, um genau den gewünschten Strom zu erhalten, da der genaue BE-Abfall schwer zu erraten ist, aber dies ist ein guter Ausgangspunkt. Eigentlich würde ich die nächste Standardwiderstandsgröße wie 8,2 Ohm auswählen und dann den Rest im Mikro kalibrieren. Sie sollten etwas mehr als 300 mA mit 8,2 Ohm erhalten, aber was auch immer Sie erhalten, sollte ziemlich wiederholbar sein. Es ist auch ziemlich unabhängig von der ungeregelten Spannung, an die die LED angeschlossen ist, solange es ausreicht, um die LED zu betreiben. Angenommen, Sie messen 320 mA, wenn der Mikroausgangsstift hoch ist. Sie führen dann die PWM von 0 bis 94,8 % aus, um Ihre 0-300-mA-Vollaussteuerung zu erhalten.

Für die meisten Zwecke reicht es aus, diesen Skalierungsfaktor einmal im Labor herauszufinden und fest zu codieren.

Hallo @Oline. Ich überarbeite Ihre Antwort und ich denke, was Sie sagen, unterscheidet sich ein wenig von dem, was andere gepostet haben. Mein Verständnis dessen, was mit dem Transistor passiert, ist ein wenig wackelig. Sie beschreiben, wie Sie den Ausgangspin des Mikrocontrollers mit der Basis verbinden und den 8,2-Ohm-Widerstand zwischen Emitter und Masse legen. Dies würde dazu führen, dass diese 300 mA vom Mikrocontroller durch die BE-Verbindung in die Erde fließen, oder nicht? Wird das den Transistor nicht in die volle Sättigung bringen und es wird mir nicht helfen, den Strom zur LED zu regulieren. Ganz zu schweigen davon, dass der Mikrocontroller 300 mA nicht verarbeiten kann.
Du hast die richtige Verbindung, aber das wird nicht passieren. Denken Sie daran, dass der Emitterstrom der Basisstrom plus Kollektorstrom ist und dass der Kollektorstrom der Basisstrom mal der Transistorverstärkung ist. Daher fließt der größte Teil des Stroms durch den Kollektor. Da die Spannung über dem Emitterwiderstand vernünftig festgelegt wird, wird dieser Kollektorstrom und damit der LED-Strom ebenfalls festgelegt.
Zeichenbeschränkung in Kommentaren weiter umgangen. Nehmen wir an, der Transistor hat eine Verstärkung von 50 und der Emitterstrom beträgt 320 mA. Das heißt, der Basisstrom beträgt 6,3 mA und der Kollektorstrom (auch die LED) 314 mA.
Okay, aber setzt dies nicht auch voraus, dass die LED-Stromversorgung auch 3,3 V beträgt? Angenommen, ich schließe +100 V an den Kollektor und meinen +3,3-V-MCU-Pin an die Basis und einen 8-Ohm-Widerstand vom Emitter an Masse an. Würde das Aktivieren des Pins HIGH nicht dazu führen, dass der Transistor etwa 12 Ampere durchlässt und alles brät?
Es wird davon ausgegangen, dass die LED-Stromversorgung mehrere Volt höher ist als die Mikrocontrollerversorgung. Nehmen wir an, das Mikro hält die Basis bei 3,3 V, um die LED einzuschalten. Aus dem vorherigen Beispiel liefert das Mikro 6,3 mA, und der Transistor lässt bis zu 314 mA durch seinen Kollektor zu, wenn genügend Spannung vorhanden ist . Nehmen wir an, die LED benötigt 2,1 V (typisch für Grün) und die Transistorsättigungsspannung beträgt 200 mV. Das bedeutet, dass die LED-Stromversorgung mindestens die Emitterspannung plus 2,3 V oder etwa 4,9 V betragen muss. Eine 5V-Versorgung würde nur funktionieren.
(Fortsetzung) Bei einer LED-Versorgung von mindestens 5V wird der LED-Strom in diesem Beispiel vernünftigerweise auf 314mA festgelegt. Dies ist unabhängig von der LED-Versorgungsspannung. Höhere Spannungen erlauben immer noch den gleichen LED-Strom, aber die Spannung am Transistor steigt. Wenn dies höher wird, verbraucht der Transistor mehr Leistung, aber der LED-Strom wird unabhängig von der Versorgungsspannung weiter geregelt, solange er 5 V oder mehr beträgt. Zu hoch und die Transistorspannung oder die Verlustleistungsspezifikation wird überschritten und es wird poof.
Es gibt also keine negative Rückkopplung und ich kalibriere den Strom basierend auf der Verstärkung des Transistors? Wenn ich einen Transistor mit einer Verstärkung von 50 habe und der nächste 100, dann lässt der zweite doppelt so viel Strom durch, selbst wenn alles auf die gleiche Weise eingerichtet wird?
Nein, der Emitterwiderstand ist der negative Rückkopplungspfad. Der Emitterstrom beträgt im Beispiel 320mA. Solange die Verstärkung "groß" ist, kommt das meiste vom Kollektor und die Schaltung ist weitgehend unabhängig von der Verstärkung. Bei einer Verstärkung von 50 erhalten wir 314mA Kollektorstrom. Bei unendlicher Verstärkung wären es nur 320mA. Das ist die Rückkopplung der Spannung über den Emitterwiderstand bei der Arbeit.
Das verwirrt mich jedoch, weil Sie mir anscheinend sagen, dass ich keinen Operationsverstärker brauche. Korrigieren Sie mich bitte, wenn ich falsch liege: Die Emitterspannung wird nur durch die Basisspannung bestimmt. Egal wie hoch die Kollektorspannung ist. Da die Emitterspannung bekannt ist, ist der Strom durch den Widerstand bekannt. Der Transistor lässt nur genug Strom vom Kollektor (und von der Basis, diese beiden bestimmt durch die Verstärkung) durch, um die Emitterspannung aufrechtzuerhalten, und ich muss mir keine Sorgen machen, dass die Emitterspannung vom Basisstrom minus 0,6 V abweicht.
Ich denke, ich kann sehen, warum das funktioniert. Die Verwendung des Operationsverstärkers löst nur die geringe Last, die sonst auf dem Mikrocontroller liegen würde. Und zwingt die Emitterspannung auf die gleiche MCU-Pin-Spannung. Beides ist nicht erforderlich, wenn ich an meinem Transistor eine ausreichend hohe Verstärkung habe.
@Steven: Ja, aus deinen letzten beiden Kommentaren scheinst du zu verstehen.

PWM ist die typische Art, die Helligkeit von LEDs zu steuern. Der LM317 ist wahrscheinlich zu langsam dafür, aber der TI TL4242 kann auf Bestellung gefertigt werden: Es ist eine einstellbare Konstantstromquelle, PWM-gesteuert und in der Lage, bis zu 500 mA zu liefern.

toll, aber es ist ein bisschen teuer. Ich möchte eine Lösung mit etwas Grundlegendem wie dem LM317, wenn möglich. Es sollte nicht schwer sein, die PWM mit einem Tiefpassfilter zu glätten. Es scheint nur so, als sollte ich mit dem LM317 eine spannungsgesteuerte Stromquelle bauen können. Aber wie?
@Steven: teuer? Bei Mouser sind es 1,08 Euro!
@Federico Schön, sie sind viel mehr bei digikey. Für einen Dollar kann dies kostengünstiger sein als ein Operationsverstärker und eine Transistorschaltung. Dies wird definitiv eine großartige Option für LEDs sein, die ich unter 500 mA betreiben möchte.
Eigentlich sind sie nur wie $1,50 bei digikey. Muss eine andere Seite gewesen sein, die ich überprüft habe.
TL4242 ist ein winziger Chip!! Ich werde mich mal daran machen es auszuprobieren... irgendwann...

Ich bin mir nicht sicher, was Ihr ultimatives Ziel ist, aber Sie könnten die Notwendigkeit einer Stromquelle vollständig beseitigen? Auch dies hängt davon ab, was Sie hier erreichen möchten und mit welcher Hardware Sie es zu tun haben. Aber wenn Ihr Mikrocontroller über Hardware-PWM verfügt (vielleicht könnte Software-PWM auch funktionieren), hatte ich im Sinn, nur einen MOSFET und einen Widerstand pro Diode zu haben, die Sie ansteuern möchten.

Der Mikrocontroller würde die Gates der MOSFETs ansteuern (konnte kein Bild posten). Lassen Sie die Source des MOSFET an Masse und den Drain an das andere Ende der Schaltung anschließen. Mit PWM können Sie den durchschnittlichen Strom ohne viel Energieverschwendung steuern. Dies ist dem, was @Olin Lathrop vorgeschlagen hat, sehr ähnlich. Wie er sagte, sollten Sie einen Widerstand wählen, der den gewünschten maximalen Strom mit guter Präzision liefert.

Du hast definitiv Recht! Ich habe das auch erkannt und letzte Nacht habe ich eine Schaltung gebaut, die drei Darlington-Leistungstransistoren für eine RGB-LED-Einheit verwendet, die mit PWM von einem Arduino gesteuert wird. Hier ist ein Video davon: youtube.com/watch?v=wCpl6USt7mo Ich habe einige Zeit damit verbracht, Messungen durchzuführen und geeignete Widerstände aus meinem Set auszuwählen, aber es funktioniert definitiv gut. Ein Nachteil ist, dass für die Berechnung der erforderlichen Widerstände eine Abhängigkeit von der Vf der LEDs besteht. Ich versuche jetzt, nach Methoden zu suchen, um ein aktuelles Laufwerk zu erhalten, das davon unabhängig ist.
Wenn dies nicht zu groß ist, könnte jemand die Verwendung von Mosfets in ein oder zwei Sätzen charakterisieren? Insbesondere, da es für eine Switching-Rolle verwendet werden könnte. Kann ich einen Strom über eine Spannungsdifferenz steuern? Immer wenn ich über Fets lese, verstehe ich nicht alle Begriffe.

Ich habe meine Meinung geändert. Ich habe diese spannungsgesteuerte Stromquelle vorgeschlagen , aber wenn ich darüber nachdenke, wird mir klar, dass sie ihre Probleme hat. Das PWM-Signal schwingt den Eingang des Operationsverstärkers zwischen GND und V+, um die Stromquelle ein- und auszuschalten.
Dies ist ziemlich anstrengend für den Operationsverstärker, und Sie müssen einen schnellen finden (Produkt mit hoher Gain-BandWidth), um damit fertig zu werden. Und es sieht so aus, als ob Rail-to-Rail und schnell nicht so einfach zusammenpassen. Deshalb möchte ich den Operationsverstärker loswerden, der das PWM-Signal verarbeitet.
Die Idee ist wie folgt: Verwenden Sie eine feste Eingangsspannung für den Operationsverstärker, damit Sie auch einen festen Strom durch Ihre LEDs haben. Verwenden Sie nun das PWM-Signal, um den treibenden Darlington-Transistor abzuschalten. Sie können dies tun, indem Sie einen NPN-Transistor zwischen der Basis und Masse des Darlington platzieren und ihn mit dem PWM-Signal ansteuern. Basistransistor nicht vergessen.
Wenn das PWM-Signal niedrig ist, leitet dieser Transistor nicht, der Operationsverstärker treibt den Darlington an und die LEDs sehen den programmierten Strom. Wenn das PWM-Signal hoch ist, schaltet der Transistor den Darlington ab und es fließt kein Strom durch die LEDs. Sie müssen einen Vorwiderstand am Ausgang des Operationsverstärkers platzieren, da der Transistor ihn sonst kurzschließt. Berechnen Sie den Wert des Widerstands so, dass der Darlington-Wert gegeben ist H F E , erhalten Sie den erforderlichen Kollektorstrom.

Ihre ursprüngliche Schaltung macht für mich jedoch sehr viel Sinn, und ich mag sie besonders, weil sie eine minimale Anzahl wichtiger Teile verwendet: einen Transistor, einen Operationsverstärker und einen Stromhandhabungswiderstand. Die Rail-to-Rail-Opamps sind nicht zu teuer und kommen auch in Vielfachen (ich möchte mehrere LEDs gleichzeitig ansteuern), also werde ich diese Lösung ausprobieren, um zu sehen, ob sie die Arbeit erledigt. Ich gehe gerne selbst Hand an, bevor ich mich in hypothetische Berechnungen vertiefe, so macht es mehr Spaß :)
@Steven - Das ist in Ordnung. Versuchen Sie einfach zu verstehen, warum ich es ändern wollte, und behalten Sie das im Hinterkopf, falls es zu langsam schalten sollte.
Ja, wenn ich die Opamp-Schaltung nicht so gut zum Laufen bringen kann, probiere ich vielleicht mehr Dinge mit Transistoren aus. Mosfets sehen auch nach etwas aus, das ich irgendwann lernen sollte. Im Moment komme ich jedoch mit Widerständen und einem Leistungs-BJT aus (obwohl diese Darlingtons ziemlich heiß werden, haben sie einen ziemlichen Spannungsabfall).

Sie sollten in der Lage sein, den PWM-Ausgang mit einem Tiefpassfilter (Widerstand in Reihe mit PWM-Pin und Kondensator parallel zum Ende des Widerstands und Masse) zu verwenden. Verwenden Sie dies, um den ADJ-Pin am LM317 anzusteuern.

Um einen konstanten Strom zu erhalten, müssten Sie die Spannung über dem Shunt abtasten und damit den Strom einstellen.

Wie? Ist der LM317 kein Spannungsregler?
wo ist der shunt Könnten Sie ein wenig detailliert beschreiben, wie ich die in meinem Link gezeigte Schaltung modifizieren würde, um eine Einstellbarkeit zu erhalten? Den Teil mit PWM und einem Tiefpassfilter verstehe ich vollständig.
@Steven - der LM317 ist ein Spannungsregler, hält jedoch eine konstante Spannung zwischen dem Ausgang und dem Adj-Eingang. Das bedeutet, dass ein Widerstand zwischen diesen Pins einen definierten Strom zum Fließen bringt.
@stevenvh das verstehe ich. Aber ich kann den Wert eines Widerstands nicht mit einem Mikrocontroller ändern, oder? ;) Ich hätte gerne jemanden, der mir hilft, eine Schaltung zu entwickeln, die einen bequemen Platz zum Anschließen eines analogen 0-5-V-V_set hat und einen Strom I_out proportional zu V_set erzeugen lässt, der von V_in gespeist wird.
@Steven - Sie haben Recht, dass der Strom des LM317 von einem Mikrocontroller schwer zu steuern ist. Siehe meine Antwort unten für eine Alternative.
@Joe zum "Abtasten der Spannung über dem Shunt" bedeutet dies, dass ich einen Operationsverstärker und Transistoren und dergleichen verwenden müsste, um die Aufgabe zu erfüllen? In diesem Fall sollte ich den lm317 einfach ganz überspringen.
Ich glaube nicht, dass der LM317 dafür die richtige Wahl ist. Nur beschreiben, wie es möglich sein könnte. Wenn Sie den Strombegrenzungswiderstand auf Masse haben, können Sie den ADC des Mikros verwenden, um die Spannung ohne zusätzliche Komponenten abzutasten. Der LM317 scheint dafür eine seltsame Wahl zu sein.

Wenn Sie den LM317 verwenden möchten, können Sie einfach einen (oder sogar beide) der Einstellwiderstände durch ein digitales Potentiometer ersetzen. Dies sind kleine Chips, die einen Topf emulieren, aber über Dinge wie SPI oder I²C mit einer MCU verbunden sind, damit die MCU den Widerstand steuern kann.

Microchip macht einige, und sie machen kostenlose Proben.

Digitale Potmeter haben ziemlich hohe Widerstandswerte (10 - 100k Ω ). Für 200 - 300 mA benötigen Sie weniger als 10 Ω
Analoge Geräte bieten digitale 1-kΩ-Potis, und da ich gerne Widerstände in diesem Bereich verwende, um einen LM317T zu regeln, sehe ich keinen Grund, sie nicht zu verwenden. Beim 317T ist die Genauigkeit umso höher, je niedriger Ihre Widerstände sind. Ja, es gibt eine Grenze, wie hoch Sie gehen können, bevor es anfängt zu versagen, aber Widerstände im Bereich von 1-2K sind in Ordnung.
Digitale Potentiometer sind eine sehr coole Idee. Obwohl ich denke, dass der Digipot in meinem Anwendungsfall mit der Last in Reihe geschaltet wäre, bezweifle ich, dass sie diese für viel Strom ausgelegt haben.
@Steven - Das stimmt, sie können nicht mit viel Strom umgehen. Und selbst dann war Matt nicht überzeugt, aber sogar eine 1k Ω Pot mit 256 Taps hat einen Step von 4 Ω . Sie möchten wahrscheinlich mehr Kontrolle als das.