12 Volt Lüfter per externe Spannung versorgen per PWM steuern und Drehzahl auslesen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe einen 4 PIN PWM-Lüfter http://www.elektronik-kompendium.de/sites/com/1503111.htm
    Ich hatte mir jetzt gedacht ich gebe auf PIN 1 und 2 des Lüfters 12 Volt aus einem anderen Netzteil. Gleichzeitig verbinde ich den PI mit PIN 1 und 4 um den Lüfter per PWM zu steuern.
    Nur geht das so einfach ohne etwas am PI kaputt zu machen?
    Wenn das geschafft wäre, wäre es natürlich noch schon das Tachosignal auszuwerten. Wenn da jemand Tipps hat bin ich dankbar. Aber prinzipiell geht es mir erstmal um die PWM-Steuerung.

    Danke schonmal für die Hilfe.

  • 12 Volt Lüfter per externe Spannung versorgen per PWM steuern und Drehzahl auslesen? Schau mal ob du hier fündig wirst!

  • Laut Spezifikation http://www.formfactors.org/developer%5Csp…re_PWM_Spec.pdf S. 9
    Low Maximum-Spannung ist 0,8 Volt
    Imax ist 5 mA
    VMaximum 5,25 Volt. Die 3,3 Volt des PI sollten also gehen.


    Es steht noch da "[font="serif"]New fan designs are strongly encouraged to im[/font]
    [font="serif"]plement a 3.3V pull up [/font]
    [font="serif"]for compatibility with [/font]
    [font="serif"]buffer design limits on Hardware Monito[/font]
    [font="serif"]r Devices e.g. Super IO devices. [/font]"
    Was bedeutet das?

    Zum Tachosignal steht folgendes da:

  • Wer nicht wagt, der nicht gewinnt. Ich habe es einfach mal ausprobiert, allerdings habe ich das ganze durch einen Transistor sicherheitshalber mal getrennt, damit dem PI nichts passieren kann. Wenn man mehrere Lüfter per PWM gleichzeitig steuern will, ist das auf jedenfall angebracht.
    Ich habe WiringPI verwendet.
    gpio -g mode 18 pwm //Auf PWM schalten
    gpio pwm-ms //Damit die Frequenz nicht variert
    gpio pwmr 128 //128 Geschwindigkeitsstufen
    gpio pwmc 6 //Taktteiler (maximal PWM Takt des PI ist 19,2 MHz)
    Anschließend kann man mit gpio -g pwm 18 <Zahl zwischen 1 und 127> die Geschwindigkeit varieren. Achtung 127 ist ganz langsam, 1 ganz schnell. Das kommt daher, dass der Lüfter stehen bleibt, wenn man seinen PIN4 auf Masse bringt. Je höher der Wert desto größer der Tastgrad und damit desto länger auf Masse.

    Das größte Problem daran war auf die Befehle pwmr 128 und pwmc 6 zu kommen. Hierfür findet man unter http://raspberrypi.stackexchange.com/questions/4906…-frequency/9725 die Formel
    Die PWM Frequenz ergibt sich nämlich durch folgende Formel pwmFrequenz in Hz = 19.200.000 Hz / pwmClock / pwmRange, macht hier 19.200.000 / 6 / 128 = 25.000 und damit exakt der Spezifikation entsprechend.

    Nachtrag: Zur Schaltung des Transistor:
    Der GPIO PIN 12 geht über deinen 40 KOhm Widerstand zur Basis. Am Collector hängt die PWM-Leitung des Lüfters. Am Emitter hängen die Masse des Lüfters und die Masse des PI. Das wars schon.

  • So nun funktioniert auch das Auslesen mit Hilfe eines weiteren Transistors. Die Schaltung sieht so aus. Die Basis des Transistor hängt auf +3,3V über einen 10 kOhm Widerstand. Der Emitter hängt auf Masse. Der Collector ist über einen 100 Ohm Widerstand mit +3,3 Volt verbunden. Am Collector hängt zudem noch PIN 16 des Raspberry. Sämtliche Widerstände habe ich aus dem Bauch heraus gewählt. Ein größerer Sinn steckt nicht dahinter. Wenn hier jemand verbessern möchte, kann er das gerne tun.
    Das Prinzip erklärt. Der Lüfter gibt pro Umdrehung 2 Impulse auf der Leitung auf. Diese werden mit einem GPIO-PIN verbunden und erzeugen pro Impuls einen Interrupt. Im Interrupt wird einfach ein Zähler erhöht. Jede Sekunde wird der Zählerstand ausgegeben und auf Umdrehungen pro Minute hochgerechnet.

    Der Quellcode dazu sieht so aus:


    Kompilliert wird das ganze über cc -o pwm pwm.c -lwiringPi


  • So nun funktioniert auch das Auslesen mit Hilfe eines weiteren Transistors. Die Schaltung sieht so aus. Die Basis des Transistor hängt auf +3,3V über einen 10 kOhm Widerstand. Der Emitter hängt auf Masse. Der Collector ist über einen 100 Ohm Widerstand mit +3,3 Volt verbunden. Am Collector hängt zudem noch PIN 16 des Raspberry.

    Hallo erst mal und danke! Die Steuerung mittels PWM und externen 12V läuft bei mir gut. Allerdings habe ich noch Probleme mit dem Tachosignal:

    Wenn ich das Signal direkt ins RPi gebe, kommen da "seltsame Werte" raus. RPM von 70.000, die aber steigen und fallen, je nach Lüfterdrehzahl.

    Nun wollte ich deine o.g. Transistor-Schaltung nachbasteln, verstehe aber den Aufbau nicht so ganz: Wo hänge ich denn mein Tachosignal rein? An die Basis?

    LG!

  • Der Transistor ist nur zum Schutz gedacht. Hast du schonmal einen anderen Lüfter probiert? Eventuell ist dein Lüfter nicht standardkonform oder defekt.
    Genau der PWM Ausgang des Lüfters kommt an die Basis. Die Basis habe ich per 1kOhm Widerstand mit 3,3 V verbunden. Am Kollector hing GPIO23 sprich Pin8, außerdem hing er noch per 100 Ohm Widerstand auf 3,3V. Der Emitter hing direkt auf Masse. Es war ein NPN Transistor. Die Widerstandswerte waren recht willkürlich gewählt, was ich gerade dahatte. Hoffe das hilft dir weiter.

  • Hi und sorry, dass ich dieses alte Thema nochmal hoch hole.

    Ich möchte mir gern eine Schaltung bauen, bei der ich mit einem Temperaturmesser z.b. von dieser Anleitung http://www.test-wetterstation.de/temperaturmess…em-raspberry-pi in Verbindung mit 2 PWM Lüftern bauen.

    Ich steuere beide Lüfter mit externen 12V an. Die Lüfter können gern gleichzeitig auf gleicher Ebene schneller oder langsamer laufen.

    Ich habe versucht alles hier im Beitrag zu verstehen. Ich hätte gern ein Bild der Schaltung, denn dann verstehe ich denke ich eher wie ihr hier die Kabel verbunden habt mit welchen Bauteilen.

    Das wäre super. Vielen Dank.

  • Nachdem letztens ein Bekannter ebenfalls eine Lüftersteuerung gesucht hat, ein Raspberry-PI dafür aber viel zu übertrieben ist, bin ich auf diese einfache Lösung https://www.aliexpress.com/item/DC5-30V-M…2805578309.html gestoßen. Das ganze gibt's fertig für weniger als 2 € mit zwei von einander unabhängigen Kanälen.

    Achtung auch hier ist die Regelung umgekehrt. Bei 100 % Duty Cycle bleibt der Lüfter stehen, bei 0 % läuft er mit maximaler Geschwindigkeit. Die PWM-Frequenz wie oben angegeben auf 25 kHz einstellen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!