Forum: Analoge Elektronik und Schaltungstechnik AVR als Konstantstromregler für Power-LEDs


von Moritz N. (mox-mox)


Angehängte Dateien:

Lesenswert?

Hi,

ich möchte mir für mein Zimmer eine Deckenlampe bauen. Dazu hab ich 
RBG-Leuchtdioden bestellt und möchte diese gerne mit einem AVR dimmen. 
Bei meiner Suche habe ich einige Beispiele gesehen, in denen spezielle 
Treiber-ICs zum Einsatz kommen oder aber der gute alte Vorwiderstand. 
Beides gefällt mir nicht: Vorwiderstand ist klar, der verbraucht unnötig 
Energie, die Treiber-ICs, die ich gesehen habe, scheinen mir für meine 
Anwendung irgendwie zu kompliziert. (Vielleicht versteh ich auch nur den 
Clou nicht?) (vergleiche Schaltplan: 
http://www.onsemi.com/pub/Collateral/CAT4201-D.PDF, Seite 1 unten ).

Eigentlich müsste ein Mikrocontroller doch 'von sich aus' schon das 
meiste mitbringen, um Leuchtdioden mit einem konstanten Strom 
anzutreiben: Eine PWM und einen ADC, mit dem man am Sense-Widerstand die 
Spannung misst und danach dann den Duty-Cycle der PWM nach oben oder 
unten korrigiert, falls der Strom vom Soll abweicht. Daher meine erste 
Frage: Kann das so einfach gehen? Und falls ja, wäre der Schaltplan im 
Anhang dazu geeignet? (Siehe lampe_vereinfacht.png)
Wie schnell muss man bei LEDs eigentlich auf Stromänderungen reagieren 
können? Wenn ich den ADC mit maximaler Geschwindigkeit laufen ließe, 
käme ich bei rund 100 µs zwischen den Messergebnissen für einen Strang 
raus. (6*8µs Messzeit im schlimmsten Fall+Umschaltzeit zwischen den 
Kanälen, denn ich möchte 6 unabhängige Ströme (2*RGB) messen)
Das ganze dann auch richtig zu regeln dürfte auch noch einmal eine 
Aufgabe werden, aber ich hoff einfach mal, dass ich das hinbekomm. Es 
gibt ja im Forum schon ein wenig dazu und ich hoff einfach mal.

Und was wäre eine gute (angemessene) PWM-Frequenz um die Leds zu dimmen? 
Die Lampe soll in etwa 2 Meter im Durchmesser haben, die Elektronik soll 
in der Mitte sitzen, somit hätte ich einen guten Meter offene 
Kabelstrecke zwischen den LEDs und der Elektronik. Wenn ich eine zu hohe 
Dimmfrequenz verwende, wir durch die Induktivität der Leiter an den 
Leuchtdioden nur noch eine Gleichspannung ankommen (wäre wahrscheinlich 
nicht das Schlimmste), aber ich befürchte, dass ich damit dann Probleme 
mit EMV bekomme. Falls das absurd ist, würde ich mich auch freuen, das 
zu hören.

Zu mir: Ich studier Informatik und hab die meisten Begriffe schonmal 
gehört, aber eben weder viel praktische Erfahrung, noch solides 
Hintergrundwissen. Und bevor ich Mist bau, frag ich lieber mal nach.

viele Grüße,
mox

von Alter Ego (Gast)


Lesenswert?

Brauchst eine Spule zur Verstetigung des konstantstroms.

von lukas (Gast)


Lesenswert?

So wird das ganze nicht funktionieren.
Für dein Vorhaben brauchst du einen Buck-converter mit Stromregelung.
Also sowas wie es hier beschrieben ist: 
http://schmidt-walter.eit.h-da.de/smps/abw_hilfe.html
Dabei kannst du die PWM in Abhängigkeit vom Strom durch den AVR 
einstellen um die LED zu dimmen. Ich hab mal sowas ähnliches geplant, 
nur hab ich einen Boost-Converter verwendet. Die Schaltung ist 
angehängt.

von lukas (Gast)


Angehängte Dateien:

Lesenswert?

oha, Anhang vergessen.

von lukas (Gast)


Lesenswert?

Du kannst sie auch gepulst betreiben, dabei darf aber der maximale 
Pulsstrom nicht überschritten werden. Sonst zerstörst du die LED oder 
beeinträchtigst die Lebensdauer. Dieser sollte bei einer 20mA LED so ca. 
um die 100mA liegen. Diese Betriebsmodi nimmt man aber eher bei 
7-Segment-Anzeigen her oder LED-Anzeigen, wo man Multiplexem muss.

von MaWin (Gast)


Lesenswert?

Moritz Nöltner schrieb:
> Kann das so einfach gehen?

Nein, natürlich nicht.

Wie schnell steigt denn der Strom nach dem Einschalten,
bzw. wie hoch ist er 100us nach dem Einschalten?

Selbst mit einer unvernünftig grossen Spule mit Freilaufdiode:
Wie finden es deine Power-LEDs, wenn der uC mal abstürzt?

Nimm also den guten alten Vorwiderstand, ausgelegt auf den
Maximalstrom und dimme per PWM.

Als PWM geht alles über 200Hz.

von Moritz N. (mox-mox)


Lesenswert?

@Alter Ego: Kann ich die nicht weglassen, und die LEDs gepulst 
betreiben?

@Lukas: In dem Link, den Du angehängt hast, kommt doch im Vergleich zu 
meinem Vorschlag nur eine Diode und ein LC-Glied dazu, oder? Und wenn 
ich nicht wirklich fordere, dass der Strom konstant ist, sondern nur, 
dass er geeignet sein soll, die LEDs anzutreiben, dann kann ich doch auf 
das LC-Glied verzichten (ich seh das Flimmern der LEDs ja eh nicht) und 
wenn ich die Induktivität nicht habe, muss ich die Elektronik doch auch 
nicht mit einer Diode vor der Induzierten Spannung der Diode schützen, 
oder?
Wobei es natürlich schon vorteile hätte, die LEDs nicht gepulst zu 
betreiben, dann könnte ich bei dem Licht sinnvoller photographieren.
Mit dem Stepup kann ich in dem Zusammenhang irgendwie nicht viel 
anfangen, weil erstens hab ich genug Spannung, und zweitens könnte ich 
mit der Schaltung machen, was ich will, die LEDs würden immer mit voller 
Kraft leuchten. Der Stepup macht doch nur Sinn, wenn die eigentliche 
Spannung niedriger als die Flussspannung der LEDs ist, oder?

Edit: Da war ich zu langsam.

von Moritz N. (mox-mox)


Lesenswert?

Wenn ich da nur Vorwiderstände verwende, dann müsste ich für die roten 
LEDS fast 10 Volt verbraten: Ich hab eine Spannungsquelle mit 30 Volt 
und RGB-LEDs, die 2,3 Volt (Rot) und 3.3 Volt (Grün und Blau) 
Flussspannung haben. Damit bekäme ich 9 LED (Grün und Blau) versorgt, 
oder 13 mal Rot.
Gibts da keine sinnvolle Alternative? Sicherungen, und den Watchdog des 
AVR? Und kann ich dem Einschaltproblem nicht dadurch begegnen, dass ich 
anfangs halt nicht gleich 100 % drauf gebe? Oder alternativ erstmal 
jeden Strang einzeln 'hochfahre'? So hab ich da die ersten µs alle 8µS 
eine nee Messung, wenns sein muss, und dann, wenn das ganze halbwegs 
stabil ist, kann schalte ich den nächsten Kanal dazu?

von Bernd K. (bmk)


Lesenswert?

Moritz Nöltner schrieb:

> Und kann ich dem Einschaltproblem nicht dadurch begegnen, dass ich
> anfangs halt nicht gleich 100 % drauf gebe? Oder alternativ erstmal
> jeden Strang einzeln 'hochfahre'? So hab ich da die ersten µs alle 8µS
> eine nee Messung, wenns sein muss, und dann, wenn das ganze halbwegs
> stabil ist, kann schalte ich den nächsten Kanal dazu?

No chance. Ohne Begrenzung wird im Einschaltmoment der Strom SOFORT!
hochschießen und die LEDs killen.

a) Widerstand: begrenzt den Strom sofort auf den gewünschten Wert.
b) Drossel: Lässt den Strom langsam ansteigen und man kann abschalten,
wenn der gewünschte Strom erreicht ist und wieder zuschalten, wenn der
Strom wieder niedriger ist. So macht es ein Step-Down Regler als
Konstantstromquelle mit 2-Punkt Regelung. Beispiel:

http://www.mikrocontroller.net/articles/Datei:LED_Stromregler.png

von Moritz N. (mox-mox)


Lesenswert?

Hmm. schade. Dann werd ich wohl doch 6 cat4201 verwenden (brauchen 
weniger Platz auf nem Board, als die diskrete Schaltung.
Die lassen sich dimmen und begrenzen den Strom sicher auch wenn der AVR 
ausfällt.
Vielen Dank allen für die Antworten und die Links!

von Harald W. (wilhelms)


Lesenswert?

Moritz Nöltner schrieb:

>> Brauchst eine Spule zur Verstetigung des konstantstroms.
> @Alter Ego: Kann ich die nicht weglassen, und die LEDs gepulst
> betreiben?

...und wie willst Du den Strom begrenzen? Ich denke, Du must
noch einige Grundlagen der E-Technik pauken.
Gruss
Harald

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Bau einfach das hier nach:
http://www.fritzler-avr.de/HP/tipps/ksq.php

von Falk B. (falk)


Lesenswert?


von Stephan (Gast)


Lesenswert?

ich würde die Stromregelung auch einer Hardware überlassen, statt einem 
Programm.

von Moritz N. (mox-mox)


Angehängte Dateien:

Lesenswert?

Ich hab mir zu Herzen genommen, dass ich das Regeln lieber der Hardware 
überlassen sollte, und hab das in Schaltplan und Board integriert. 
Vielen Dank für die Tips!
Als Treiber für die Leuchtdioden verwende ich jetzt 6 x ZXLD1360, weil 
die ziemlich klein und effizient sind (Zwischenzeitig hatte ich CAT4101 
eingeplant, aber das scheinen lineare Regler zu sein und damit 
ineffizient, wenn man nicht genau die passende Versorgungsspannung hat 
).

Ausserdem ist auf dem Board jetzt noch ein Anschluss für eine 
Feuchtigkeitssensor wie im Giess-o-mat.

Wenn/Falls das ganze fertig aufgebaut ist, meld ich mich wieder. Oder, 
falls hier Rückmeldung kommt.

von Falk B. (falk)


Lesenswert?

@ Moritz Nöltner (mox-mox)

>    lampe_schaltplan.png

Schalte den Layer Pins ab, den brauch keiner, er  macht Schaltpläne 
extrem häßlich.

Die Transistoren könnten Basiswiderstände vertragen. Oder gleich MOSFETs 
nehmen.

Die Gatter von IC8 am AUSGANG auf GND zu legen ist keine gute Idee.

Ein wenig besser kann man den Schaltplan noch machen.

Schaltplan richtig zeichnen

von Moritz N. (mox-mox)


Angehängte Dateien:

Lesenswert?

Ok, vielen Dank für den Tip mit den Transistoren. Da war ich nicht 
sicher, ob ich das so machen kann, weil im Datenblatt des LED-Treibers 
explizit Bipolartransistoren empfohlen werden. Andererseits will ich 
nicht mit maximaler PWM-Frequenz dimmen.

Die Ausgangspins von IC6 (ich nehm an, das war gemeint) hab ich jetzt 
floating (gibts da ein gutes deutsches Wort für) gelassen, stimmt das 
so?

Und eines noch: Ich möchte gerne an einer Stelle (JP1) die 
Versorgungsspannung von 5V mit einem P-Channel MOSFET (AP2305BGN-HF-3, 
http://www.tme.eu/de/Document/2962a0528716670fae2446855109baac/AP2305BGN-3.pdf 
) direkt mit dem AVR schalten. Geht das so?
Im Datenblatt wird immer der Strom in Abhängigkeit von V_G angegeben; 
V_G ist negativ. Bedeutet das, dass diese Spannung relativ zum Drain 
angegeben ist?

Und zu guter letzt hab ich den Schaltplan aufgeräumt, elektrisch sollte 
aber alles gleich geblieben sein.

Link:
Schematik (Github): 
https://github.com/mox-mox/moxens_ceiling_lamp/raw/master/Zimmerlampe.sch
Board (Github): 
https://github.com/mox-mox/moxens_ceiling_lamp/raw/master/Zimmerlampe.brd

Viele Grüße,
Mox

von Dietrich L. (dietrichl)


Lesenswert?

Moritz Nöltner schrieb:
> Und eines noch: Ich möchte gerne an einer Stelle (JP1) die
> Versorgungsspannung von 5V mit einem P-Channel MOSFET (AP2305BGN-HF-3,
> http://www.tme.eu/de/Document/2962a0528716670fae2446855109baac/AP2305BGN-3.pdf
> ) direkt mit dem AVR schalten. Geht das so?

Der FET ist bei Dir falsch herum eingebaut. Source muss an +5V und Drain 
an JP1/1.

> Im Datenblatt wird immer der Strom in Abhängigkeit von V_G angegeben;
> V_G ist negativ. Bedeutet das, dass diese Spannung relativ zum Drain
> angegeben ist?

Nein, dass ist die Spannung zwischen Gate und Source. Und da Source an 
+5V gehört (s.o.) ist Ugs negativ.

Gruß Dietrich

von Moritz N. (mox-mox)


Lesenswert?

Oh mann, das hätte ich eigentlich echt selbst sehen können, dass der 
Transistor falsch rum sitzt. Ist korrigiert. Und damit erklärt sich dann 
der zweite Teil auch. Vielen Dank!

von Falk B. (falk)


Lesenswert?

@ Moritz Nöltner (mox-mox)

>Die Ausgangspins von IC6 (ich nehm an, das war gemeint) hab ich jetzt
>floating (gibts da ein gutes deutsches Wort für)

offen? Offene Ausgänge sind problemlos. Offene Eingänge bei CMOS eher 
nicht.


>gelassen, stimmt das so?

Ja.

von Moritz N. (mox-mox)


Lesenswert?

Offen ist ein wunderfeines Wort dafür!

von Moritz N. (mox-mox)


Lesenswert?

Hi,

ich möchte keine Forumsleichen exhumieren, aber dennoch möchte ich gerne 
denjenigen, die mir hier in dem Thread weitergeholfen (oder auch einfach 
nur so geantwortet) haben, wissen lassen, dass sie ihre Zeit nicht 
verschwendet haben. Ich bin noch an dem Projekt dran, mittlerweile habe 
ich eine zweite Version der Platine fertigen lassen, weil bei der ersten 
(weiter oben vorgestellten) ein paar Anschlüsse nicht gepasst haben, und 
entwickle gerade an der Firmware. Da das Ganze ein Freizeitprojekt ist, 
dauert es halt ziemlich lange, aber es ist nicht tot.
Den Entwicklungsstand kann -wer will- übrigens im zugehörigen Git-Repo 
anschauen:
https://github.com/mox-mox/moxens_ceiling_lamp

grüne Grütze,
mox

von Marius S. (lupin) Benutzerseite


Lesenswert?

Anstatt die ganzen Regler zu verbauen kann man die LEDs auch in Reihe 
schalten. Habe ich mal gemacht und funktioniert gut:

Beitrag "Moodlight mit Touchpad"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.