PWM Lüfter Steuerung mit ESP8266 Tacho Problem

#7865243
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.

Gast #7865257
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.

Moderator (Firma: Titel) Persönliche Seite #7865421
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.
#7865424
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.

#7865835
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.

#7865943
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.

#7867408
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.

#7868380
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren