Cuprins:

Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi: 4 pași (cu imagini)
Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi: 4 pași (cu imagini)

Video: Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi: 4 pași (cu imagini)

Video: Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi: 4 pași (cu imagini)
Video: Controler ventilator PC PWM 2024, Iulie
Anonim
Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi
Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi

Multe carcase pentru Raspberry Pi vin cu un mic ventilator de 5V pentru a ajuta la răcirea procesorului. Cu toate acestea, aceste ventilatoare sunt de obicei destul de zgomotoase și mulți oameni îl conectează la pinul 3V3 pentru a reduce zgomotul. Aceste ventilatoare sunt de obicei evaluate pentru 200mA, ceea ce este destul de ridicat pentru regulatorul 3V3 de pe RPi. Acest proiect vă va învăța cum să reglați viteza ventilatorului în funcție de temperatura procesorului. Spre deosebire de majoritatea tutorialelor care acoperă acest subiect, nu vom activa sau dezactiva doar ventilatorul, ci îi vom controla viteza așa cum se face pe computerul principal, folosind Python.

Pasul 1: Piese necesare

Pentru acest proiect, vom folosi doar câteva componente care sunt de obicei incluse în kiturile electronice pentru pasionați pe care le puteți găsi pe Amazon, ca acesta.

  • Raspberry Pi rulează Raspbian (dar ar trebui să funcționeze cu alte distribuții).
  • Ventilator de 5V (dar un ventilator de 12V ar putea fi utilizat cu un tranzistor adaptat și o sursă de alimentare de 12V).
  • Tranzistor NPN care suportă cel puțin 300mA, ca un 2N2222A.
  • Rezistor 1K.
  • 1 diodă.

Opțional, pentru a pune componentele în carcasă (dar încă nu a fost realizat):

  • O mică bucată de protecție, pentru a lipi componentele.
  • Termocontractor mare, pentru a proteja placa.

Pasul 2: Conexiuni electrice

Legăturile electrice
Legăturile electrice
Legăturile electrice
Legăturile electrice
Legăturile electrice
Legăturile electrice

Rezistorul poate fi conectat în ambele sensuri, dar aveți grijă la direcția tranzistorului și a diodei. Catodul diodei trebuie conectat la firul + 5V (roșu), iar anodul trebuie conectat la firul GND (negru). Verificați documentul tranzistorului pentru emițător, bază și colector. Masa ventilatorului trebuie să fie conectată la colector, iar masa Rpi trebuie să fie conectată la emițător

Pentru a controla ventilatorul, trebuie să folosim un tranzistor care va fi utilizat în configurația colectorului deschis. Făcând acest lucru, avem un comutator care va conecta sau deconecta firul de masă de la ventilator la solul de zmeură pi.

Un tranzistor NPN BJT conduce în funcție de curentul care curge în poarta sa. Curentul care va fi permis să curgă din colector (C) către emițător (E) este:

Ic = B * Ib

Ic este curentul care curge prin colector emițătorul, Ib este curentul care curge prin bază către emițător, iar B (beta) este o valoare în funcție de fiecare tranzistor. Aproximăm B = 100.

Deoarece ventilatorul nostru este evaluat la 200mA, avem nevoie de cel puțin 2mA prin baza tranzistorului. Tensiunea dintre bază și emițător (Vbe) este considerată constantă și Vbe = 0, 7V. Aceasta înseamnă că atunci când GPIO este pornit, avem rezistență de 3,3 - 0,7 = 2,6 V. Pentru a avea 2mA prin acel rezistor, avem nevoie de un rezistor de, maxim, 2,6 / 0,002 = 1300 ohm. Folosim un rezistor de 1000 ohm pentru a simplifica și a păstra o marjă de eroare. Vom avea 2,6 mA prin pinul GPIO, care este complet sigur.

Deoarece un ventilator este practic un motor electric, este o încărcare inductivă. Aceasta înseamnă că atunci când tranzistorul încetează să conducă, curentul din ventilator va continua să curgă pe măsură ce o sarcină inductivă încearcă să mențină curentul constant. Acest lucru ar duce la o tensiune ridicată pe pinul de la sol al ventilatorului și ar putea deteriora tranzistorul. De aceea avem nevoie de o diodă în paralel cu ventilatorul care să facă curentul să curgă constant prin motor. Acest tip de configurare a diodei se numește diodă Flywheel

Pasul 3: Program pentru a controla viteza ventilatorului

Pentru a controla viteza ventilatorului, folosim un semnal software PWM din biblioteca RPi. GPIO. Un semnal PWM este bine adaptat pentru acționarea motoarelor electrice, deoarece timpul lor de reacție este foarte mare în comparație cu frecvența PWM.

Utilizați programul calib_fan.py pentru a găsi valoarea FAN_MIN rulând în terminal:

python calib_fan.py

Verificați mai multe valori cuprinse între 0 și 100% (ar trebui să fie în jur de 20%) și vedeți care este valoarea minimă pentru a porni ventilatorul.

Puteți modifica corespondența dintre temperatură și viteza ventilatorului la începutul codului. Trebuie să existe la fel de multe tempSteps ca valori speedSteps. Aceasta este metoda care este utilizată în general pe plăcile de bază ale PC-ului, deplasând punctele pe un grafic Temp / Speed pe 2 axe.

Pasul 4: Rulați programul la pornire

Pentru a rula automat programul la pornire, am realizat un script bash în care am pus toate programele pe care vreau să le lansez și apoi lansez acest script bash la pornire cu rc.locale

  1. Creați un director / home / pi / Scripturi / și plasați fișierul fan_ctrl.py în acel director.
  2. În același director, creați un fișier numit launcher.sh și copiați scriptul de mai jos.
  3. Editați fișierul /etc/rc.locale și adăugați o nouă linie înainte de „exit 0”: sudo sh '/home/pi/Scripts/launcher.sh'

script launcher.sh:

#! / bin / sh # launcher.sh # navigați la directorul de acasă, apoi la acest director, apoi executați scriptul Python, apoi înapoi homelocalecd / cd / home / pi / Scripts / sudo python3./fan_ctrl.py & cd /

Dacă doriți să-l utilizați, de exemplu, cu OSMC, trebuie să îl porniți ca serviciu cu systemd.

  1. Descărcați fișierul fanctrl.service.
  2. Verificați calea către fișierul dvs. python.
  3. Plasați fanctrl.service în / lib / systemd / system.
  4. În cele din urmă, activați serviciul cu sudo systemctl activați fanctrl.service.

Această metodă este mai sigură, deoarece programul va fi repornit automat dacă este ucis de utilizator sau de sistem.

Recomandat: