Turinys:

PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra: 4 žingsniai (su nuotraukomis)
PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra: 4 žingsniai (su nuotraukomis)

Video: PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra: 4 žingsniai (su nuotraukomis)

Video: PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra: 4 žingsniai (su nuotraukomis)
Video: DC 10-55V 60A Motor Speed Controller PWM Reverse Control Switch with LED Display relay | Robojax 2024, Liepa
Anonim
PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra
PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra

Daugelyje „Raspberry Pi“dėklų yra nedidelis 5 V ventiliatorius, kad būtų lengviau aušinti procesorių. Tačiau šie ventiliatoriai paprastai yra gana triukšmingi ir daugelis žmonių prijungia jį prie 3V3 kaiščio, kad sumažintų triukšmą. Šie ventiliatoriai paprastai yra vertinami 200 mA, o tai yra gana didelė RPi 3V3 reguliatoriui. Šis projektas išmokys jus reguliuoti ventiliatoriaus greitį pagal procesoriaus temperatūrą. Skirtingai nuo daugelio vadovėlių, apimančių šią temą, mes ne tik įjungsime arba išjungsime ventiliatorių, bet ir valdysime jo greitį, kaip tai daroma įprastame kompiuteryje, naudojant „Python“.

1 žingsnis: reikalingos dalys

Šiam projektui naudosime tik kelis komponentus, kurie paprastai yra įtraukti į mėgėjų elektronikos rinkinius, kuriuos galite rasti „Amazon“, kaip šis.

  • „Raspberry Pi“veikia „Raspbian“(bet turėtų veikti su kitais platintojais).
  • 5 V ventiliatorius (tačiau 12 V ventiliatorių galima naudoti su pritaikytu tranzistoriumi ir 12 V maitinimo šaltiniu).
  • NPN tranzistorius, palaikantis bent 300 mA, kaip 2N2222A.
  • 1K rezistorius.
  • 1 diodas.

Neprivaloma, jei norite sudėti komponentus į korpusą (bet dar nepadaryta):

  • Mažas protoboardo gabalas komponentams lituoti.
  • Didelis šilumos susitraukimas, siekiant apsaugoti plokštę.

2 žingsnis: elektros jungtys

Elektros jungtys
Elektros jungtys
Elektros jungtys
Elektros jungtys
Elektros jungtys
Elektros jungtys

Rezistorius gali būti prijungtas bet kuriuo būdu, tačiau būkite atsargūs dėl tranzistoriaus ir diodo krypties. Diodo katodas turi būti prijungtas prie +5 V (raudonas) laido, o anodas - prie GND (juodo) laido. Patikrinkite, ar jūsų tranzistoriaus dokumente nėra spinduliuotės, pagrindo ir kolektoriaus kaiščių. Ventiliatoriaus įžeminimas turi būti prijungtas prie kolektoriaus, o „Rpi“- į „Emitter“

Norėdami valdyti ventiliatorių, turime naudoti tranzistorių, kuris bus naudojamas neatidarius kolektoriaus konfigūracijos. Tai darydami turime jungiklį, kuris prijungs arba atjungs įžeminimo laidą nuo ventiliatoriaus prie aviečių pi žemės.

NPN BJT tranzistorius veikia priklausomai nuo srovės, tekančios jo vartuose. Srovė, kuri bus leidžiama tekėti iš kolektoriaus (C) į emiterį (E), yra:

Ic = B * Ib

Ic yra srovė, tekanti per kolektorių ir emiterį, Ib - srovė, tekanti per pagrindą į emiterį, o B (beta) yra vertė, priklausanti nuo kiekvieno tranzistoriaus. Mes apytiksliai B = 100.

Kadangi mūsų ventiliatorius įvertintas kaip 200 mA, mums reikia mažiausiai 2 mA per tranzistoriaus pagrindą. Įtampa tarp pagrindo ir emiterio (Vbe) laikoma pastovia ir Vbe = 0, 7V. Tai reiškia, kad kai GPIO įjungtas, rezistoriuje turime 3,3 - 0,7 = 2,6 V. Kad per tą rezistorių būtų 2 mA, mums reikia maksimaliai 2,6 / 0,002 = 1300 omų rezistoriaus. Mes naudojame 1000 omų rezistorių, kad supaprastintume ir išlaikytume paklaidą. Mes turėsime 2,6 mA per GPIO kaištį, kuris yra visiškai saugus.

Kadangi ventiliatorius iš esmės yra elektros variklis, tai yra indukcinis krūvis. Tai reiškia, kad tranzistoriui nustojus veikti, srovė ventiliatoriuje ir toliau tekės, kai indukcinis krūvis bandys išlaikyti pastovią srovę. Dėl to ventiliatoriaus įžeminimo kaištyje atsiras aukšta įtampa ir galite sugadinti tranzistorių. Štai kodėl mums reikia diodo lygiagrečiai su ventiliatoriumi, kuris nuolatos teka per variklį. Šio tipo diodų sąranka vadinama „smagračio“diodu

3 žingsnis: Ventiliatoriaus greičio valdymo programa

Norėdami valdyti ventiliatoriaus greitį, naudojame programinį PWM signalą iš RPi. GPIO bibliotekos. PWM signalas yra gerai pritaikytas elektros varikliams varyti, nes jų reakcijos laikas yra labai ilgas, palyginti su PWM dažniu.

Naudokite programą calib_fan.py, kad surastumėte FAN_MIN vertę vykdydami terminale:

python calib_fan.py

Patikrinkite kelias reikšmes nuo 0 iki 100% (turėtų būti apie 20%) ir pažiūrėkite, kokia yra minimali vertė, kurią turi įjungti jūsų ventiliatorius.

Kodo pradžioje galite pakeisti temperatūros ir ventiliatoriaus greičio atitikimą. TempSteps turi būti tiek pat, kiek speedSteps reikšmių. Tai yra metodas, kuris dažniausiai naudojamas kompiuterių pagrindinėse plokštėse, judančiose taškuose temp / greitis 2 ašių grafike.

4 žingsnis: paleiskite programą paleisdami

Norėdami paleisti programą automatiškai paleidžiant, sukūriau „bash“scenarijų, kuriame įdėjau visas norimas paleisti programas, o tada paleisiu šį „bash“scenarijų paleidžiant su rc.locale

  1. Sukurkite katalogą/home/pi/Scripts/ir įdėkite failą fan_ctrl.py į tą katalogą.
  2. Tame pačiame kataloge sukurkite failą pavadinimu launcher.sh ir nukopijuokite žemiau esantį scenarijų.
  3. Redaguokite failą /etc/rc.locale ir pridėkite naują eilutę prieš „exit 0“: sudo sh '/home/pi/Scripts/launcher.sh'

scenarijus launcher.sh:

#!/bin/sh #launcher.sh #eikite į namų katalogą, tada į šį katalogą, tada paleiskite „python“scenarijų, tada grįžkite į homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/

Jei norite jį naudoti, pavyzdžiui, su OSMC, turite pradėti jį kaip paslaugą su sistema.

  1. Atsisiųskite fanctrl.service failą.
  2. Patikrinkite kelią į savo „python“failą.
  3. Įdėkite fanctrl.service į/lib/systemd/system.
  4. Galiausiai įgalinkite paslaugą naudodami sudo systemctl enable fanctrl.service.

Šis metodas yra saugesnis, nes programa bus automatiškai paleista iš naujo, jei vartotojas ar sistema jį užmuš.

Rekomenduojamas: