Taula de continguts:

Ventilador regulat PWM basat en la temperatura de la CPU per a Raspberry Pi: 4 passos (amb imatges)
Ventilador regulat PWM basat en la temperatura de la CPU per a Raspberry Pi: 4 passos (amb imatges)

Vídeo: Ventilador regulat PWM basat en la temperatura de la CPU per a Raspberry Pi: 4 passos (amb imatges)

Vídeo: Ventilador regulat PWM basat en la temperatura de la CPU per a Raspberry Pi: 4 passos (amb imatges)
Vídeo: 💨Cooler fan 12V con control de velocidad PWM. Gran potencia: 40m3/hora 2024, Desembre
Anonim
Ventilador regulat PWM basat en la temperatura de la CPU per a Raspberry Pi
Ventilador regulat PWM basat en la temperatura de la CPU per a Raspberry Pi

Molts casos per a Raspberry Pi vénen amb un petit ventilador de 5V per ajudar a refredar la CPU. No obstant això, aquests ventiladors solen ser força sorollosos i molta gent ho connecta al pin 3V3 per reduir el soroll. Aquests ventiladors solen tenir una potència de 200 mA, que és bastant elevat per al regulador 3V3 del RPi. Aquest projecte us ensenyarà a regular la velocitat del ventilador en funció de la temperatura de la CPU. A diferència de la majoria dels tutorials que tracten aquest tema, no només activarem o desactivarem el ventilador, sinó que controlarem la seva velocitat com es fa en un ordinador principal, mitjançant Python.

Pas 1: parts necessàries

Per a aquest projecte, farem servir només uns quants components que normalment s’inclouen als kits electrònics per aficionats que podeu trobar a Amazon, com aquest.

  • Raspberry Pi executa Raspbian (però hauria de funcionar amb altres distribucions).
  • Ventilador de 5V (però es pot utilitzar un ventilador de 12V amb un transistor adaptat i una font d’alimentació de 12V).
  • Transistor NPN que admet com a mínim 300 mA, com un 2N2222A.
  • 1K resistència.
  • 1 díode.

Opcional, per posar els components dins de la caixa (però encara no s'ha fet):

  • Un petit tros de protoborda, per soldar els components.
  • Encongiment gran per protegir el tauler.

Pas 2: connexions elèctriques

Connexions elèctriques
Connexions elèctriques
Connexions elèctriques
Connexions elèctriques
Connexions elèctriques
Connexions elèctriques

La resistència es pot connectar de qualsevol manera, però tingueu cura de la direcció del transistor i del díode. El càtode del díode s’ha de connectar al cable de + 5V (vermell) i l’ànode s’ha de connectar al cable de GND (negre). Consulteu el document del transistor per trobar pins d'emissor, base i col·lector. La terra del ventilador ha d'estar connectada al col·lector i la terra de Rpi ha d'estar connectada a l'emissor

Per controlar el ventilador, hem d’utilitzar un transistor que s’utilitzarà en configuració de col·lector obert. Fent això, tenim un commutador que connectarà o desconnectarà el cable de terra del ventilador a la terra del raspberry pi.

Un transistor NPN BJT condueix en funció del corrent que flueix a la seva porta. El corrent que es permetrà fluir des del col·lector (C) fins a l'emissor (E) és:

Ic = B * Ib

Ic és el corrent que flueix a través del col·lector l’emissor, Ib és el corrent que flueix a través de la base fins a l’emissor i B (beta) és un valor que depèn de cada transistor. Aproximem B = 100.

Com que el nostre ventilador està classificat com a 200 mA, necessitem almenys 2 mA per la base del transistor. La tensió entre la base i l'emissor (Vbe) es considera constant i Vbe = 0, 7V. Això significa que quan el GPIO està activat, tenim 3,3 - 0,7 = 2,6 V a la resistència. Per tenir 2 mA a través d’aquesta resistència, necessitem una resistència màxima de 2,6 / 0,002 = 1300 ohm. Utilitzem una resistència de 1.000 ohm per simplificar i mantenir un marge d’error. Tindrem 2,6 mA a través del pin GPIO que és totalment segur.

Com que un ventilador és bàsicament un motor elèctric, és una càrrega inductiva. Això significa que quan el transistor deixa de conduir-se, el corrent del ventilador continuarà fluint mentre una càrrega inductiva intenta mantenir el corrent constant. Això provocaria una alta tensió al pin de terra del ventilador i podria danyar el transistor. És per això que necessitem un díode en paral·lel amb el ventilador que faci fluir el corrent constantment a través del motor. Aquest tipus de configuració de díodes s’anomena díode de volant

Pas 3: programa per controlar la velocitat del ventilador

Per controlar la velocitat del ventilador, fem servir un senyal de programari PWM de la biblioteca RPi. GPIO. Un senyal PWM està ben adaptat per accionar motors elèctrics, ja que el seu temps de reacció és molt elevat en comparació amb la freqüència PWM.

Utilitzeu el programa calib_fan.py per trobar el valor FAN_MIN executant-vos al terminal:

python calib_fan.py

Comproveu diversos valors entre el 0 i el 100% (hauria de ser al voltant del 20%) i consulteu quin és el valor mínim per activar el ventilador.

Podeu canviar la correspondència entre la temperatura i la velocitat del ventilador al principi del codi. Hi ha d’haver tants temporals com valors speedSteps. Aquest és el mètode que s'utilitza generalment a les plaques base de PC, movent punts en un gràfic de 2 eixos Temp / Speed.

Pas 4: executeu el programa a l'inici

Per executar el programa automàticament a l'inici, he creat un script bash on he posat tots els programes que vull iniciar, i després llanço aquest script bash a l'inici amb rc.locale

  1. Creeu un directori / home / pi / Scripts / i col·loqueu el fitxer fan_ctrl.py dins d’aquest directori.
  2. Al mateix directori, creeu un fitxer anomenat launcher.sh i copieu l'script següent.
  3. Editeu el fitxer /etc/rc.locale i afegiu una nova línia abans de la "sortida 0": sudo sh '/home/pi/Scripts/launcher.sh'

script launcher.sh:

#! / bin / sh # launcher.sh # navegueu al directori inicial, després a aquest directori, després executeu l'script python i, a continuació, torneu a casa homelocalecd / cd / home / pi / Scripts / sudo python3./fan_ctrl.py & cd /

Si voleu utilitzar-lo amb OSMC, per exemple, l'heu d'iniciar com a servei amb systemd.

  1. Baixeu-vos el fitxer fanctrl.service.
  2. Comproveu el camí d'accés al fitxer python.
  3. Col·loqueu fanctrl.service a / lib / systemd / system.
  4. Finalment, habiliteu el servei amb sudo systemctl enable fanctrl.service.

Aquest mètode és més segur, ja que el programa es reiniciarà automàticament si l'usuari o el sistema el mata.

Recomanat: