Frage:
Arduino PWM steuert Hochleistungs-LED
robzy
2009-12-07 15:39:05 UTC
view on stackexchange narkive permalink

Ich möchte einen der PWM-Ausgänge des Arduino zur Steuerung einer leistungsstarken LED verwenden. Ich kann mich nicht an die genauen Spezifikationen erinnern, aber es war erheblich mehr Strom, als der ATMega328 liefern kann.

Mir ist klar, dass dies normalerweise mit einem Transistor und einem Widerstand zur Stromregelung erreicht werden würde die LED. Ich möchte jedoch nicht, dass die LED weniger hell wird, wenn die Batteriespannung abfällt, und daher möchte ich anstelle des Widerstands eine Konstantstromquelle verwenden.

Mein erster Gedanke war, eine zu verwenden LM317. Was ich jedoch wissen möchte, ist, ob es mit den erforderlichen 64 kHz reagieren kann?

Alternativ könnte ich einen einfachen MOSFET verwenden, um dasselbe billiger und einfacher zu erreichen? (Dann würde ich weder einen Transistor noch eine Konstantstromquelle benötigen, da der MOSFET beides tun würde.)

Danke, Rob.

Müssen Sie wirklich mit 64 kHz modulieren? Wenn Sie nur versuchen, die sichtbare Helligkeit zu steuern, ist diese schneller als erforderlich. Einige weitere Details wie der Spannungsbereich, den Sie von der Batterie erwarten, sowie der Betriebsstrom und die Spannung der LED würden zu einer besseren Antwort beitragen.
Ich möchte die physische Helligkeit und Farbe einer RGB-LED steuern. Ich bin mir ziemlich sicher, dass ich für jede Farbe der LED Stromwerte von 200 mA betrachte. Die Batteriespannung sollte 3,5-4,5 V betragen, und die Spannung der LEDs variiert zwischen 2,5-3,2 V.
robzy - Nach Durchsicht der [Arduino-Dokumentation] (http://arduino.cc/en/Reference/AnalogWrite) unterstützt die Standard-PWM-Funktion nur eine Frequenz von 490 Hz. Wenn Sie analogWrite (1) ausführen, wird dies in ein PWM-Signal mit einem Tastverhältnis von 0,39% umgewandelt. Ist es richtig, das als 64-kHz-Signal zu bezeichnen?
Einige interessante Antworten, die aber für meinen Kenntnisstand nicht ausreichten.Zukünftige Leser möchten diesen Beitrag möglicherweise ausführlich lesen: http://joost.damad.be/2012/09/dimming-12v-led-strip-with-mosfet-and.html
Vier antworten:
#1
+6
starblue
2009-12-07 18:23:34 UTC
view on stackexchange narkive permalink

Für diese Anwendung benötigen Sie keine 64 kHz, 200 Hz sind ausreichend.

Ich habe das folgende Design für einen Strom von ca. 200 mA verwendet:

+ 5 V --- LED --- Transistor - (1) - Shunt (1 Ohm) --- GND

(1) geht zum negativen Eingang eines LM358 OpAmp. Es ist wichtig, dass der OpAmp bis zur unteren Schiene (GND) arbeitet, da am Shunt nur eine geringe Spannung anliegt.

Der Ausgang des OpAmp treibt den Transistor über einen geeigneten Widerstand an. P. >

Der positive Eingang ist mit einem Spannungsteiler verbunden, der vom Port-Pin gespeist wird. Der Spannungsteiler und der Shunt bestimmen den Strom durch die LED.

Eigentlich glaube ich, dass ich 64KHz brauche. Die PWM-Frequenz beträgt ungefähr 500 Hz, was sich in Perioden von 2 Millisekunden aufteilt. Auf der niedrigsten Stufe (vor dem Ausschalten) ist sie für 1/256 dieser Zeit oder für 8-ms-Bursts eingeschaltet. Das entspricht 128 kHz (ich habe in meiner ursprünglichen Schätzung versehentlich 128 Pegel verwendet).
@robzy: du meinst 8 us Bursts, nicht 8 ms. Und Sie verwechseln die Pulsbreite mit der Frequenz. 500 Hz sind 500 Hz, auch wenn Sie ein Tastverhältnis von 0,1% haben.
#2
+4
Clint Lawrence
2009-12-07 18:35:13 UTC
view on stackexchange narkive permalink

Das Datenblatt für einen LM317 zeigt, dass seine Sprungantwortzeit in der Größenordnung von 10 uS liegt. Dies ist zu langsam, um bei 64 kHz zu modulieren.

Eine Stromquelle ist der richtige Ansatz. Abhängig von der Gesamtleistung, die Sie zum Ansteuern der LED benötigen, funktioniert möglicherweise eine lineare Stromquelle wie die von Starblue vorgeschlagene. Wenn die Leistung jedoch höher ist, müssen Sie möglicherweise einen Buck-Regler verwenden.

@Clint Lawrence - Ein einzelner Schritt in einer 64-kHz-Rechteckwelle beträgt 15 us. Wenn der LM317 eine Anstiegsgeschwindigkeit von 10 us hat, kann er diese Rechteckwelle nicht verarbeiten?
#3
+2
jluciani
2009-12-16 05:41:21 UTC
view on stackexchange narkive permalink

Ich würde einen Operationsverstärker, einen Widerstand und einen FET verwenden, um eine konstante Stromsenke zu erzeugen. Wenn die Spannung abfällt, treibt der Operationsverstärker das Gate des FET an, um einen konstanten Strom durch den Erfassungswiderstand aufrechtzuerhalten.

Wenn Sie unter Luciani.org zum Abschnitt "Elektronische Last" scrollen, sehen Sie eine schematische Darstellung einer "Wägezelle", bei der es sich um einen konstanten Stromsenker handelt. Sie können die Senke PWM-fähig machen, indem Sie den programmierten Strom regelmäßig auf Null setzen.

Mein Prototyp funktioniert. Es befindet sich im Abschnitt "Nicht ganz fertig" auf der Website von thewiblocks.

#4
  0
Kavka
2011-12-03 03:43:04 UTC
view on stackexchange narkive permalink

Sie können einen Präzisionswiderstand mit niedrigem Widerstand in Reihe mit der LED schalten und den Analogeingang von Arduino verwenden, um den Spannungsabfall am Widerstand zu messen. Sie können den LED-Strom aus dieser Messung berechnen und das Tastverhältnis des PWM-Signals anpassen, um Änderungen der Batteriespannung auszugleichen.

Beachten Sie, dass dies nicht funktionieren würde, wenn Arduino keine feste Referenzspannung für Analog hat zur digitalen Konvertierung.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...