Mundarija:

Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan: 4 qadam (rasmlar bilan)
Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan: 4 qadam (rasmlar bilan)

Video: Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan: 4 qadam (rasmlar bilan)

Video: Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan: 4 qadam (rasmlar bilan)
Video: BTT Manta M8P v2 - CM4 with eMMC 2024, Noyabr
Anonim
Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan
Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan

Raspberry Pi uchun ko'p holatlar protsessorni sovutishga yordam berish uchun 5Vli kichik fan bilan birga keladi. Biroq, bu muxlislar odatda juda shovqinli va ko'p odamlar shovqinni kamaytirish uchun 3V3 piniga ulashadi. Bu fanatlar odatda 200mA uchun baholanadi, bu RPi -dagi 3V3 regulyatori uchun juda yuqori. Bu loyiha sizga fanat tezligini CPU haroratiga qarab tartibga solishni o'rgatadi. Bu mavzuni qamrab oladigan darsliklardan farqli o'laroq, biz fanatni faqat yoqmaymiz, o'chirmaymiz, balki Python yordamida oddiy kompyuterda bo'lgani kabi uning tezligini ham nazorat qilamiz.

1 -qadam: kerakli qismlar

Ushbu loyiha uchun biz, odatda, Amazonda topishingiz mumkin bo'lgan sevimli mashg'ulotlari uchun elektronika to'plamiga kiritilgan bir nechta komponentlardan foydalanamiz.

  • Raspberry Pi bilan ishlaydigan Raspberry Pi (lekin boshqa distribyutorlar bilan ishlashi kerak).
  • 5V fan (lekin 12V fanni moslashtirilgan tranzistor va 12V quvvat manbai bilan ishlatish mumkin).
  • 2N2222A kabi kamida 300mA quvvatlaydigan NPN tranzistor.
  • 1K qarshilik.
  • 1 diod.

Majburiy emas, komponentlarni korpus ichiga qo'yish (lekin hali bajarilmagan):

  • Komponentlarni lehimlash uchun protoboardning kichik bir qismi.
  • Kengashni himoya qilish uchun katta issiqlik qisqarishi.

2 -qadam: Elektr aloqasi

Elektr aloqalari
Elektr aloqalari
Elektr aloqalari
Elektr aloqalari
Elektr aloqalari
Elektr aloqalari

Rezistorni har qanday usulda ulash mumkin, lekin tranzistor va diodning yo'nalishiga ehtiyot bo'ling. Diodning katodi +5V (qizil) simga, anod esa GND (qora) simga ulangan bo'lishi kerak. Emitent, tayanch va kollektor pinlari uchun tranzistorli hujjatni tekshiring. Fanning yerini Kollektorga, Rpi -ni esa Emitterga ulash lozim

Ventilyatorni boshqarish uchun biz ochiq kollektor konfiguratsiyasida ishlatiladigan tranzistordan foydalanishimiz kerak. Shunday qilib, bizda fanning tuproqli simini malina pi eriga ulaydigan yoki uzadigan kalit mavjud.

NPN BJT tranzistorlari uning eshigida oqayotgan oqimga qarab o'tkazadi. Kollektordan (C) emitentga (E) o'tishi mumkin bo'lgan oqim:

Ic = B * Ib

Ic - kollektor orqali emitentdan oqadigan oqim, Ib - bazadan emitentga o'tadigan oqim, B (beta) - har bir tranzistorga bog'liq bo'lgan qiymat. Biz B = 100 ga yaqin bo'lamiz.

Bizning fan 200mA deb baholanganligi uchun bizga tranzistor bazasi orqali kamida 2mA kerak. Baza va emitent (Vbe) orasidagi kuchlanish doimiy deb hisoblanadi va Vbe = 0, 7V. Bu shuni anglatadiki, GPIO yoqilganda bizda qarshilikda 3.3 - 0.7 = 2.6V bo'ladi. Ushbu rezistor orqali 2mA bo'lishi uchun bizga maksimal qarshilik 2,6 / 0,002 = 1300 ohm kerak bo'ladi. Xato chegarasini soddalashtirish va saqlash uchun biz 1000 ohmli rezistordan foydalanamiz. Bizda GPIO pin orqali 2,6mA bo'ladi, bu mutlaqo xavfsiz.

Ventilyator asosan elektr dvigateli bo'lgani uchun bu induktiv zaryaddir. Bu shuni anglatadiki, tranzistor o'tkazishni to'xtatganda, fanning oqimi davom etadi, chunki induktiv zaryad tokni doimiy ushlab turishga harakat qiladi. Bu fanning tuproqli pinida yuqori kuchlanishni keltirib chiqaradi va tranzistorga zarar etkazishi mumkin. Shuning uchun bizga fan orqali parallel ravishda diod kerak bo'ladi, u doimiy ravishda dvigatel orqali oqim o'tkazadi. Ushbu turdagi diodlarni o'rnatish volanli diod deb ataladi

3 -qadam: Fan tezligini boshqarish dasturi

Fan tezligini nazorat qilish uchun biz RPi. GPIO kutubxonasidan PWM dasturiy signalidan foydalanamiz. PWM signali elektr motorlarini boshqarishga yaxshi moslashgan, chunki ularning reaksiya vaqti PWM chastotasiga nisbatan juda yuqori.

Terminalda ishlash orqali FAN_MIN qiymatini topish uchun calib_fan.py dasturidan foydalaning:

python calib_fan.py

0 dan 100% gacha bo'lgan bir nechta qiymatlarni tekshiring (taxminan 20% bo'lishi kerak) va muxlisingiz yoqish uchun minimal qiymat qancha ekanligini ko'ring.

Kodning boshida harorat va fan tezligi o'rtasidagi yozishmalarni o'zgartirishingiz mumkin. SpeedSteps qiymatlari kabi juda ko'p tempSteps bo'lishi kerak. Bu odatda kompyuterning anakartlarida, 2 o'qli Temp / Speed tezligida harakatlanadigan nuqtalarda qo'llaniladi.

4 -qadam: Dasturni ishga tushirishda ishga tushiring

Dasturni ishga tushirish paytida avtomatik ravishda ishga tushirish uchun men bosh skriptni yaratdim, u erda men ishga tushirmoqchi bo'lgan barcha dasturlarni qo'ydim va keyin rc.locale yordamida ishga tushirishda bu bosh skriptni ishga tushiraman.

  1. /Home/pi/Scripts/katalogini yarating va fan_ctrl.py faylini o'sha katalogga joylashtiring.
  2. Xuddi shu katalogda launcher.sh nomli fayl yarating va quyida skriptdan nusxa oling.
  3. /Etc/rc.locale faylini tahrirlang va "chiqish 0" oldidan yangi qator qo'shing: sudo sh '/home/pi/Scripts/launcher.sh'

launcher.sh skript:

#!/bin/sh #launcher.sh #uy katalogiga o'ting, keyin bu katalogga o'ting, keyin python skriptini ishga tushiring, so'ngra homelocalecd/cd/home/pi/skriptlar/sudo python3./fan_ctrl.py & cd/

Agar siz uni OSMC bilan ishlatmoqchi bo'lsangiz, uni systemd bilan xizmat sifatida boshlashingiz kerak.

  1. Fanctrl.service faylini yuklab oling.
  2. Python faylingiz yo'lini tekshiring.
  3. Fanctrl.service ni/lib/systemd/system ga joylashtiring.
  4. Nihoyat, xizmatni sudo systemctl bilan yoqish fanctrl.service.

Bu usul xavfsizroq, chunki foydalanuvchi yoki tizim o'ldirsa, dastur avtomatik ravishda qayta ishga tushiriladi.

Tavsiya: