Hallo zusammen,
da der China-Arduino-Klon noch auf seiner langen Reise ist und mich das Thema PWM mit dem RPi nicht in Ruhe gelassen hat, habe ich mich gestern Abend mal drangesetzt. Mein Thermometeraufbau ist prinzipiell sehr ähnlich, allerdings habe ich die Stromversorgung anders geregelt:
- Ich hatte keine Lust auf 230V im Gehäuse und habe mir ein 12V-Schaltnetzteil besorgt.
- Somit kommen im Gehäuse lediglich 12V an. Die Versorgung läuft über eine Buchse.
- Ein DC-DC-Stepdownwandler (Modul von ebay auf Basis von LM2596S) macht aus den 12V 5V.
- Die Massen habe ich natürlich verbunden.
- Der Raspberry wird aus den 5V gespeist, der Lüfter aus den 12V.
Die normale GPIO-Bibliothek kann definitiv kein 25kHz-PWM. Dafür gibt es die RPIO-Bibliothek, die die GPIO-Funktionen 1:1 ersetzen kann ("import RPIO as GPIO" und dann muss kein weiterer Code verändert werden) und zusätzlich weitere Funktionen bietet. Der Lüfter hängt an Masse und 12V, PWM an bspw. an Pin4 des Raspberry. Den Tacho habe ich frei gelassen. Dann mittels GPIO einen 4000µs-Subcycle erzeugt, dem 100 Pulse à je 0-39 µs hinzugefügt werden. Somit lässt sich der Lüfter (Arctic F9 PWM) bis zum Stillstand bzw. Vollgas regeln.
Der Lüfter läuft auch an, wenn das PWM-Kabel nicht verbunden ist (Sicherheitsfeature?!). Bei Pulsen von 0-2µs läuft der Lüfter aus diesem Grund auf Vollgas. 3 ist Stillstand, ab da geht's dann immer schneller. Sicherheitshalber werde ich die Tage noch ein IRF3708 einbauen, der den Lüfter komplett abschalten kann.
Fazit: 25kHz-PWM ist ohne weitere Bauteile mit der RPi möglich. Nachteil ggü Arduino-Lösung: den Code muss man ein wenig anpassen.
Viele Grüße
da der China-Arduino-Klon noch auf seiner langen Reise ist und mich das Thema PWM mit dem RPi nicht in Ruhe gelassen hat, habe ich mich gestern Abend mal drangesetzt. Mein Thermometeraufbau ist prinzipiell sehr ähnlich, allerdings habe ich die Stromversorgung anders geregelt:
- Ich hatte keine Lust auf 230V im Gehäuse und habe mir ein 12V-Schaltnetzteil besorgt.
- Somit kommen im Gehäuse lediglich 12V an. Die Versorgung läuft über eine Buchse.
- Ein DC-DC-Stepdownwandler (Modul von ebay auf Basis von LM2596S) macht aus den 12V 5V.
- Die Massen habe ich natürlich verbunden.
- Der Raspberry wird aus den 5V gespeist, der Lüfter aus den 12V.
Die normale GPIO-Bibliothek kann definitiv kein 25kHz-PWM. Dafür gibt es die RPIO-Bibliothek, die die GPIO-Funktionen 1:1 ersetzen kann ("import RPIO as GPIO" und dann muss kein weiterer Code verändert werden) und zusätzlich weitere Funktionen bietet. Der Lüfter hängt an Masse und 12V, PWM an bspw. an Pin4 des Raspberry. Den Tacho habe ich frei gelassen. Dann mittels GPIO einen 4000µs-Subcycle erzeugt, dem 100 Pulse à je 0-39 µs hinzugefügt werden. Somit lässt sich der Lüfter (Arctic F9 PWM) bis zum Stillstand bzw. Vollgas regeln.
Der Lüfter läuft auch an, wenn das PWM-Kabel nicht verbunden ist (Sicherheitsfeature?!). Bei Pulsen von 0-2µs läuft der Lüfter aus diesem Grund auf Vollgas. 3 ist Stillstand, ab da geht's dann immer schneller. Sicherheitshalber werde ich die Tage noch ein IRF3708 einbauen, der den Lüfter komplett abschalten kann.
Fazit: 25kHz-PWM ist ohne weitere Bauteile mit der RPi möglich. Nachteil ggü Arduino-Lösung: den Code muss man ein wenig anpassen.
Viele Grüße