Sadržaj:

PWM regulirani ventilator na osnovu temperature procesora za Raspberry Pi: 4 koraka (sa slikama)
PWM regulirani ventilator na osnovu temperature procesora za Raspberry Pi: 4 koraka (sa slikama)

Video: PWM regulirani ventilator na osnovu temperature procesora za Raspberry Pi: 4 koraka (sa slikama)

Video: PWM regulirani ventilator na osnovu temperature procesora za Raspberry Pi: 4 koraka (sa slikama)
Video: Объяснение прошивки Marlin 2.0.x 2024, Novembar
Anonim
PWM regulisan ventilator na osnovu temperature procesora za Raspberry Pi
PWM regulisan ventilator na osnovu temperature procesora za Raspberry Pi

Mnoge futrole za Raspberry Pi dolaze s malim 5V ventilatorom kako bi se pomoglo pri hlađenju CPU -a. Međutim, ovi ventilatori su obično prilično bučni i mnogi ih ljudi priključuju na 3V3 iglu kako bi smanjili buku. Ovi ventilatori su obično ocijenjeni za 200mA, što je prilično visoko za 3V3 regulator na RPi. Ovaj projekt će vas naučiti kako regulirati brzinu ventilatora na osnovu temperature procesora. Za razliku od većine vodiča koji pokrivaju ovu temu, nećemo samo uključiti ili isključiti ventilator, već ćemo kontrolirati njegovu brzinu kao što se radi na mainstream PC -u, koristeći Python.

Korak 1: Potrebni dijelovi

Za ovaj projekt koristit ćemo samo nekoliko komponenti koje su obično uključene u komplete elektronike za hobiste koje možete pronaći na Amazonu, poput ove.

  • Raspberry Pi pokreće Raspbian (ali bi trebao raditi s drugim distribucijama).
  • 5V ventilator (ali ventilator od 12V se može koristiti sa prilagođenim tranzistorima i napajanjem od 12V).
  • NPN tranzistor koji podržava najmanje 300mA, poput 2N2222A.
  • 1K otpornik.
  • 1 dioda.

Opcionalno, za stavljanje komponenti u kućište (ali još nije gotovo):

  • Mali komad protobora za lemljenje komponenti.
  • Veliko termoskupljanje, za zaštitu ploče.

Korak 2: Električne veze

Električni priključci
Električni priključci
Električni priključci
Električni priključci
Električni priključci
Električni priključci

Otpornik se može priključiti na bilo koji način, ali pripazite na smjer tranzistora i diode. Dioda katoda mora biti spojena na +5V (crvenu) žicu, a anoda mora biti spojena na GND (crnu) žicu. Provjerite u tranzistorskom dokumentu ima li pinova emitera, baze i kolektora. Uzemljenje ventilatora mora biti spojeno na kolektor, a Rpi uzemljenje mora biti spojeno na odašiljač

Da bismo upravljali ventilatorom, moramo koristiti tranzistor koji će se koristiti u konfiguraciji otvorenog kolektora. Na taj način imamo prekidač koji će spojiti ili odspojiti žicu za uzemljenje od ventilatora do mase maline pi.

NPN BJT tranzistor provodi ovisno o struji koja teče kroz njegova vrata. Struja kojoj će biti dopušteno teći od kolektora (C) do emitera (E) je:

Ic = B * Ib

Ic je struja koja protiče kroz kolektor prema odašiljaču, Ib je struja koja teče kroz bazu do emitera, a B (beta) je vrijednost ovisno o svakom tranzistoru. Približno smo B = 100.

Budući da je naš ventilator ocijenjen kao 200mA, potrebno nam je najmanje 2mA kroz bazu tranzistora. Napetost između baze i emitera (Vbe) smatra se konstantnom i Vbe = 0,7V. To znači da kada je GPIO uključen, na otporniku imamo 3,3 - 0,7 = 2,6 V. Da bismo imali 2mA kroz taj otpornik, potreban nam je otpornik od maksimalno 2,6 / 0,002 = 1300 ohma. Koristimo otpornik od 1000 ohma da pojednostavimo i zadržimo marginu greške. Imat ćemo 2,6 mA kroz GPIO pin koji je potpuno siguran.

Kako je ventilator u osnovi električni motor, on je induktivni naboj. To znači da kada tranzistor prestane provoditi, struja u ventilatoru će nastaviti teći jer induktivno punjenje pokušava zadržati struju konstantnom. To bi rezultiralo visokim naponom na uzemljenju ventilatora i moglo bi oštetiti tranzistor. Zato nam je paralelno s ventilatorom potrebna dioda koja će konstantno strujati kroz motor. Ova vrsta postavljanja dioda naziva se dioda zamašnjaka

Korak 3: Program za kontrolu brzine ventilatora

Za kontrolu brzine ventilatora koristimo softverski PWM signal iz biblioteke RPi. GPIO. PWM signal je dobro prilagođen za pogon elektromotora, jer je njihovo vrijeme reakcije vrlo veliko u odnosu na frekvenciju PWM -a.

Pomoću programa calib_fan.py pronađite vrijednost FAN_MIN pokretanjem u terminalu:

python calib_fan.py

Provjerite nekoliko vrijednosti između 0 i 100% (treba biti oko 20%) i provjerite koja je minimalna vrijednost za uključivanje vašeg ventilatora.

Možete promijeniti korespondenciju između temperature i brzine ventilatora na početku koda. Mora postojati toliko tempSteps koliko i speedSteps vrijednosti. Ovo je metoda koja se općenito koristi na matičnim pločama PC-a, pomicanjem točaka na 2-osnom grafikonu Temp / Speed.

Korak 4: Pokrenite program pri pokretanju

Za automatsko pokretanje programa pri pokretanju, napravio sam bash skriptu u koju sam stavio sve programe koje želim pokrenuti, a zatim pokrećem ovu bash skriptu pri pokretanju s rc.locale

  1. Kreirajte direktorij/home/pi/Scripts/i postavite datoteku fan_ctrl.py u taj direktorij.
  2. U istom direktoriju kreirajte datoteku pod nazivom launcher.sh i kopirajte skriptu ispod.
  3. Uredite /etc/rc.locale datoteku i dodajte novu liniju prije "izlaza 0": sudo sh '/home/pi/Scripts/launcher.sh'

launcher.sh skripta:

#!/bin/sh #launcher.sh #idite do početnog direktorija, zatim do ovog direktorija, zatim izvršite python skriptu, pa nazad homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/

Na primjer, ako ga želite koristiti s OSMC -om, morate ga pokrenuti kao uslugu sa systemd.

  1. Preuzmite datoteku fanctrl.service.
  2. Provjerite putanju do vaše python datoteke.
  3. Postavite fanctrl.service u/lib/systemd/system.
  4. Na kraju, omogućite uslugu sa sudo systemctl enable fanctrl.service.

Ova metoda je sigurnija, jer će se program automatski ponovo pokrenuti ako je ubio korisnik ili sistem.

Preporučuje se: