Forum: Mikrocontroller und Digitale Elektronik PWM- Lüftersteuerung mit esp32 WROOM


von Dieter S. (dieter_s833)


Lesenswert?

Hallo zusammen, da ich zwar nicht ganz neu in Elektronik bin, aber 
trotzdem nicht genügend Wissen habe, frage ich einfach mal in die 
Community ;-)
Folgendes: Ich baue gerade einen neuen "Schaltschrank" auf, in dem meine 
LiFePo- Akkus drin sind. Nun habe ich schon an den Akkus Heizungen 
verbaut, die Temperaturgesteuert geheizt werden. Nun möchte ich aber 
direkt noch für den Sommer eine Lüftersteuerung mit 2 x Arctic F12TC PWM 
Lüftern ausstatten, die für die Solarladeregler den Luftzugang 
gewähren...
Die sollen mit einem weiteren Esp32 angesteuert werden, wenn bestimmte 
Temperaturstufen erreicht werden, z.B.: 35° 400RpM, 45° 800RpM usw....
Wie müsste ich das mit welchen weiteren Bauteilen verschalten und 
konfigurieren?
Vielen Dank im voraus ;-)

: Bearbeitet durch User
von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Im Anhang wie Intel sich damals gedacht hat wie diese Lüfter anzusteuern 
sind.

Dabei ein wenig Umdenken, das PDF beschreibt die Lüfter und nicht das 
"Mainboard".

Im Endeffekt musst du eine PWM (Idealerweise Open-Collector) mit etwa 
25kHz erzeugen.

von Dieter S. (dieter_s833)


Lesenswert?

Danke für die schnelle Antwort....
Nur steh ich jetzt da und seh den Wald vor lauter Bäumen nicht :-)
wie soll ich das mit nem Esp32 anstellen? Der zudem keinen 12v 500mA 
Ausgang hat ;-)) Sorry

von Kilo S. (kilo_s)


Lesenswert?

Εrnst B. schrieb:
> Im Endeffekt musst du eine PWM (Idealerweise Open-Collector) mit etwa
> 25kHz erzeugen.

Verwirr ihn nur noch mehr. ;-)


https://projecthub.arduino.cc/virtualblack/control-the-speed-of-a-pc-fan-by-pwm-f221c0

das muss er nur auf seinen ESP übertragen.

von Kilo S. (kilo_s)


Lesenswert?

Dieter S. schrieb:
> wie soll ich das mit nem Esp32 anstellen?

In dem du mit der PWM auf nen Logik Level MOSFET gehst und den die 12V 
schalten lässt.

von Εrnst B. (ernst)


Lesenswert?

Leider können deine Lüfter nicht über den PWM-Steuereingang komplett zum 
Stillstand gebracht werden. Deshalb brauchst du einen "High Side" 
Switch, der die 12V zum Lüfter An- und Abschalten kann (oder du lebst 
damit, dass die Lüfter immer laufen, eben auf minimal-Drehzahl wenn 
nicht gebraucht)

Das kann z.B. mit einem P-Kanal-FET und einem Transistor gemacht werden.
Wenn beide Lüfter "gleich" laufen sollen, reicht das einmal für beide.

Dann brauchst du das Steuersignal.
Dafür hat die Arduino-API auf dem ESP32 zwei Möglichkeiten, ein 25 
kHz-PWM-Signal zu erzeugen.
Dafür bietet sich die "LEDC"-Hardware im ESP32 an:
https://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/api/ledc.html
Wenn beide Lüfter "gleich" laufen sollen, reicht das auch einmal für 
beide.


Dann willst du die Drehzahl überwachen?
Dafür bietet der ESP32 auch ein passendes Hardware-Modul, den 
PulseCounter.
Leider ist der nicht Out-of-the-Box mit Arduino-Funktionen ansprechbar. 
d.H.: Selber machen oder nach einer passenden "Library" suchen.

Hier: Entweder beide Drehzahlen einlesen, oder nur einen und hoffen dass 
Baugleiche Lüfter bei gleichem Input auch ähnlich schnell drehen. Die 
Signale parallel schalten funktioniert nicht gut.

von Εrnst B. (ernst)


Lesenswert?

Kilo S. schrieb:
> das muss er nur auf seinen ESP übertragen.

Super. Dazu muss er die Register-Beschreibung vom AVR kennen, und von da 
aus rückwärts arbeiten...
Und das soll einfacher zu sein, als am ESP32 einfach dem "ledcAttach" 
eine Wunsch-Frequenz von 25000 zu übergeben? oder dem 
"analogWriteSetFrequency"?

Kilo S. schrieb:
> In dem du mit der PWM auf nen Logik Level MOSFET gehst und den die 12V
> schalten lässt.

Das ist falsch. Der PWM-Steuer-Eingang ist Open-Collector, verträgt 
üblicherweise 5V oder 3.3V. Da darf er nicht mit 12V dran gehen, da ist 
der Lüfter ganz schnell kaputt.

von Kilo S. (kilo_s)


Lesenswert?

Εrnst B. schrieb:
> Das ist falsch. Der PWM-Steuer-Eingang ist Open-Collector, verträgt
> üblicherweise 5V oder 3.3V. Da darf er nicht mit 12V dran gehen, da ist
> der Lüfter ganz schnell kaputt.

Kann bei PC Lüftern sein, ich hab hier einen etwas "Kräftigeren" der das 
klaglos mit macht und sich sogar auf 0 regeln lässt damit. Aus nem Alten 
Staubsaugerrobotter, als absaugung am 3D Drucker.

von Dieter S. (dieter_s833)


Lesenswert?

Danke für die Hilfe! hab noch einen atmega da und werde mich daran 
versuchen:-) Melde mich dann zurück...

von Εrnst B. (ernst)


Lesenswert?

Kilo S. schrieb:
> Kann bei PC Lüftern sein, ich hab hier einen etwas "Kräftigeren" der das
> klaglos mit macht und sich sogar auf 0 regeln lässt damit.

Mag ja sein, hier geht es um PC-Lüfter mit 4-Pin-Anschluss, also mit 
PWM-Steuereingang.
Sogar genau das Model wurde genannt (Arctic F12TC PWM).

Und der Eingangspost ließt sich, als wollte Dieter auch die Drehzahl 
auswerten. Das geht schwierig, wenn du den Bezugspunkt für das Signal 
ständig per Low-Side PWM änderst.
Deswegen hab ich für das Ein/Aus-schalten des Lüfters einen 
High-Side-Switch vorgeschlagen.

von Kilo S. (kilo_s)


Lesenswert?

Εrnst B. schrieb:
> Deswegen hab ich für das Ein/Aus-schalten des Lüfters einen
> High-Side-Switch vorgeschlagen.

Als LL-Fet teuer und gar nicht so häufig anzutreffen. Die auswahl an 
LL-N-Channel ist Größer.

von Εrnst B. (ernst)


Lesenswert?

Kilo S. schrieb:
> Als LL-Fet teuer und gar nicht so häufig anzutreffen. Die auswahl an
> LL-N-Channel ist Größer.

Εrnst B. schrieb:
> Das kann z.B. mit einem P-Kanal-FET und einem Transistor gemacht werden.

Der P-Kanal-FET braucht nicht Logic-Level zu sein, der kriegt volle -12V 
ans Gate.

Zum Ansteuern vom P-Kanal tut's ein kleiner NPN oder Kleinsignal-FET, 
der dann N-Kanal und Logic-Level sein muss.

von Kilo S. (kilo_s)


Lesenswert?

Εrnst B. schrieb:
> Zum Ansteuern vom P-Kanal tut's ein kleiner NPN oder Kleinsignal-FET,
> der dann N-Kanal und Logic-Level sein muss.

Mehr schaltungsaufwand.

Aber gut, erneut Praktiziere ich was scheinbar nicht sollte aber 
funktioniert.

Seit 04.03.24 24/7. Noch is nix kaputt, schauen wie lange es noch gut 
geht.

von Εrnst B. (ernst)


Lesenswert?

Kilo S. schrieb:
> Aber gut, erneut Praktiziere ich was scheinbar nicht sollte aber
> funktioniert.

Du löst ein völlig anderes Problem mit völlig anderer Hardware.
Niemand behauptet, das ginge nicht.
Hat aber einfach nix mit dem Thema hier zu tun.

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

@Dieter:

Die Skizze im Anhang zeigt in etwa, wie das mit dem ESP32 verschaltet 
werden könnte.

Q2 kannst du eventuell weglassen und das Signal direkt verbinden. Aber: 
Wenn der Lüfter an dem Pin intern auf 5V hochzieht, landen die am 
ESP-Pin.

R2/Tacho-Pin Beschaltung kannst du weglassen, wenn du mit dem ESP die 
Drehzahl nicht messen willst.

Zweiten Lüfter kannst du mit Pins 1,2 und 4 Parallelschalten, Pin 3 beim 
zweiten offen.

Genauer Wert der Widerstände ist unkritisch. Q1 muss nicht schnell 
Schalten können.

Mosfet-Typen hab ich willkürlich gewählt. Für Alternativen darauf 
achten, dass Q2 und Q3 3.3 Volt taugliche LogicLevel-Typen sind.
Für Q1 tut's so ziemlich jeder P-Kanal-FET der den Strom der Lüfter 
aushält.

Einen Elko 12V<->GND könntest du noch ergänzen.

Und manche planen gerne noch einen kleinen Vorwiderstand vor den 
Mosfet-Gates ein.

von Kilo S. (kilo_s)


Lesenswert?

Sperren die fet's ohne Pulldown sicher? Oder war das eher nur "auf die 
schnelle"?

Εrnst B. schrieb:
> Du löst ein völlig anderes Problem mit völlig anderer Hardware.

Naja, es ist ein ESP8266.
HI!

Meine Umsetzung ist prinzipiell die gleiche, der Unterschied ist nur 
mein Lüfter.

Aber ansonsten sieht meine Schaltung ähnlich aus wie deine, nur wenn ich 
den PWM Ausgang auf 0 Ziehe ist eben auch aus, ich kann mir sowohl 
Treiber als auch schalter einsparen.

Des wars aber auch schon an "unterschied".

Ich hab halt "nur" Q2 mit Pulldown am Gate.

Aber OK, ich löse das gleiche Problem völlig anders, verwende dabei nur 
das gleiche Prinzip.

Wo war eigentlich gleich nochmal das Problem?

Εrnst B. schrieb:
> Das geht schwierig, wenn du den Bezugspunkt für das Signal ständig per
> Low-Side PWM änderst.

Wo is'n das Problem? Bezugspunkt GND ist doch über die Anschlüsse der 
Versorgung immer da, wenn der Lüfter über den PWM Eingang nicht gestoppt 
werden kann und das notwendig ist, würde ich nen Lüfter nehmen der das 
kann. Außerdem was willst da Messen? Wenn ich den Lüfter im Programm 
"aus" mache, ist es mir egal wie lange der nachdreht, so lange mein 
Lowside Switch auf aus ist gibt's keine Drehzahl zu messen, was nicht an 
ist kann nicht drehen und somit ist mir die Drehzahl für den Moment 
wurscht.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Ich würde als erstes abklären, ob die Lüfter überhaupt regelbar sind, 
und wenn ja: wie.

Dass man deren Stromversorgung einfach durch eine PWM ersetzen kann ist 
nämlich nicht selbstverständlich. Und der regelbare Bereich ist nicht 
beliebig.

Alles Weitere kommt danach.

von Εrnst B. (ernst)


Lesenswert?

Kilo S. schrieb:
> Sperren die fet's ohne Pulldown sicher?

Macht's einen Unterschied? Q1 hat seinen Widerstand zu Source.
Wenn der ESP beim Booten mal mit den Pins wackelt, wackelt vielleicht 
auch mal das Lüfterblatt etwas hin und her. So what?

Kilo S. schrieb:
> Aber ansonsten sieht meine Schaltung ähnlich aus wie deine,

Du willst einen N-Kanal-LL Fet nehmen, und den vermutlich in der 
GND-Zuleitung zum Lüfter.
d.H. bei dir sind so ziemlich alle Bauteile anders, was bei einer 
Schaltung mit nur einer Handvoll davon auch nicht weiter verwunderlich 
ist.

Kilo S. schrieb:
> Bezugspunkt GND ist doch über die Anschlüsse der
> Versorgung immer da,

Bezugspunkt der Tacho-Signale, die der Lüfter ausgibt, ist sein 
schwarzes Kabel, Pin1 am Stecker.
Der Lüfter hat den Schaltplan nicht gelesen, und weiß nicht ob dieses 
Kabel fest an GND liegt, oder am Drain eines FETs mit PWM...

Zeig doch mal wie du das Tachsignal aus einem Lüfter mit deiner 
Ansteuerung zurück in den ESP kriegst.

Kilo S. schrieb:
> wenn der Lüfter über den PWM Eingang nicht gestoppt
> werden kann [...]
> würde ich nen Lüfter nehmen der das
> kann.

Habe ich bereits in meiner zweiten Antwort erwähnt, dass seine Lüfter 
das nicht können. Arctic stellt die genannte Lüfter-Serie auch schon 
eine Weile nicht mehr her, deshalb gehe ich davon aus, dass Dieter hier 
Altbestand verwerten will, und nicht neue Lüfter kaufen möchte.

Aber ja, mit "intelligenteren" Lüftern wird die Schaltung einfacher.

Oder wenn er keinen kompletten Stillstand braucht, auch das habe ich 
erwähnt.

Mit einem "dummen" 2-poligem Lüfter wird's auch einfacher, so ohne 
integrierte Drehzahl-Steuerung und ohne Tacho-Output. Da kann man ohne 
Probleme eine Low-Side-PWM aus einem LL-N-FET verwenden, exakt wie von 
dir vorgeschlagen.

Das klappt auch bei vielen der 4-Poligen PC-Lüfter, wenn man die zwei 
Zusatz-Pins ignoriert, aber: die haben dann u.U. einen reduzierten 
Regelbereich, Probleme bei niedrigen Drehzahlen loszulaufen oder 
niedrige Drehzahlen stabil zu halten, die über den PWM-Steuereingang 
kein Thema wären.

von Kilo S. (kilo_s)


Lesenswert?

Εrnst B. schrieb:
> Du willst einen N-Kanal-LL Fet nehmen, und den vermutlich

Vermuten und glauben kannste in der Kirche!

NOCHMALS: Ich mach es genau so wie in deinem Schaltbild, brauche dabei 
allerdings nur einen (und nein bei mir ist es kein LL-Fet) fet. Das ist 
nen N-Fet der einfach in der PWM Leitung sitzt und mit der PWM des ESP 
Gen GND schaltet!

Εrnst B. schrieb:
> Zeig doch mal wie du das Tachsignal aus einem Lüfter mit deiner
> Ansteuerung zurück in den ESP kriegst.

Abgesehen davon das ich das nicht mache weil ich es nicht brauche, 
nochmal für ganz "leseresistente" GND und VCC bei meine Lüfter sind 
DAUERHAFT verbunden. Heißt ich kann sogar problemlos "nachsehen" ob auch 
wirklich Stillstand herrscht.

von Εrnst B. (ernst)


Lesenswert?

Kilo S. schrieb:
> Abgesehen davon das ich das nicht mache weil ich es nicht brauche,
> nochmal für ganz "leseresistente" GND und VCC bei meine Lüfter sind
> DAUERHAFT verbunden. Heißt ich kann sogar problemlos "nachsehen" ob auch
> wirklich Stillstand herrscht.

Na super. Endlich rückst du damit raus. Dann ist ja alles fein.

Warum hast du dann das hier geschrieben?

Kilo S. schrieb:
> In dem du mit der PWM auf nen Logik Level MOSFET gehst und den die 12V
> schalten lässt.

Daher kommt die Verwirrung...
Das liest sich, als würdest du die 12V-Versorgung des Lüfters per PWM 
schalten, und mit einem Logic-Level-FET wohl LOW-Side.

Hättest du auch früher aufklären können, dann hätten wir uns die ganze 
Diskussion sparen können.

von Kilo S. (kilo_s)


Lesenswert?

Εrnst B. schrieb:
> Das liest sich, als würdest du die 12V-Versorgung des Lüfters per PWM
> schalten

Stimmt das sorgte für Verwirrung.
Hab ich mich unglücklich ausgedrückt.

Bei mir ist's im Prinzip das gleiche wie du gezeigt hast, ja minimal 
anderer Aufbau weil ich die GPIO mit halbwegs schnellen OK schütze. Nach 
den OK kann ich dann auf LL verzichten, da werkeln gerade fet's von 
alten Mainboards weil das keine "festen" Ausgänge sind und nicht immer 
klar ist wie viel Strom ich pro Ausgang Brauch. Mal ein Relais, mal 
Lüfter oder sogar ein Motor.

Aber ansonsten, der fet in der PWM Leitung schaltet gegen GND, wie du es 
gezeigt hast.

von Manfred P. (pruckelfred)


Lesenswert?

Εrnst B. schrieb:
> Mosfet-Typen hab ich willkürlich gewählt. Für Alternativen darauf
> achten, dass Q2 und Q3 3.3 Volt taugliche LogicLevel-Typen sind.

Kilo S. schrieb:
> Sperren die fet's ohne Pulldown sicher? Oder war das eher nur "auf die
> schnelle"?

Spielst Du jetzt den TO?

An die N-FETs gehören natürlich Widerstände G-S, für den Fall, dass der 
µC-Ausgang offen ist. FETs sind an dieser Stelle der übliche Unfug, da 
gehören simple NPN BC_irgendwas hin. Es fließt kaum Strom, 4k7..10k vor 
die Basis und gut.

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.