Talaan ng mga Nilalaman:

Naayos ang Fan ng PWM Batay sa Temperatura ng CPU para sa Raspberry Pi: 4 na Hakbang (na may Mga Larawan)
Naayos ang Fan ng PWM Batay sa Temperatura ng CPU para sa Raspberry Pi: 4 na Hakbang (na may Mga Larawan)

Video: Naayos ang Fan ng PWM Batay sa Temperatura ng CPU para sa Raspberry Pi: 4 na Hakbang (na may Mga Larawan)

Video: Naayos ang Fan ng PWM Batay sa Temperatura ng CPU para sa Raspberry Pi: 4 na Hakbang (na may Mga Larawan)
Video: Объяснение прошивки Marlin 2.0.x 2024, Disyembre
Anonim
Ang PWM Regulated Fan Batay sa Temperatura ng CPU para sa Raspberry Pi
Ang PWM Regulated Fan Batay sa Temperatura ng CPU para sa Raspberry Pi

Maraming mga kaso para sa Raspberry Pi ay mayroong kaunting 5V fan upang matulungan ang paglamig ng CPU. Gayunpaman, ang mga tagahanga na ito ay karaniwang medyo maingay at maraming mga tao ang plug ito sa 3V3 pin upang mabawasan ang ingay. Ang mga tagahanga na ito ay karaniwang na-rate para sa 200mA na medyo mataas para sa 3V3 regulator sa RPi. Tuturuan ka ng proyektong ito kung paano makontrol ang bilis ng fan batay sa temperatura ng CPU. Hindi tulad ng karamihan sa mga tutorial na sumasaklaw sa paksang ito, hindi lamang namin bubuksan o i-off ang fan, ngunit makokontrol namin ang bilis nito tulad ng tapos na sa mainstream PC, gamit ang Python.

Hakbang 1: Kailangan ng Mga Bahagi

Para sa proyektong ito, gagamitin lamang namin ang ilang mga bahagi na karaniwang kasama sa mga electronics kit para sa hobbyist na mahahanap mo sa Amazon, tulad ng isang ito.

  • Ang Raspberry Pi ay tumatakbo sa Raspbian (ngunit dapat na gumana sa iba pang mga distribs).
  • 5V Fan (ngunit ang isang 12V fan ay maaaring magamit sa isang adapted transistor at isang 12V power supply).
  • NPN transistor na sumusuporta sa hindi bababa sa 300mA, tulad ng isang 2N2222A.
  • 1K risistor
  • 1 diode.

Opsyonal, upang ilagay ang mga sangkap sa loob ng kaso (ngunit hindi pa tapos):

  • Isang maliit na piraso ng protoboard, upang maghinang ng mga bahagi.
  • Maliliit na pag-urong ng init, upang maprotektahan ang board.

Hakbang 2: Mga Koneksyon sa Elektrisiko

Mga elektrikal na koneksyon
Mga elektrikal na koneksyon
Mga elektrikal na koneksyon
Mga elektrikal na koneksyon
Mga elektrikal na koneksyon
Mga elektrikal na koneksyon

Ang Resistor ay maaaring mai-plug sa alinmang paraan, ngunit mag-ingat tungkol sa direksyon ng transistor at diode. Ang katod ni Diode ay dapat na konektado sa + 5V (pula) na kawad, at ang anode ay dapat na konektado sa GND (itim) na kawad. Suriin ang iyong transistor doc para sa mga pin ng Emitter, Base at Collector. Ang lupa ng Fan ay dapat na konektado sa Kolektor, at ang lupa ng Rpi ay dapat na konektado sa Emitter

Upang makontrol ang tagahanga, kailangan naming gumamit ng isang transistor na gagamitin ng hindi bukas na pagsasaayos ng kolektor. Sa pamamagitan nito, mayroon kaming switch na magkokonekta o magdidiskonekta ng ground wire mula sa fan hanggang sa lupa ng raspberry pi.

Ang isang NPN BJT transistor ay nagsasagawa depende sa kasalukuyang dumadaloy sa kanyang gate. Ang kasalukuyang pinapayagan na dumaloy mula sa kolektor (C) papunta sa emitter (E) ay:

Ic = B * Ib

Ang Ic ay ang kasalukuyang dumadaloy sa pamamagitan ng kolektor ng emitter, ang Ib ay ang kasalukuyang dumadaloy sa pamamagitan ng base sa emitter, at ang B (beta) ay isang halaga depende sa bawat transistor. Tinatantiya namin ang B = 100.

