Përmbajtje:

Tifoz i rregulluar me PWM Bazuar në temperaturën e CPU për Raspberry Pi: 4 hapa (me fotografi)
Tifoz i rregulluar me PWM Bazuar në temperaturën e CPU për Raspberry Pi: 4 hapa (me fotografi)

Video: Tifoz i rregulluar me PWM Bazuar në temperaturën e CPU për Raspberry Pi: 4 hapa (me fotografi)

Video: Tifoz i rregulluar me PWM Bazuar në temperaturën e CPU për Raspberry Pi: 4 hapa (me fotografi)
Video: BTT SKR2 — Основы SKR 2 (Ред. B) 2024, Nëntor
Anonim
Tifoz i rregulluar me PWM Bazuar në temperaturën e CPU për Raspberry Pi
Tifoz i rregulluar me PWM Bazuar në temperaturën e CPU për Raspberry Pi

Shumë raste për Raspberry Pi vijnë me një tifoz të vogël 5V në mënyrë që të ndihmojnë në ftohjen e CPU. Sidoqoftë, këta tifozë janë zakonisht mjaft të zhurmshëm dhe shumë njerëz e lidhin atë në kunjin 3V3 për të zvogëluar zhurmën. Këta tifozë zakonisht vlerësohen për 200mA që është mjaft e lartë për rregullatorin 3V3 në RPi. Ky projekt do t'ju mësojë se si të rregulloni shpejtësinë e ventilatorit bazuar në temperaturën e CPU. Ndryshe nga shumica e mësimeve që mbulojnë këtë temë, ne jo vetëm që do të ndezim ose fikim tifozin, por do të kontrollojmë shpejtësinë e tij ashtu siç është bërë në PC të zakonshëm, duke përdorur Python.

Hapi 1: Pjesët e nevojshme

Për këtë projekt, ne do të përdorim vetëm disa komponentë që zakonisht përfshihen në komplete elektronike për hobi që mund t'i gjeni në Amazon, si ky.

  • Raspberry Pi që drejton Raspbian (por duhet të punojë me shpërndarjet e tjera).
  • Tifoz 5V (por një tifoz 12V mund të përdoret me një tranzistor të përshtatur dhe një furnizim me energji 12V).
  • Transistor NPN që mbështet të paktën 300mA, si një 2N2222A.
  • Rezistencë 1K.
  • 1 diodë.

Opsionale, për të vendosur përbërësit brenda kasës (por nuk është bërë ende):

  • Një copë e vogël protoboard, për të bashkuar përbërësit.
  • Tkurrja e madhe e nxehtësisë, për të mbrojtur tabelën.

Hapi 2: Lidhjet elektrike

Lidhjet elektrike
Lidhjet elektrike
Lidhjet elektrike
Lidhjet elektrike
Lidhjet elektrike
Lidhjet elektrike

Rezistori mund të lidhet në çdo mënyrë, por kini kujdes për drejtimin e tranzistorit dhe diodës. Katoda e Diodës duhet të lidhet me tela +5V (e kuqe), dhe anoda duhet të lidhet me tela GND (e zezë). Kontrolloni dokumentin tuaj të tranzistorit për kunjat Emitter, Base dhe Collector. Toka e ventilatorit duhet të lidhet me Kolektorin, dhe toka e Rpi duhet të lidhet me Emitter

Për të kontrolluar ventilatorin, duhet të përdorim një tranzistor që do të përdoret në konfigurimin e hapur të kolektorit. Duke e bërë këtë, ne kemi një ndërprerës që do të lidhë ose shkëputë telin e tokëzimit nga ventilatori në tokën e mjedrës pi.

Një transistor NPN BJT kryhet në varësi të rrymës që rrjedh në portën e tij. Rryma që do të lejohet të rrjedhë nga kolektori (C) në emetuesin (E) është:

Ic = B * Ib

Ic është rryma që rrjedh nëpër kolektorin emetues, Ib është rryma që rrjedh përmes bazës te emetuesi, dhe B (beta) është një vlerë në varësi të secilit transistor. Ne përafrojmë B = 100.

Meqenëse ventilatori ynë vlerësohet si 200mA, ne kemi nevojë për të paktën 2mA përmes bazës së tranzistorit. Tensioni midis bazës dhe emetuesit (Vbe) konsiderohet konstant dhe Vbe = 0, 7V. Kjo do të thotë që kur GPIO është ndezur, ne kemi 3.3 - 0.7 = 2.6V në rezistencë. Për të pasur 2mA përmes atij rezistori, ne kemi nevojë për një rezistencë prej, maksimale, 2.6 / 0.002 = 1300 ohm. Ne përdorim një rezistencë prej 1000 Ohm për të thjeshtuar dhe mbajtur një diferencë gabimi. Ne do të kemi 2.6mA përmes pinit GPIO i cili është plotësisht i sigurt.

Meqenëse një tifoz është në thelb një motor elektrik, është një ngarkesë induktive. Kjo do të thotë se kur tranzistori ndalon përçimin, rryma në ventilator do të vazhdojë të rrjedhë ndërsa një ngarkesë induktive përpiqet të mbajë rrymën konstante. Kjo do të rezultojë në një tension të lartë në kunjin e ventilatorit dhe mund të dëmtojë tranzistorin. Kjo është arsyeja pse ne kemi nevojë për një diodë paralelisht me tifozin e cila do të bëjë që rryma të rrjedhë vazhdimisht nëpër motor. Ky lloj i vendosjes së diodës quhet një diodë Flywheel

Hapi 3: Programi për të kontrolluar shpejtësinë e ventilatorit

Për të kontrolluar shpejtësinë e ventilatorit, ne përdorim një sinjal softuer PWM nga biblioteka RPi. GPIO. Një Sinjal PWM është përshtatur mirë për të drejtuar motorë elektrikë, pasi koha e reagimit të tyre është shumë e lartë në krahasim me frekuencën PWM.

Përdorni programin calib_fan.py për të gjetur vlerën FAN_MIN duke ekzekutuar në terminal:

python calib_fan.py

Kontrolloni disa vlera midis 0 dhe 100% (duhet të jetë rreth 20%) dhe shihni se cila është vlera minimale që ndizet tifozi juaj.

Mund të ndryshoni korrespondencën midis temperaturës dhe shpejtësisë së ventilatorit në fillim të kodit. Duhet të ketë po aq tempSteps sa vlerat e speedSteps. Kjo është metoda që përdoret përgjithësisht në pllakat amë të PC, duke lëvizur pikat në një grafik 2-aksesh Temp / Speed.

Hapi 4: Drejtoni Programin në Fillim

Për të drejtuar programin automatikisht në fillimin, kam bërë një skenar bash ku kam vendosur të gjitha programet që dua të lançoj, dhe më pas e nis këtë skenar bash në fillim me rc.locale

  1. Krijoni një drejtori/home/pi/Scripts/dhe vendosni skedarin fan_ctrl.py brenda atij drejtorie.
  2. Në të njëjtën drejtori, krijoni një skedar të quajtur launcher.sh dhe kopjoni skriptin më poshtë.
  3. Ndryshoni skedarin /etc/rc.locale dhe shtoni një rresht të ri para "daljes 0": sudo sh '/home/pi/Scripts/launcher.sh'

skenari launcher.sh:

#!/bin/sh #launcher.sh #lundroni në drejtorinë e shtëpisë, pastaj në këtë drejtori, pastaj ekzekutoni skriptin python, pastaj kthejeni homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/

Nëse dëshironi ta përdorni me OSMC për shembull, duhet ta filloni si një shërbim me systemd.

  1. Shkarkoni skedarin fanctrl.service.
  2. Kontrolloni rrugën drejt skedarit tuaj python.
  3. Vendosni fanctrl.service në/lib/systemd/system.
  4. Së fundi, aktivizoni shërbimin me sudo systemctl enable fanctrl.service.

Kjo metodë është më e sigurt, pasi programi do të riniset automatikisht nëse vritet nga përdoruesi ose sistemi.

Recommended: