Forum: Mikrocontroller und Digitale Elektronik PWM von Raspi soll DC LEDs dimmen


von Ice R. (ascareth)


Lesenswert?

Hallo zusammen,

ich habe vor DC LEDs (Bauform: Einbaustrahler) mit dem Raspi zu dimmen. 
Und zwar so, dass mehrere Strahler gleichzeitig gedimmt werden, 
möglichst von Leuchtstärke 0 bis max und das stufenlos. Es sollen 5 
Stück a 5.5W sein, also etwa 420mA pro Stück.

Ganz kurz ein Einblick in das, was ich bis jetzt gemacht habe. Man 
müsste daran besser erkennen können als ich es möglicherweise zu 
erklären vermag, wie ich mir die Sache vorstelle. Vielleicht erkennt man 
auch Fehler in der Auswahl der Komponenten und kann direkt 
Verbesserungsvorschläge einwerfen.

1. Dieses hier habe ich nachgebaut.
https://tutorials-raspberrypi.de/programmieren-lernen-raspberry-pi-gpio-pwm/

Ziel war es, überhaupt erst einmal mit der Programmschnittstelle in 
Python in Kontakt zu kommen und um grundsätzlich in PWM einzusteigen. 
Von diesem Beispielnachbau benutze ich allerdings immer noch den 
Programmcode, denn ich nur etwas für meine Zwecke umschreiben musste.

2. Dieses hier habe ich nur mit einem einzigen MOSFET (IRLZ34N) 
nachgebaut, hingegen drei dort verwendeten. Außerdem habe ich keine 
LED-Kette sondern als Last nur einen einzigen 5.5W Strahler genommen.
https://dordnung.de/raspberrypi-ledstrip/

3. Hierüber lässt sich erkennen, wie man Interrupt-Methoden hinzufügt, 
um das Dimmen von außen über die GPIOs verwirklichen zu können.

Nun ja. Was die prinzipielle Funktionsweise angeht verhält sich die 
Sache so, wie ich es mir vorstelle.

Aber! Die Leuchte flackert und die geringst mögliche Beleuchtungsstärke 
ist viel zu hoch. Die Strahler lassen sich also nicht weit genug 
herunter dimmen. Es wirkt so, als ob der Duty Cycle gar nicht bis 0 % 
sondern nur bis gefühlte 50 % herunter gedimmt wird. Die Testausgaben in 
der Konsole zeigen aber, dass das definitiv nicht so ist, dass also der 
Duty Cycle also tatsächlich mittels Antasten der GPIOs bis auf 0 % 
herunter und entsprechend auch auf 100 % herauf getastet wird. Trotzdem 
scheint die Leuchtstärke nicht unter gefühlte 50 % gedimmt zu werden.

------------------------

Was jetzt die Art und Weise einer möglichen Lösung angeht, so ist es mir 
im Prinzip egal, wie ich das erreichen kann. Von mir aus reiße ich alles 
bisher Aufgebaute auseinander und baue eine vollkommen neue Steuerung 
mit dem Raspi auf, mit ansonsten vollkommen anderen Bauteilen.

Am Ende geht es mir darum, dass ich meine Einbaustrahler per App, 
Sprachsteuerung und Unterputztaster steuern kann, wobei der 
Unterputztaster in mein Schalterprogramm (Jung CD 500) passen soll. Der 
Grund aus welchem ich primär auf den Raspi als "Steuerzentrale" setzen 
möchte ist der, da ich immer noch davon überzeugt bin, dass sich damit 
meine Anforderungen an die Dimmersteuerung am ehesten umsetzen lassen. 
Alle fertigen von mir getesten Produkte waren jedenfalls nicht besser. 
Es ließ sich damit auch nicht weiter herunterdimmen, oder sie waren 
nicht per Sprachsteuerung oder per App steuerbar oder passten nicht in 
mein Schalterprogramm ...

Also vielleicht hat jemand einen Tipp, was ich machen kann, um wirklich 
auf 0 % Beleuchtungsstärke herunter zu dimmen, Steuerung per App und 
Sprache hinzubekommen und das alles über den Raspi, also mit GPIOs, also 
mit herkömmlichen Tastern steuerbar, damit ich die Taster aus meinen 
Schalterprogramm verwenden kann.

Gruß, Asca

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ein Raspi ist nun nicht gerade optimal fuer sowas wie PWM und Python nun 
auch nicht gerade die beste Sprache fuer Realtime. Also wuerd' ich das 
auftrennen: Das ganze App/Sprache/Wasweissich-Steuergedoens auf dem 
Raspi laufen lassen, und dann von dem aus ueber irgendein noch nicht so 
zeitkritisches Interface wie z.b. SPI/I2C/UART mit den "naggischen" 
Dimmerinfos zu irgendwelchen kleinen 8-Bit-µCs gehen, die daraus dann 
die PWM Ansteuerung fuer eine oder alle Lampen machen. Dann flackert da 
auch nix, wenn der Raspi mal kurz nachdenken/swappen oder sonstwas 
machen muss.
Mehr als 8-Bit PWM koennte auch helfen, weiter in Richtung kleine 
Hellikgeit zu kommen.

Gruss
WK

von Jens M. (schuchkleisser)


Lesenswert?

Du hast keine LEDs, du hast Leuchten.
Benutze LEDs und es geht.

von Scratchy (Gast)


Lesenswert?

Ice R. schrieb:
> Aber! Die Leuchte flackert und die geringst mögliche Beleuchtungsstärke
> ist viel zu hoch. Die Strahler lassen sich also nicht weit genug
> herunter dimmen. Es wirkt so, als ob der Duty Cycle gar nicht bis 0 %
> sondern nur bis gefühlte 50 % herunter gedimmt wird. Die Testausgaben in
> der Konsole zeigen aber, dass das definitiv nicht so ist, dass also der
> Duty Cycle also tatsächlich mittels Antasten der GPIOs bis auf 0 %
> herunter und entsprechend auch auf 100 % herauf getastet wird. Trotzdem
> scheint die Leuchtstärke nicht unter gefühlte 50 % gedimmt zu werden.

Kann an der Frequenz liegen oder an fehlendem R/C oder dass sich die 
Frequenz mit deinem Duty ändert.

In dem Video wird eine LED per Hand über PWM gedimmt und da flackert 
nichts.

https://www.youtube.com/watch?v=98si4uLcCpc

von Paul (Gast)


Lesenswert?

hmm war das nicht so das die Meisten dieser LED-leuchten, wenns nicht 
grad wirklich nur eine nackte LED ist, irgendeine Art von Steuer-chip 
enthalten und damit funktioniert das dimmen über PWM (nagel mich nicht 
fest aber wenn ich mich nicht irre veränderst du damit die Spannung die 
das Leuchtmittel abbekommt) nicht. Hab irgendwie noch im Hnterkopf es 
gibt auf yt nen paar Erklärungsvideos dazu z.B. von GreatScott, einfach 
mal nach suchen.

von Manfred (Gast)


Lesenswert?

Paul schrieb:
> hmm war das nicht so das die Meisten dieser LED-leuchten, wenns nicht
> grad wirklich nur eine nackte LED ist, irgendeine Art von Steuer-chip
> enthalten und damit funktioniert das dimmen über PWM (nagel mich nicht
> fest aber wenn ich mich nicht irre veränderst du damit die Spannung die
> das Leuchtmittel abbekommt) nicht.

Du hast es erkannt! Die hier verbauten LED-Strahler haben im Innenleben 
einen Schaltregler, der eine ordentliche Dimmung unmöglich macht.

von PittyJ (Gast)


Lesenswert?

Ich benutze immer digitale Potis über I2C. Einmal einstellen, fertig. 
Kein Flimmern, keine CPU-Last.
Die Dinger sind so billig, da ist die Zeit für die Entwicklung eines 
PWM-Algorithmus teurer.

von Ice R. (ascareth)


Lesenswert?

Erst einmal vielen Dank für die vielen Hinweise. Ich müsste mir da ein 
bisschen Zeit dafür nehmen, um im einzelnen Bezug auf jeden Beitrag 
nehmen zu können.

Eine Frage vielleicht schon jetzt: Wenn die "LEDs" meiner Einbaustrahler 
eigentlich keine LEDs sind, oder zumindest den "LEDs" in den 
Einbaustrahlern eine vorgeschaltete Elektronik eingebaut ist, und dies 
letztlich die Ursache für das Flackern ist, was für Einbaustrahler kann 
man dann nehmen, die praktisch "nackt" sind und sich ohne Flackern 
dimmen lassen, beziehungsweise: Gibt es solche überhaupt? Diesbezüglich 
steht aber auch die Frage PWM oder eine andere Lösung über I2C oder etc. 
im Raum, also so, dass man in diesem Fall vielleicht besser ganz auf PWM 
verzichtet und dann über I2C etwas baut, womit sich auch die 
marktüblichen Einbaustrahler dimmen lassen, welche ja eine 
vorgeschaltete Elektronik eingebaut haben? Etwas mit einem digitalen 
Poti wurde hier genannt.

Nur zum Verständnis: Könnte man eventuell "einfach" die vorgeschaltete 
Elektronik entfernen und dann ordentlich dimmen oder würde das Flackern 
dadurch bleiben, weil die dann nackten "LEDs" auch keine richtigen LEDs 
sind? Oder sind die "nackten" LEDs zumindest richtige LEDs und ließen 
sich diese zumindest theoretisch auch ordentlich über PWM dimmen?

Falls sich letztlich also Einbaustrahler grundsätzlich nicht ordentlich 
per PWM dimmen lassen, müsste ich also etwas über I2C machen, um 
irgendwelche am Markt erhältlichen Einbaustrahler über den Raspi dimmen 
zu können?

Ich würde grundsätzlich schon gerne den Raspi benutzen, weil ich mich 
damit einigermaßen auskenne und ich für das Zusammenspiel App <-> Lampen 
eine Lösungsvorstellung habe; ebenso wie für die Sprachsteuerung usw. 
Von mir aus kann das ganze auch über I2C laufen, um dann damit weitere 
Bauteile ansteuern zu können, die dann ihrerseits auf die Einbaustrahler 
geschaltet werden.

Hätte jemand von Euch vielleicht Konkrete Bauteileempfehlungen für eine 
Lösung über I2C? Über PWM scheint es ja mit den marktüblichen 
Einbaustrahlern nichts zu werden?

von Paul (Gast)


Lesenswert?

...also benutz doch einfach Mal die Inernetsuchmaschine deiner Wahl... 
einer der Ersten Treffer:
https://ledtipps.net/led-lampen-dimmen/#dimmbare-led-lampen

von Stefan F. (Gast)


Lesenswert?

Es gibt dimmbare Konstantstrom-Treiber für "nackte" LED, die man mit PWM 
ansteuern kann. Sie reagierten normalerweise recht träge, so dass ein 
Flackern weitgehend heraus gefiltert wird.

Da unser Auge logarithmisch auf Helligkeit reagiert, musst du den PWM 
Wert für jede Stufe durch den gleichen Wert dividieren (zum Beispiel 2):

100, 50, 25, 12, 6, 3, 1, 0

Wenn Nachkomma-Stellen funktionieren, könnten mehr Stufen möglich sein. 
Kannst du ja mal versuchen:

100, 50, 25, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625, 0,1953, 
0.09765, 0,048825, ...

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.