Tulad ng aming fan ay na-rate bilang 200mA, kailangan namin ng hindi bababa sa 2mA sa pamamagitan ng base ng transistor. Ang pag-igting sa pagitan ng base at ng emitter (Vbe) ay itinuturing na pare-pareho at Vbe = 0, 7V. Nangangahulugan ito na kapag ang GPIO ay nakabukas, mayroon kaming 3.3 - 0.7 = 2.6V sa risistor. Upang magkaroon ng 2mA sa pamamagitan ng risistor na iyon, kailangan namin ng isang risistor ng, maximum, 2.6 / 0.002 = 1300 ohm. Gumagamit kami ng isang risistor ng 1000 ohm upang gawing simple at mapanatili ang isang margin ng error. Magkakaroon kami ng 2.6mA sa pamamagitan ng pin ng GPIO na lubos na ligtas.

Bilang isang tagahanga ay karaniwang isang de-koryenteng motor, ito ay isang inductive charge. Nangangahulugan ito na kapag huminto ang transistor sa pagsasagawa, ang kasalukuyang nasa fan ay magpapatuloy na dumadaloy bilang isang inductive charge na susubukan na panatilihin ang kasalukuyang pare-pareho. Magreresulta ito sa isang mataas na boltahe sa ground pin ng fan at maaaring makapinsala sa transistor. Iyon ang dahilan kung bakit kailangan namin ng isang diode kahanay ng fan na magpapalabas ng kasalukuyang daloy ng tuloy-tuloy sa motor. Ang ganitong uri ng pag-setup ng diode ay tinatawag na isang Flywheel diode

Hakbang 3: Programa upang Makontrol ang Bilis ng Fan

Upang makontrol ang bilis ng fan, gumagamit kami ng isang signal ng PWM ng software mula sa RPi. GPIO library. Ang isang PWM Signal ay mahusay na inangkop upang maghimok ng mga de-kuryenteng motor, dahil ang kanilang oras ng reaksyon ay napakataas kumpara sa dalas ng PWM.

Gamitin ang calib_fan.py program upang hanapin ang halaga ng FAN_MIN sa pamamagitan ng pagpapatakbo sa terminal:

python calib_fan.py

Suriin ang maraming mga halaga sa pagitan ng 0 at 100% (dapat ay nasa paligid ng 20%) at tingnan kung ano ang minimum na halaga para mag-on ang iyong fan.

Maaari mong baguhin ang sulat sa pagitan ng temperatura at bilis ng fan sa simula ng code. Dapat mayroong maraming mga tempStep bilang mga halaga ng speedSteps. Ito ang pamamaraan na karaniwang ginagamit sa mga motherboard ng PC, paglipat ng mga puntos sa isang Temp / Speed 2-axis graph.

Hakbang 4: Patakbuhin ang Programa sa Startup

Upang awtomatikong patakbuhin ang programa sa pagsisimula, gumawa ako ng isang bash script kung saan inilalagay ko ang lahat ng mga program na nais kong ilunsad, at pagkatapos ay ilulunsad ko ang bash script na ito sa pagsisimula sa rc.locale

  1. Lumikha ng isang direktoryo / bahay / pi / Scripts / at ilagay ang fan_ctrl.py file sa loob ng direktoryong iyon.
  2. Sa parehong direktoryo, lumikha ng isang file na pinangalanang launcher.sh at kopyahin ang script sa ibaba.
  3. I-edit ang /etc/rc.locale file at magdagdag ng isang bagong linya bago ang "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'

launcher.sh script:

#! / bin / sh # launcher.sh # mag-navigate sa direktoryo sa bahay, pagkatapos sa direktoryong ito, pagkatapos ay magpatupad ng python script, pagkatapos ay bumalik sa homelocalecd / cd / home / pi / Scripts / sudo python3./fan_ctrl.py & cd /

Kung nais mong gamitin ito sa OSMC halimbawa, kailangan mong simulan ito bilang isang serbisyo na may systemd.

  1. I-download ang fanctrl.service file.
  2. Suriin ang landas sa iyong python file.
  3. Ilagay ang fanctrl.service sa / lib / systemd / system.
  4. Panghuli, paganahin ang serbisyo sa sudo systemctl paganahin ang fanctrl.service.

Ang pamamaraan na ito ay mas ligtas, dahil ang programa ay awtomatikong i-restart kung papatayin ng gumagamit o ng system.

Inirerekumendang: