Hallo liebe Elektronikgemeinde, als Programmierer habe ich ein Elektronik-Programmierprojekt begonnen, bei dem ich mir mittlerweile eingestehen muss, dass meine Fähigkeiten im Bereich Elektrotechnik absolut ungenügend dafür sind. Ein Raspberry Pi hat das bereits nicht überlebt. Was ist das Ziel? Ich möchte mit dem Raspberry Pi GPIO einen handelsüblichen PC Lüfter mit 4 Pins (12V) kontrollieren. Neben einem 3.3V und einem GND Pin sind drei Pins dafür vorgesehen: - OUT für PWM - IN für Tach - OUT für die Kontrolle eines MOSFET (zum An- und Ausschalten des Lüfters) Was funktioniert bereits? Jede der drei genannten Funktionen separat auf einem Breadboard zusammengesteckt funktioniert und kann programmatisch weiterverwendet werden. Was ist die Herausforderung? Alle drei Funktionen gleichzeitig so zu zusammen zu schalten, dass sie sich nicht gegenseitig beeinflussen oder, dass der Raspberry Pi verbrennt … :(. Was sind die Randbedingungen? - PC-FAN: „be quiet! SHADOW WINGS 2“ (14025-LR-PWM). - Der MOSFET (IRF 520N) befindet sich auf einem separaten Board „MOS MODULE 2035“ Sowohl Lüfter als auch das MOS MODULE haben eigene elektronische Schaltungen, die ich nicht im Detail verstehe und daher als „Black Box“ mit Schnittstellen nach außen betrachtet habe. Den Quellcode (Python) stelle ich nach Fertigstellung gern mit zur Verfügung. Eine initiale schematische Darstellung habe ich mit der Datei RaspiFanController.jpg angehängt. Die Darstellung der Schaltung im MOS MODUL 2035 ist unvollständig. (Der Eintrag Beitrag "Raspberry 4Pin PWM FAN" scheint ähnlich gelagert zu seine, löst aber das Problem leider nicht.) Vielen Dank schon einmal für's Lesen und natürlich allen, die eine Tipp für mich haben. Viele Grüße, Hannes
https://noctua.at/pub/media/wysiwyg/Noctua_PWM_specifications_white_paper.pdf https://www.electroschematics.com/wp-content/uploads/2019/12/2-Fan-Connector-Scheme.png https://www.youtube.com/watch?v=3vV5rDNcjjM
Moin, Alle GNDs werden verbunden. 12V- = GND?! zum MOS-Module: links: An SIG kommt GPIO_OUT_PWM, An VCC kommt 3,3V, GND = GND rechts: Vin = 12V, V- = GND, V+ = PWM(FAN), GND wird über nen zusätzlichen N-MOSFET vom Raspi geschalten. Der Zusätzliche N-MOS: Source an GND, Drain an GND vom MOS-Modul, Gate über 100 Ohm an GPIO_OUT_MOS(Raspi) zum FAN: 12v = 12V GND = GND PWM = V+(MOS-Modul) zum Raspi: Hier brauchen wir jetzt nen NPN-Transistor oder N-MOS GND = GND(Raspi) = Source(N-MOS)/Emitter(NPN) TACH(FAN) = 1kOhm zu Gate(N-MOS)/Basis(NPN) Drain(N-MOS)/Kollektor(NPN) = 1kOhm zu 3,3V + Drain zu GPIO_W_TACH/Kollektor zu GPIO_W_TACH Durch die Transistoren werden logische Signale invertiert. Grüße (:
:
Bearbeitet durch User
In einem Schaltplan kommen normalerweise auch Verbindungen zwischen den Modulen vor! Mein Glaskugel sagt mir, Deine Mosfetmodule sind unbrauchbar, da sie GND Schalten. Du brauchst welche die die +12V Schalten, den wenn du die Lüfter per Mosfet an GND trennst, dann liegen am Tacho/PWM Pin 12V an -> Raspi tot. Daneben brauchen 4Pin Lüfter keinen Mosfet, einfach die PWM auf 0% Duty stellen -> Aus. - Für die Tachoeingänge brauchst Du einen Pull-Up - Der PWM Ausgang kann vom Lüfter auf bis zu 5.5V gezogen, das mag ein Raspi gar nicht. - der PWM Ausgang muss außerdem als Open-Drain konfiguriert werden - Es fehlt generell die Schutzbeschaltung für solche steckbaren Anschlüsse. Der Raspi ist da sehr empfindlich Warum ausgerechnet einen Raspi? Das ganze wäre mit einem Arduino günstiger, einfacher und robuster. Der bedient Dir ohne mit der wimper zu zucken 8 Lüfter gleichzeitig, wenn sein muss auch mit Mehrzonen Temperaturregelung.
Hallo zusammen, zuerst einmal VIELEN DANK für die Tipps und Vorschläge. Ich habe mir eine Reihe verschiedener Transistoren bestellt um die Vorschläge nachzubauen. Timo: Der mittlere Link ließ sich gut nachbauen und funktioniert. Das PWM-Signal scheint invertiert zu sein (oder ich habe etwas falsch gesteckt) aber das konnte ich programmatisch auflösen. Andreas: leider ist Duty 0% bei dem Ventilator scheinbar nur die niedrigste RPM die geht aber er dreht sich weiter. Das Oszi zeigt auch wirklich eine Null-Linie. D.h. ich brauche diesen „Hauptschalter“ oder? Micha, das versuche ich mal umzusetzen, wenn die Transistoren da sind. Ich werde es vermutlich aber niemals verstehen. Meinen Respekt allen, die so etwas können. :D Ist es aber statt dessen nicht leichter das MOS MODULE einfach rauszuschmeißen und statt dessen mit geeigneten Transistoren V+ zu schalten? Ziel der Aktion ist es ein Raspi-OMV-NAS-Gehäuse zu kühlen – darum der Raspi und kein Arduino. Als Input soll ein DHT-22 und die Raspi-CPU-Temp. Dienen. VG, Hannes
Aha, jetzt kommen wir also langsam zum Thema. Dann brauchst Du auf jeden Fall High-Side Schalter. Transistoren machen bei den Strömen keinen Sinn mehr. Entweder P-Channel Mosfet + ein Transistor als Inverter oder gleich ein fertiger High-Side Switch. Bei den PWM Tacholüftern gibt es nach Norm drei Profile. Bei einem läuft der Lüfter mit 0% Duty bei Mindestdrehzahl, bei den anderen bleibt er stehen. Dein Tachoeingang braucht trotzdem eine Schutzbeschaltung, also wenigstens ein Widerstand mit 10k davor + Pull up auf 3.3V. Für das PWM Signal reicht ein Transistor, invertiert das Signal, muss Du dann bei der Duty berücksichtigen.
Fertiger Highside-Switch (z.B. aus der ProFET-Serie BTSxxx) wäre sicher die bessere Wahl, weil nahezu trivial anzusteuern. Mit den Teilen kann man fast nichts falsch machen.
Hallo zusammen, noch einmal herzlichsten Dank für die super Unterstützung. Mit den letzten Hinweisen haben ich das Ziel nun vollständig erreichen können. Das MOS-Modul ist rausgeflogen und statt dessen ein BTS 432 E2 dazugekommen. Ich kann nun vom Raspi aus den Ventilator sauber ein und ausschalten, über die PWM regulieren sowie die RPM permanent ausgeben lassen. Wenn ich das Datenblatt des BTS 432 E2 richtig interpretiere braucht man eigentlich eine Steuerspannung von mind. 5V. Es funktioniert hier allerdings auch mit den 3.3V des Raspi. Im Zweifel könnte man vermutlich aber auch einen 3.3 -> 5V Logiklevelkonverter dazwischen klemmen. Jetzt werde ich die Schaltung noch einmal komplett aufzeichnen und den Python-Code bereitstellen. VG, Hannes
Ist das hier eine geschützte Werkstätte? Wo ist das Projekt oder dein Kot?
Hallo zusammen, Hier nun die Ergebnisse: 1. Schaltung angehängt ist die Schaltung als PNG. So weit funktioniert das bei mir mit einem Raspi 2. Alle Grounds sind verbunden. Die Schaltung basiert weitestgehend auf dem zweiten Link von Timo N. In wie weit meine Modifikationen und die Schaltung als ganzes elektrotechnisch korrekt ist, kann ich leider mangels Wissen nicht einschätzen. Anpassungsvorschläge nehme ich natürlich gern an. Nachbauen bitte auf eigene Gefahr. In meinem vorangegangenem Post habe ich geschrieben, dass der BTS 432 E2 laut Spec keine 3,3V Logik verarbeiten kann. Ich glaube da habe ich mich geirrt und die Praxis zeigt das auch. Wie auch erwähnt ist das PWM Signal invertiert. Ich vermute das liegt an dem Transistor S9014. Oder? Ggf. ist das sogar das, was Andreas M. In seinem zweiten Post beschreibt. 2. Code angehängt ist der Code als Fan.py. Er ist für den Ventilator mit dem Profil 0% Duty bei Mindestdrehzahl ausgelegt. Siehe hierzu auch der zweite Post von Andreas M. Die Pin-Nummern müssen natürlich immer an das entsprechend verwendete Setup angepasst werden. Vielen Dank und VG, Hannes
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.