Raspberry Pi Zero: LED flackert. Wie LED mit PWM ansteuern?
Hallo,
ich habe einen Raspberry Pi, mit dem ich einen LED-Streifen ansteuern will. Der Streifen wird mit einen MOSFET angesteuert und somit wird der Gate des MOSFET durch eine PWM-Signal des Raspberry Pi angesteuert (Software-PWM).
Leider flackert die LED sehr und ich vermute, dass das PWM-Singal nicht stabil vorliegt. Dies könnte daran liegen, dass der Pi viele andere Dinge tut und daher gut ausgelastet ist. Generell ist die Ansteuerung der LEDs nur eine Tätigkeit, die eigentlich keine große Rechenleistung benötigt (falls ein Hardware-PWM genutzt wird). Gibt es eine Möglichkeit dieses Problem zu lösen?
Idee 1: Ein Hardware PWM, der vom Raspberry angesteuert werden wird.
Idee 2: Ein Kondensator zwischen Plus und GND bei dem LED-Streifen. Hierduch könnte die Spannung anstatt durch Pulsen in ein "Analog-Signal" umgewandelt.
Idee 3: Die Hardware PWM des Pis zu nutzen. (Scheint aber schwierig setzbar zu sein.) Ich will aber bei Python bleiben.
2 Antworten
Üblicherweise wird so etwas mit einem Timer-Interrupt gelöst. Ich weiss nicht, ob das mit Python möglich ist, meine Sprache ist C.
Der (kurze...) Code des Interrupt Callbacks wird dann immer schön regelmäßig ausgeführt, egal was nebenher so alles passiert.
Wenn ich das hier vom Überfliegen richtig verstehe, gibt es zumindest die Möglichkeit Callbacks für GPIO-Interrupts in Python zu realisieren, insofern nehme ich mal an, dass es auch für Timer-Interrupts möglich ist:
https://raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio
https://raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio-part-2
https://raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio-part-3
Hallo, danke für den Hinweis.
In meinen Python-Script habe ich bereits einen Interrupt verwendet. Das scheint aber Software-Lösung zu sein: Das ist halt anders als mit einen Mikrocontroller.
Meine Lösungungsansatz ist nun folgender: Ich kaufe dimmbaren Controller für die LEDs, welcher über 433 MHz angesteuert wird. Ich tracke das Signal mit einen Empfänger und kann es über den Pi ansteuernt. So entbinde ich den Pi von seinen PWM-Aufgaben, damit er Zeit für wichtiges hat.
Vielleicht reicht die Steuer - Spannung (vom Pi) am FET nicht aus/bricht ein, um ihn komplett durchzuschalten. Manche FETs benötigen 10 Volt um durchzuschalten (und schalten bei zb. 4Volt ab..), dann wäre gegebenenfalls ein FET - Treiber nötig.