Forum: Mikrocontroller und Digitale Elektronik PWM Lüfter Steuerung mit ESP8266 Tacho Problem


von Tim (techniktim)



Lesenswert?

Moin,
ich bin leider mittlerweile ratlos. Ich versuche eine Universal 
Lüftersteuerungsplatine zu bauen und es funktioniert alles außer der 
Tacho der Lüfter.

Also kurz zusammengefasst. Der ESP prüft beim einschalten ob ein PWM 
Lüfter angeschlossen ist oder nicht.
Wenn PWM, dann nutzt der den PWM Pin der Lüfter und steuert diese. Über 
den Tacho der Lüfter zeigt er dann die RPM an. Funktioniert alles.
Wenn er keinen PWM Lüfter erkennt nutzt er ein MOSFET um die Lüfter über 
den 12V Pin zu steuern. Auch das funktioniert. Jetzt dreht aber der 
Tacho völlig durch. Er zeigt RPM Werte um die 50000-1000000 an. Wenn ich 
den Tacho abziehe wird der Lüfter plötzlich etwas langsamer. Also 
scheinbar zieht sich der Lüfter über den Tacho zusätzlich Strom und das 
verwirrt dann natürlich auch den RPM Zähler...
Habt ihr da Ideen? Ich habe versucht alles mögliche zu filtern oder mit 
Optokopplern zu arbeiten. Ich habe langsam keine Ahnung mehr, was ich 
machen soll. Im schlimmsten Fall muss ich eben das Tacho Feedback durch 
einen Boolean ersetzen, wenn der Lüfter über das MOSFET gesteuert wird.

Achso mit Optokopplern wird der Lüfter nicht langsamer, beim abziehen 
des Tacho Pins (scheint zumindest so). Aber die verrückten RPM Werte 
bleiben.

Ich habe die ESPHome Config und den groben Schaltplan angehängt. Beides 
noch nicht final fertig.
Da ich den MOSFET aus dem Schaltplan leider noch nicht habe teste ich 
mit einem TIP120, falls das relevant sein sollte.

Der Schaltplan bzw. das Board müsste mit EasyEDA geöffnet werden. 
Alternativ die pdf (Hier kein Board).

Ich danke schonmal im Vorraus.

von H. H. (hhinz)


Lesenswert?

Wenn du die Lüfter low-side schaltest, dann funktioniert der 
Tachoausgang nicht mehr.

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


Lesenswert?

Tim schrieb:
> Wenn er keinen PWM Lüfter erkennt nutzt er ein MOSFET um die Lüfter über
> den 12V Pin zu steuern.

So würde es funktionieren, du steuerst aber den Minuspol des Lüfters und 
damit liegt dort eben nicht mehr GND an. Das Ausgangssignal des Tachos 
bezieht sich auf den Minuspol des Lüfters, der nicht GND ist.

Aus Sicht des Mikrocontrollers liefert der Tacho nun Signale, die weit 
höher als 3,3V sind. Deswegen fließt ein Ableitstrom durch die internen 
ESD Schutzdioden des Mikrocontrollers. Das ust der Strom, der den Lüfter 
schneller laufen lässt, wenn der Tacho angeschlossen ist.

: Bearbeitet durch User
von Tim (techniktim)


Lesenswert?

Ohh...
Ja klingt logisch. Und ich Filter mich zu Tode.
Also brauche ich im Prinzip ein P-Channel MOSFET richtig?
Oder geht das irgendwie anders mit N-Channel FET?

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


Lesenswert?

Tim schrieb:
> Also brauche ich im Prinzip ein P-Channel MOSFET richtig?

Richtig.

von Wastl (hartundweichware)


Lesenswert?

Tim schrieb:
> Oder geht das irgendwie anders mit N-Channel FET?

Brauchst du hier nicht fragen. Lerne selbst:

Suchst du nach "mosfet high side switch mikrocontroller.net"
und findest ein paar erleuchtende Beiträge/Threads.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Weils nur etwas über 900 Byte sind, poste ichs mal wieder.

Freilaufdiode nicht vergessen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tim schrieb:
> Also brauche ich im Prinzip ein P-Channel MOSFET richtig?
Am Besten wäre ein Lüfter mit einem dedizierten PWM-Eingang für die 
Geschwindigkeit. Man erkennt die an den 4 Anschlüssen.

Denn wenn du die Versorgung per PWM über die Highside abschaltest, dann 
kann es bei einem 3-Draht Lüfter gut sein, dass keine Tachopulse mehr 
kommen, so lange keine Versorgungsspannung anliegt. Dann passiert das, 
was im Beitrag "Re: Bascom, AVR Lüftersteuerung, Falsche Drehzahl mit High-Side-PWM" beschrieben 
ist.


Und generell für die Zukunft merken:
1. es ist fast immer eine schlechte Idee, einem Bauteil die Masse 
wegzuschalten.
2. es ist garantiert immer eine ganz schlechte Idee, wenn von diesem 
Bauteil irgendwelche weiteren (Signal-)Leitungen in andere 
Schaltungsteile führen.

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

Tim schrieb:
> Der ESP prüft beim einschalten ob ein PWM
> Lüfter angeschlossen ist oder nicht.

Wie soll das gehen?
Kann der µC das Typenschild des Lüfters lesen?

Man kann vieleicht erstmal 12V anlegen und die PWM auf 75% und 50% 
setzen, ob der Tachoeingang darauf reagiert oder konstant bleibt.

Tim schrieb:
> Der Schaltplan bzw. das Board müsste mit EasyEDA geöffnet werden.
> Alternativ die pdf (Hier kein Board).

pdf ist o.k.
epro und yaml kann mein W11-PC nicht öffnen.

von Hack S. (hackspider)


Lesenswert?

Hi Tim,
wenn du einen PWM-Lüfter erkennst, auf welchen Wert setzt du PWM2?

Viele Grüße
    hackspider

von Tim (techniktim)


Lesenswert?

Peter D. schrieb:
> Man kann vieleicht erstmal 12V anlegen und die PWM auf 75% und 50%
> setzen, ob der Tachoeingang darauf reagiert oder konstant bleibt.

Ja, so in etwa mache ich das.
MOSFET wird auf 100% gesetzt, so dass volle 12V anliegen. Dann wird 0% 
PWM an den Lüfter gesendet und der Wert gespeichert. Dann wird 100% PWM 
an den Lüfter gesendet und wenn 100% PWM größer sind als 0% PWM, dann 
wird der Lüfter direkt per PWM gesteuert.

Warum so kompliziert?
Die meisten Lüfter drehen bei 0% PWM schon. Also kann ich nicht gucken 
ob Tacho>0 ist. Ich kann aber auch nicht davon ausgehen, dass 
Tacho>5000RPM nie ein PWM Lüfter ist. Einige Serverlüfter die ich habe 
drehen nämlich mit 6000RPM bei 0%PWM. Größere PC Lüfter wiederum kommen 
manchmal nicht über 3000RPM bei 100% PWM.

Die Erkennung funktioniert aber problemlos. Weil da dem Lüfter ja GND 
nicht weggenommen wird.

Die .yaml Datei kannst du mit irgeneindem Text-Editor öffnen. Zum 
Beispiel notepad.exe von Windows. Da steht aber nur die Config für den 
ESP drin. Für mein Problem eher irrelevant. Alle Pins und so weiter 
sieht man ja auch im Schaltplan.
Die epro Datei muss man wie gesgat mit EasyEDA öffnen. Aber da sieht man 
das gleiche wie in der pdf + Mein PCB layout.

von Tim (techniktim)


Lesenswert?

100% Sonst würde der Lüfter ja nicht drehen :D
Und ja, das Board kann nur eine Art Lüfter steuern, nicht 
unterschiedliche je nach PIN. Das brauche ich aber auch nicht.

von Rene K. (xdraconix)


Lesenswert?

Ich finde den Ansatz irgendwie komisch. Du brauchst doch bloß mit 100% 
PWM starten. Ließt die Drehzahl aus, dann senkst du die PWM herunter 
auf, was weiß ich, 75% - und schaust ob sich die Drehzahl nach unten 
korrigiert. Mehr brauchst das doch garnicht. Das ist doch kein 
Hexenwerk. Da ist es auch völlig wurscht ob der Lüfter 3.000rpm oder 
10.000rpm laufen kann. Du erkennst die Senkung...

Dazu kommt noch das manche Lüfter, gerade langsam drehende (BitFenix 
habe ich hier z.b. einen) 2 Pulse pro Drehung abgibt.

: Bearbeitet durch User
von Tim (techniktim)


Lesenswert?

Rene K. schrieb:
> Du brauchst doch bloß mit 100%
> PWM starten. Ließt die Drehzahl aus, dann senkst du die PWM herunter
> auf, was weiß ich, 75% - und schaust ob sich die Drehzahl nach unten
> korrigiert. Mehr brauchst das doch garnicht.

Naja genau das mache ich doch. Nur halt andersrum. Ich starte mit 0% und 
gehe auf 100%. Aber das Prinzip ist dasselbe. Ich gucke ob sich was 
verändert.
Meine Erste Idee war, ich setze PWM auf 0% und gucke ob sich überhaupt 
was dreht. Das wäre Software-technisch noch einfacher. Das geht aber ja 
wie gesagt nicht. Deswegen dieser "komplizierte" Vergleich. Wirklich 
kompliziert ist es auch nicht. Ich wollte nur erklären, warum ich eben 
überhaupt vergleiche.

von Tim (techniktim)


Angehängte Dateien:

Lesenswert?

Kannst du bitte mal gucken ob ich das so richtig gemacht habe. Ich habe 
leider kein P-Channel MOSFET zum testen da und bin noch ziemlicher 
Anfänger...
Geht nur um den "MOSFET PWM" Teil. Wenn nötig kann ich dir auch die BOM 
mit Links schicken.

von H. H. (hhinz)


Lesenswert?

Basiswiderstand ist unnötig klein, und der Spannungsregler wird 
Kondensatoren brauchen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Der BC547 (o.ä.) braucht auch keinen Pulldown an der Basis, da er den 
Pin durch den Basisstrom selber low zieht.

von Tim (techniktim)


Lesenswert?

Den Pulldown habe ich als Failsafe eingebaut. Falls irgendwas sein 
sollte, sollten die Lüfter immer mit 100% statt mit 0% drehen.

von Tim (techniktim)


Lesenswert?

Habe ich korrigiert, danke
Sonst passt alles?

von Rene K. (xdraconix)


Lesenswert?

Tim schrieb:
> Naja genau das mache ich doch. Nur halt andersrum. Ich starte mit 0% und
> gehe auf 100%. Aber das Prinzip ist dasselbe. Ich gucke ob sich was
> verändert.

Ich würde das genau andersrum machen. Das macht im übrigen jede 
Lüftersteuerung so andersrum. Bei 100% anfangen und dann nach unten 
regeln. Du willst / musst ja den Anfangswiderstand überwinden.

von Tim (techniktim)


Lesenswert?

Eigendlich ist es ja Aufgabe vom Hersteller des Lüfters sicherzustellen, 
dass er bei 0% PWM entweder garnicht dreht (0% PWM Mode) oder eben auf 
niedrigster möglicher Stufe.
Aber ja du hast Recht wer weiß was bei billig Lüftern oder alten Lüftern 
ist. Ich werde es umdrehen.
Danke :D

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.