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.
Wenn du die Lüfter low-side schaltest, dann funktioniert der Tachoausgang nicht mehr.
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
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?
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.
Weils nur etwas über 900 Byte sind, poste ichs mal wieder. Freilaufdiode nicht vergessen.
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
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.
Hi Tim, wenn du einen PWM-Lüfter erkennst, auf welchen Wert setzt du PWM2? Viele Grüße hackspider
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.
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.
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
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.
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.
Basiswiderstand ist unnötig klein, und der Spannungsregler wird Kondensatoren brauchen.
Der BC547 (o.ä.) braucht auch keinen Pulldown an der Basis, da er den Pin durch den Basisstrom selber low zieht.
Den Pulldown habe ich als Failsafe eingebaut. Falls irgendwas sein sollte, sollten die Lüfter immer mit 100% statt mit 0% drehen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.