Forum: Mikrocontroller und Digitale Elektronik LEDs an Raspberry PI flackern


von Roland N. (eroli)


Lesenswert?

Hallo zusammen,

ich schalte mit einem Raspberry PI (unter Anderem) einen 
WRGB-LED-Streifen. Nun beobachte ich schon seit Längerem, dass die LEDs 
periodisch flackern, vermutlich verursacht durch betriebssystembedingte 
(Windows IoT Core) Auslastungsschwankungen (Software-PWM).

Der Streifen wird durch entsprechende Logic-Level-MOSFETs betrieben und 
ich vermute, dass es am einfachsten wäre, die Steuerspannung vor den 
Eingängen der MOSFETs mit Hilfe eines Kondensators zu glätten. Sehe ich 
das richtig? Und wenn es so einfach wäre: Könnt ihr mir eventuell eine 
Größenordnung empfehlen?

Ich freue mich über euer Feedback :-)

Beitrag #5342809 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

Wenn du das PWM Signal glättest, ist es kein PWM mehr. Deine 
Transistoren steuern die LED Streifen dann analog an und verheizen eine 
Menge Energie, die abgeführt werden muss.

Du musst für so etwas hardware-PWM benutzen. Eventuell den Raspberry Pi 
durch einen weiteren Mikrocontroller unterstützen.

von Roland N. (eroli)


Lesenswert?

Schon klar, dass das die PWM ebenfalls glättet. Es ist nun aber so, dass 
ich ungefähr alle 8s ein Flackern wahrnehmen kann. Der Kondensator 
könnte nun doch genau diesen "Flackerfall" abmildern, auch wenn ich 
dadurch die komplette PWM ein wenig ausbremse. Oder hab ich einen 
Denkfehler?

von Stefan F. (Gast)


Lesenswert?

Du hast einen Denkfehler, ich habe ihn bereits erklärt.

von Roland N. (eroli)


Lesenswert?

Stefan U. schrieb:
> Du hast einen Denkfehler, ich habe ihn bereits erklärt.

Dann verstehe ich das nicht gänzlich. Trifft dieser Denkfehler auch zu, 
wenn spannungsgesteuerte MOSFETs eingesetzt werden? Warum sollte man 
hier die Steuerspannung nicht geringfügig glätten können?

von Jörg R. (solar77)


Lesenswert?

Roland M. schrieb:
> Warum sollte man hier die Steuerspannung nicht geringfügig glätten können?

Auch das hat Stefan bereits erklärt...

Stefan U. schrieb:
> Wenn du das PWM Signal glättest, ist es kein PWM mehr. Deine
> Transistoren steuern die LED Streifen dann analog an....


Roland M. schrieb:
> Nun beobachte ich schon seit Längerem, dass die LEDs
> periodisch flackern...

Hat es schon einmal funktioniert? Ist die Stromversorgung in Ordnung?
Sind die GND-Verbindungen zwischen den einzelnen Komponenten in Ordnung?

von Roland N. (eroli)


Lesenswert?

Naja, in dieser Verbindung mit dem Raspberry Pi hat es schon immer 
geflackert. Stromversorgung, Komponenten und GND-Kontaktierung schließe 
ich aber aus, da das flackern so periodisch ist. Insbesondere wenn man 
die Steuersoftware debuggt, verschlimmert sich das Flackern sehr stark. 
Ich bin mir daher recht sicher, dass die Software der Auslöser ist.

> Wenn du das PWM Signal glättest, ist es kein PWM mehr. Deine
> Transistoren steuern die LED Streifen dann analog an....

Dann könnte man also die Ausgangsspannung hinter den MOSFETs glätten?

von Stefan F. (Gast)


Lesenswert?

Er hat ein Softwareproblem: Das Betriebssystem, das will er aber sicher 
nicht weg lassen.

Roland, da siehst du mal, warum jeder normale PC durch zahlreiche 
Mikrocontroller unterstützt wird. Zum Beispiel in der Maus, in der 
Tastatur, im Drucker. Selbst die Audio Schnittstelle hat einen 
eigenständigen Chip.

Immer wenn es auf  Timing ankommt, kommst du mit dem Haupt-Prozessor 
nicht weit.

von Stefan F. (Gast)


Lesenswert?

> Dann könnte man also die Ausgangsspannung hinter den MOSFETs glätten?

Arrrrgh, nein! Denn auch dann ist es kein PWM Signal mehr.

PWM ist eben nicht glatt, sondern rechteckig. Da soll es ganz bewusst 
nur zwei Zustände geben: Spannung 100%=an und 0%=aus.

von Roland N. (eroli)


Lesenswert?

Hallo zusammen,

na gut, dann verwerfe ich diesen Gedanken.

Es stört mich im Moment zwar nicht sehr, aber ich werde dann bei der 
nächsten Überarbeitung wohl auf PWM-Controller wechseln. Der Aufwand die 
Software umzubauen dürfte sich sicherlich in Grenzen halten...

Gibt es denn sonst noch irgendwelche anderen Möglichkeiten das Flackern 
abzuschwächen? Abgesehen von PWM-Controllern?

von Stefan F. (Gast)


Lesenswert?

Glühlampen verwenden - sorry, eine andere realistische Möglichkeit sehe 
ich nicht.

von Alex G. (dragongamer)


Lesenswert?

Bei Unregelmäßigkeiten im Abnstand mehrerer Sekudnen gibt es 
elektronsich wohl in der Tat keine sinnvolle Möglichkeit.

Software-PWM ist einfach suboptimal. Für Servos ist das noch manchmal 
brauchbar. Für LEDs aber nicht. Wegen der niedrigen Frequenz wird das, 
auch wenn das OS nicht dazwischen funkt, generell zum Flimmern 
tendieren. Besonders im Augenwinkel.

Benutz einfach so ein Board: 
https://www.ebay.de/itm/PCA9685-16-Kanal-Driver-Servomotor-Treiber-Modul-PWM-I2C-Arduino-Raspberry-Pi/282818852651?hash=item41d951372b:g:ta8AAOSwDFBaOprd
(Wenn aus China, gibts die sogar noch günstiger).

Von Adafruit gibt es dafür ein support tutorial: 
https://learn.adafruit.com/adafruit-16-channel-servo-driver-with-raspberry-pi/hooking-it-up

Deine Mosfet-Schaltung kannst du dann einfach an den PWM Ausgang des 
Boards hängen.

Falls du dir über Lichteffekte Sorgen machst - die I2C Verbindung ist 
schnell genug dafür! Habe ich selbst schon dafür genutzt.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

@Roland

das hast Du noch nicht verstanden, warum das Glätten keinen Sinn macht, 
oder?

1. PWM schaltet die LEDs in einer höheren Frequenz ein/aus, damit das 
Auge sie als dunkler wahrnimmt obwohl sie während der on-Zeit eigentlich 
zu 100% leuchten. Das macht man deshalb mit ein paar 100Hz oder höher

2. da Du das flackern mit den Augen siehst tut es das offensichtlich mit 
einer Frequenz unter 20-25Hz, also viel langsamer als die PWM Frequenz.

3. wenn du einen Filter einsetzt, der die 25Hz rausnimmt, sind 
automatisch auch die 1000Hz eliminiert, die PWM ist in eine 
Gleichspannung umgewandelt.

Das kann man grundsätzlich machen, aber das ist ein anderes, deutlich 
aufwändigeres Prinzip, die Konstantstromquelle.
Und das Kernproblem dabei ist dabei, dass alle Leistung, die Du von den 
LEDs nimmst im Schalttransistor oder in Deinem Filter als Wärme verheizt 
wird und das zerstört Dir ggf schnell die Bauteile, je nachdem wieviel 
Strom benötigt wird.

Deshalb: wenn Du PWM machen möchtest, kannst Du das mit den Filter 
vergessen.

: Bearbeitet durch User
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.