Forum: Mikrocontroller und Digitale Elektronik LED Dimmer PWM gleichmäßig?


von Hannes H. (hannesf)


Lesenswert?

Hey,

ich habe hier einen kleinen Controller,  an dem ein Mosfet treiber 
hängt. Per PWM mache ich eine 12V LED Leuchte extrem langsam heller / 
dunkler (über den Zeitraum von 5 minuten bis zu einer Stunde).

Leider sieht man die Stufen, die ich per PWM erzeugen kann - vor allem 
bei geringer Helligkeit. Das ganze soll so smooth wie nur irgendwie 
ablaufen!

Was kann ich tun? Elektronisch? Softwaretechnisch? Oder garnicht per PWM 
sondern ganz anders?

Vielleicht hat ja jemand ein ähnliches Problem schonmal besiegt?!



Vielen Dank schonmal im Voraus!

Hannes

von Stefan F. (Gast)


Lesenswert?

Hannes H. schrieb:
> Was kann ich tun?

16bit PWM benutzen und berücksichtigen, dass das Auge logarithmisch 
reagiert. Das heißt: Mit steigender Helligkeit, müssen die 
Zeitabschnitte kürzer werden oder die Sprünge größer (aber letzteres das 
wolltest du ja gerade vermeiden).

von Thomas E. (thomase)


Lesenswert?

Wie schon geschrieben, müssen die Werte logarithmisch gesteigert werden.
Beispiele mit den passenden Zahlenwerten findest du hier:

https://www.mikrocontroller.net/articles/LED-Fading

von Wolfgang (Gast)


Lesenswert?

Hannes H. schrieb:
> Leider sieht man die Stufen, die ich per PWM erzeugen kann - vor allem
> bei geringer Helligkeit. Das ganze soll so smooth wie nur irgendwie
> ablaufen!

Das ist der falsche Ansatz und unnötig teuer.

Sobald du einen Controller einsetzt, bist du bei einer stufenweisen 
Änderung der Helligkeit. Alles andere wäre falsche Theorie.
Überlege dir also, wie groß die Stufen sein dürfen und wie das mit 
deinem "kleinen Controller" umsetzbar ist.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

die Stufen wirst Du immer haben. Aber als Trick könntest Du noch einen 
Tiefpass großer Zeitkonstante nachschalten, der die Sprünge verschleift, 
so daß man das Umschalten nicht so deutlich sieht.

mfG

von Εrnst B. (ernst)


Lesenswert?

Du kannst mit der PWM-Auflösung tricksen, in dem du mit einer "zweiten 
PWM" die erste zwischen Sollwert und Sollwert+1 schwanken lässt.

z.B. 10 bit in Hardware-PWM mit ~20kHz, 5 extra Bit in Software oben 
drauf.

Deine PWM könnte dann 10 mal mit Wert 333 laufen, 22 mal mit Wert 334, 
dann wieder 10 mal mit 333 usw.


Jetzt "flackert" deine Lampe zwar mit ~600 Hz, aber nur zwischen zwei 
sehr ähnlichen Helligkeitsstufen.

Ausprobieren, und dann einen Mittelweg zwischen Auflösung beim Faden und 
sichtbarem Geflacker wählen.

von Minimalist (Gast)


Lesenswert?

Exakt! Nennt man im englischen auch Dithering/dithern, nur fällst du ein 
Stichwort zum recherchieren brauchst.

von Wolfgang (Gast)


Lesenswert?

Εrnst B. schrieb:
> Deine PWM könnte dann 10 mal mit Wert 333 laufen, 22 mal mit Wert 334,
> dann wieder 10 mal mit 333 usw.

Damit wird die Modulationsfrequenz nur unnötig niedrig.
Nicht so flackerig wird in dem Fall das Dithern bei einer Folge
1
333+0 +1 +1 +0 +1 +1 +0 +1 +1 +0 +1 +1 +0 +1 +1 +1
 und dann wieder von vorne. (Stichwort Bresenham Algorithmus)

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.