Inhaltsverzeichnis:

PWM-geregelter Lüfter basierend auf der CPU-Temperatur für Raspberry Pi - Gunook
PWM-geregelter Lüfter basierend auf der CPU-Temperatur für Raspberry Pi - Gunook

Video: PWM-geregelter Lüfter basierend auf der CPU-Temperatur für Raspberry Pi - Gunook

Video: PWM-geregelter Lüfter basierend auf der CPU-Temperatur für Raspberry Pi - Gunook
Video: Lüftersteuerung überschreiben, bessere Kühlung durch Argus Monitor. Upgrade für den Aldi fertig PC 2024, Juli
Anonim
PWM-geregelter Lüfter basierend auf der CPU-Temperatur für Raspberry Pi
PWM-geregelter Lüfter basierend auf der CPU-Temperatur für Raspberry Pi

Viele Gehäuse für Raspberry Pi werden mit einem kleinen 5-V-Lüfter geliefert, um die Kühlung der CPU zu unterstützen. Diese Lüfter sind jedoch normalerweise ziemlich laut und viele Leute stecken sie auf den 3V3-Pin, um das Rauschen zu reduzieren. Diese Lüfter sind normalerweise für 200 mA ausgelegt, was für den 3V3-Regler des RPi ziemlich hoch ist. In diesem Projekt erfahren Sie, wie Sie die Lüftergeschwindigkeit basierend auf der CPU-Temperatur regulieren. Im Gegensatz zu den meisten Tutorials, die dieses Thema behandeln, werden wir den Lüfter nicht nur ein- oder ausschalten, sondern auch seine Geschwindigkeit steuern, wie es auf einem Mainstream-PC mit Python gemacht wird.

Schritt 1: Benötigte Teile

Für dieses Projekt verwenden wir nur wenige Komponenten, die normalerweise in Elektronik-Kits für Bastler enthalten sind, die Sie bei Amazon finden, wie dieses.

  • Raspberry Pi mit Raspbian (sollte aber mit anderen Distributionen funktionieren).
  • 5V-Lüfter (aber ein 12V-Lüfter könnte mit einem angepassten Transistor und einem 12V-Netzteil verwendet werden).
  • NPN-Transistor, der mindestens 300 mA unterstützt, wie ein 2N2222A.
  • 1K Widerstand.
  • 1 Diode.

Optional, um die Komponenten in das Gehäuse zu legen (aber noch nicht fertig):

  • Ein kleines Stück Protoboard, um die Komponenten zu verlöten.
  • Großer Schrumpfschlauch, um das Board zu schützen.

Schritt 2: Elektrische Anschlüsse

Elektrische Anschlüsse
Elektrische Anschlüsse
Elektrische Anschlüsse
Elektrische Anschlüsse
Elektrische Anschlüsse
Elektrische Anschlüsse

Der Widerstand kann in beide Richtungen gesteckt werden, aber seien Sie vorsichtig mit der Richtung von Transistor und Diode. Die Kathode der Diode muss an das +5V (rot) Kabel angeschlossen werden und die Anode muss an das GND (schwarz) Kabel angeschlossen werden. Überprüfen Sie Ihre Transistordokumentation auf Emitter-, Basis- und Kollektorstifte. Die Masse des Lüfters muss mit dem Kollektor verbunden sein und die Masse von Rpi muss mit dem Emitter verbunden sein

Um den Lüfter zu steuern, müssen wir einen Transistor verwenden, der in einer Konfiguration mit offenem Kollektor verwendet wird. Auf diese Weise haben wir einen Schalter, der das Erdungskabel vom Lüfter mit der Masse des Himbeer-Pi verbindet oder trennt.

Ein NPN-BJT-Transistor leitet abhängig von dem Strom, der in seinem Gate fließt. Der Strom, der vom Kollektor (C) zum Emitter (E) fließen darf, beträgt:

Ic = B * Ib

Ic ist der Strom, der durch den Kollektor zum Emitter fließt, Ib ist der Strom, der durch die Basis zum Emitter fließt, und B (Beta) ist ein Wert, der von jedem Transistor abhängt. Wir approximieren B = 100.

Da unser Lüfter mit 200mA bewertet wird, benötigen wir mindestens 2mA durch die Basis des Transistors. Die Spannung zwischen Basis und Emitter (Vbe) wird als konstant angesehen und Vbe = 0, 7V. Dies bedeutet, dass wir bei eingeschaltetem GPIO 3,3 - 0,7 = 2,6 V am Widerstand haben. Um 2 mA durch diesen Widerstand zu haben, benötigen wir einen Widerstand von maximal 2,6 / 0,002 = 1300 Ohm. Wir verwenden einen Widerstand von 1000 Ohm, um die Fehler zu vereinfachen und zu vermeiden. Wir werden 2,6 mA über den GPIO-Pin haben, was absolut sicher ist.

Da ein Ventilator im Grunde ein Elektromotor ist, handelt es sich um eine induktive Ladung. Das heißt, wenn der Transistor nicht mehr leitet, fließt der Strom im Lüfter weiter, da eine induktive Ladung versucht, den Strom konstant zu halten. Dies würde zu einer hohen Spannung am Massestift des Lüfters führen und den Transistor beschädigen. Deshalb brauchen wir parallel zum Lüfter eine Diode, die den Strom ständig durch den Motor fließen lässt. Diese Art von Diodenaufbau wird als Schwungraddiode bezeichnet

Schritt 3: Programm zur Steuerung der Lüftergeschwindigkeit

Zur Steuerung der Lüftergeschwindigkeit verwenden wir ein Software-PWM-Signal aus der RPi. GPIO-Bibliothek. Ein PWM-Signal eignet sich gut zum Antrieb von Elektromotoren, da deren Reaktionszeit im Vergleich zur PWM-Frequenz sehr hoch ist.

Verwenden Sie das Programm calib_fan.py, um den FAN_MIN-Wert zu finden, indem Sie es im Terminal ausführen:

Python calib_fan.py

Überprüfen Sie mehrere Werte zwischen 0 und 100 % (sollten etwa 20 % betragen) und sehen Sie, was der Mindestwert ist, damit sich Ihr Lüfter einschaltet.

Sie können die Entsprechung zwischen Temperatur und Lüftergeschwindigkeit am Anfang des Codes ändern. Es müssen so viele tempSteps wie speedSteps-Werte vorhanden sein. Dies ist die Methode, die im Allgemeinen bei PC-Motherboards verwendet wird, um Punkte auf einem Temp / Speed 2-Achsen-Diagramm zu verschieben.

Schritt 4: Führen Sie das Programm beim Start aus

Um das Programm beim Start automatisch auszuführen, habe ich ein Bash-Skript erstellt, in das ich alle Programme schreibe, die ich starten möchte, und dann starte ich dieses Bash-Skript beim Start mit rc.locale

  1. Erstellen Sie ein Verzeichnis /home/pi/Scripts/ und platzieren Sie die Datei fan_ctrl.py in diesem Verzeichnis.
  2. Erstellen Sie im selben Verzeichnis eine Datei namens launcher.sh und kopieren Sie das untenstehende Skript.
  3. Bearbeiten Sie die Datei /etc/rc.locale und fügen Sie vor dem "Exit 0" eine neue Zeile hinzu: sudo sh '/home/pi/Scripts/launcher.sh'

launcher.sh-Skript:

#!/bin/sh#launcher.sh # Navigieren Sie zum Home-Verzeichnis, dann zu diesem Verzeichnis, führen Sie dann das Python-Skript aus, dann zurück homelocalecd /cd /home/pi/Scripts/sudo python3./fan_ctrl.py &cd /

Wenn Sie es beispielsweise mit OSMC verwenden möchten, müssen Sie es als Dienst mit systemd starten.

  1. Laden Sie die Datei fanctrl.service herunter.
  2. Überprüfen Sie den Pfad zu Ihrer Python-Datei.
  3. Platzieren Sie fanctrl.service in /lib/systemd/system.
  4. Schließlich aktivieren Sie den Dienst mit sudo systemctl enable fanctrl.service.

Diese Methode ist sicherer, da das Programm automatisch neu gestartet wird, wenn es vom Benutzer oder vom System beendet wird.

Empfohlen: