Satura rādītājs:

PWM regulēts ventilators, pamatojoties uz CPU temperatūru Raspberry Pi: 4 soļi (ar attēliem)
PWM regulēts ventilators, pamatojoties uz CPU temperatūru Raspberry Pi: 4 soļi (ar attēliem)

Video: PWM regulēts ventilators, pamatojoties uz CPU temperatūru Raspberry Pi: 4 soļi (ar attēliem)

Video: PWM regulēts ventilators, pamatojoties uz CPU temperatūru Raspberry Pi: 4 soļi (ar attēliem)
Video: BTT SKR2 - Автоматизация экструдера и охлаждающего вентилятора 2024, Novembris
Anonim
PWM regulēts ventilators, pamatojoties uz CPU temperatūru Raspberry Pi
PWM regulēts ventilators, pamatojoties uz CPU temperatūru Raspberry Pi

Daudziem Raspberry Pi korpusiem ir neliels 5 V ventilators, lai palīdzētu dzesēt CPU. Tomēr šie ventilatori parasti ir diezgan trokšņaini, un daudzi cilvēki to pievieno 3V3 tapai, lai samazinātu troksni. Šie ventilatori parasti tiek vērtēti ar 200 mA, kas ir diezgan augsts 3V3 regulatoram RPi. Šis projekts iemācīs jums regulēt ventilatora ātrumu, pamatojoties uz CPU temperatūru. Atšķirībā no vairuma apmācību, kas aptver šo tēmu, mēs ne tikai ieslēgsim vai izslēgsim ventilatoru, bet arī kontrolēsim tā ātrumu, kā tas tiek darīts parastajā datorā, izmantojot Python.

1. darbība. Nepieciešamās detaļas

Šim projektam mēs izmantosim tikai dažus komponentus, kas parasti ir iekļauti hobiju elektronikas komplektos, kurus varat atrast vietnē Amazon, piemēram, šo.

  • Raspberry Pi, kurā darbojas Raspbian (bet tam vajadzētu strādāt ar citiem izplatītājiem).
  • 5 V ventilators (bet 12 V ventilatoru var izmantot ar pielāgotu tranzistoru un 12 V barošanas avotu).
  • NPN tranzistors, kas atbalsta vismaz 300 mA, piemēram, 2N2222A.
  • 1K rezistors.
  • 1 diode.

Pēc izvēles, lai ievietotu sastāvdaļas korpusā (bet vēl nav izdarīts):

  • Neliels protoborda gabals sastāvdaļu lodēšanai.
  • Liela siltuma saraušanās, lai aizsargātu plāksni.

2. darbība: elektriskie savienojumi

Elektriskie savienojumi
Elektriskie savienojumi
Elektriskie savienojumi
Elektriskie savienojumi
Elektriskie savienojumi
Elektriskie savienojumi

Rezistoru var pievienot jebkurā veidā, taču esiet piesardzīgs attiecībā uz tranzistora un diodes virzienu. Diodes katodam jābūt savienotam ar +5V (sarkanu) vadu, un anodam - GND (melnajam) vadam. Pārbaudiet, vai tranzistora dokumentā nav emitētāja, bāzes un kolektora tapas. Ventilatora zemei jābūt savienotai ar kolektoru, un Rpi zemei jābūt savienotai ar Emitter

Lai kontrolētu ventilatoru, mums jāizmanto tranzistors, kas tiks izmantots atvērtā kolektora konfigurācijā. To darot, mums ir slēdzis, kas savienos vai atvienos zemējuma vadu no ventilatora līdz aveņu pi zemei.

NPN BJT tranzistors vada atkarībā no strāvas, kas plūst tās vārtos. Strāva, kas ļaus plūst no kolektora (C) uz emitētāju (E), ir:

Ic = B * Ib

Ic ir strāva, kas plūst caur kolektoru emitētāju, Ib ir strāva, kas plūst caur pamatni uz emitētāju, un B (beta) ir vērtība atkarībā no katra tranzistora. Mēs aptuvenam B = 100.

Tā kā mūsu ventilators ir novērtēts kā 200 mA, caur tranzistora pamatni mums ir nepieciešami vismaz 2 mA. Spriedze starp pamatni un emitētāju (Vbe) tiek uzskatīta par nemainīgu un Vbe = 0, 7V. Tas nozīmē, ka tad, kad GPIO ir ieslēgts, pie rezistora mums ir 3.3 - 0.7 = 2.6V. Lai caur šo rezistoru būtu 2 mA, mums ir nepieciešams maksimālais rezistors 2,6 / 0,002 = 1300 omi. Mēs izmantojam 1000 omu rezistoru, lai vienkāršotu un saglabātu kļūdas robežu. Mums būs 2,6 mA caur GPIO tapu, kas ir pilnīgi droša.

Tā kā ventilators būtībā ir elektromotors, tas ir induktīvs lādiņš. Tas nozīmē, ka tad, kad tranzistors pārstāj vadīt, ventilatora strāva turpinās plūst, jo induktīvais lādiņš mēģina saglabāt nemainīgu. Tas radītu augstu spriegumu ventilatora zemes tapā un varētu sabojāt tranzistoru. Tieši tāpēc mums paralēli ventilatoram ir nepieciešama diode, kas ļaus strāvai nepārtraukti plūst caur motoru. Šāda veida diodes iestatījumus sauc par spararata diodēm

3. darbība: programma ventilatora ātruma kontrolei

Lai kontrolētu ventilatora ātrumu, mēs izmantojam programmatūras PWM signālu no RPi. GPIO bibliotēkas. PWM signāls ir labi pielāgots elektromotoru darbināšanai, jo to reakcijas laiks ir ļoti augsts, salīdzinot ar PWM frekvenci.

Izmantojiet programmu calib_fan.py, lai atrastu FAN_MIN vērtību, palaižot termināli:

python calib_fan.py

Pārbaudiet vairākas vērtības no 0 līdz 100% (jābūt aptuveni 20%) un noskaidrojiet, kāda ir minimālā vērtība, kas jāieslēdz jūsu ventilatoram.

Koda sākumā varat mainīt temperatūras un ventilatora ātruma atbilstību. TempSteps jābūt tikpat daudz, cik speedSteps vērtībām. Šī ir metode, ko parasti izmanto datoru mātesplatēs, pārvietojot punktus uz 2 asu grafika Temp / Speed.

Solis: palaidiet programmu startēšanas laikā

Lai automātiski palaistu programmu startēšanas laikā, es izveidoju bash skriptu, kurā ievietoju visas programmas, kuras es vēlos palaist, un pēc tam palaižu šo bash skriptu, startējot ar rc.locale

  1. Izveidojiet direktoriju/home/pi/Scripts/un ievietojiet failu fan_ctrl.py šajā direktorijā.
  2. Tajā pašā direktorijā izveidojiet failu ar nosaukumu launcher.sh un nokopējiet zemāk esošo skriptu.
  3. Rediģējiet failu /etc/rc.locale un pievienojiet jaunu rindiņu pirms "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'

launcher.sh skripts:

#!/bin/sh #launcher.sh #dodieties uz mājas direktoriju, pēc tam uz šo direktoriju, pēc tam izpildiet python skriptu, tad atpakaļ homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/

Ja vēlaties to izmantot, piemēram, ar OSMC, jums tas jāsāk kā pakalpojums ar systemd.

  1. Lejupielādējiet fanctrl.service failu.
  2. Pārbaudiet ceļu uz savu python failu.
  3. Ievietojiet fanctrl.service mapē/lib/systemd/system.
  4. Visbeidzot, iespējojiet pakalpojumu, izmantojot sudo systemctl enable fanctrl.service.

Šī metode ir drošāka, jo programma tiks automātiski restartēta, ja lietotājs vai sistēma to nogalinās.

Ieteicams: