İçindekiler:

Raspberry Pi için CPU Sıcaklığına Göre PWM Ayarlı Fan: 4 Adım (Resimli)
Raspberry Pi için CPU Sıcaklığına Göre PWM Ayarlı Fan: 4 Adım (Resimli)

Video: Raspberry Pi için CPU Sıcaklığına Göre PWM Ayarlı Fan: 4 Adım (Resimli)

Video: Raspberry Pi için CPU Sıcaklığına Göre PWM Ayarlı Fan: 4 Adım (Resimli)
Video: Sıcaklık İle DC Motorun Kontrolü 2024, Aralık
Anonim
Raspberry Pi için CPU Sıcaklığına Dayalı PWM Ayarlı Fan
Raspberry Pi için CPU Sıcaklığına Dayalı PWM Ayarlı Fan

Raspberry Pi için birçok kasa, CPU'yu soğutmaya yardımcı olmak için küçük bir 5V fan ile birlikte gelir. Ancak, bu fanlar genellikle oldukça gürültülüdür ve çoğu kişi gürültüyü azaltmak için 3V3 pinine takar. Bu fanlar genellikle RPi'deki 3V3 regülatör için oldukça yüksek olan 200mA için derecelendirilir. Bu proje size fan hızını CPU sıcaklığına göre nasıl düzenleyeceğinizi öğretecek. Bu konuyu kapsayan öğreticilerin çoğunun aksine, fanı yalnızca açıp kapatmayacağız, aynı zamanda Python kullanarak ana bilgisayardaki gibi hızını da kontrol edeceğiz.

Adım 1: Gerekli Parçalar

Bu proje için, bunun gibi Amazon'da bulabileceğiniz hobi için genellikle elektronik kitlerinde bulunan yalnızca birkaç bileşeni kullanacağız.

  • Raspberry Pi, Raspbian çalıştırıyor (ancak diğer dağıtımlarla çalışmalı).
  • 5V Fan (ancak uyarlanmış bir transistör ve 12V güç kaynağı ile 12V fan kullanılabilir).
  • 2N2222A gibi en az 300mA'yı destekleyen NPN transistörü.
  • 1K direnç.
  • 1 diyot.

Bileşenleri kasanın içine yerleştirmek için isteğe bağlı (ancak henüz yapılmadı):

  • Bileşenleri lehimlemek için küçük bir protokol parçası.
  • Tahtayı korumak için büyük ısı büzüşmeli.

Adım 2: Elektrik Bağlantıları

Elektrik bağlantıları
Elektrik bağlantıları
Elektrik bağlantıları
Elektrik bağlantıları
Elektrik bağlantıları
Elektrik bağlantıları

Direnç her iki şekilde de takılabilir, ancak transistör ve diyotun yönüne dikkat edin. Diyotun katodu +5V (kırmızı) kablosuna, anot ise GND (siyah) kablosuna bağlanmalıdır. Verici, Taban ve Toplayıcı pimleri için transistör belgenizi kontrol edin. Fanın toprağı Kollektöre, Rpi'nin toprağı ise Vericiye bağlı olmalıdır

Fanı kontrol etmek için açık kollektör konfigürasyonunda kullanılacak bir transistör kullanmamız gerekiyor. Bunu yaparak, topraklama kablosunu fandan ahududu pi'nin toprağına bağlayacak veya bağlantısını kesecek bir anahtarımız var.

Bir NPN BJT transistörü, kapısında akan akıma bağlı olarak iletir. Kollektörden (C) emitere (E) geçmesine izin verilecek akım:

Ic = B * Ib

Ic, emiterden kollektörden geçen akımdır, Ib, tabandan emitere akan akımdır ve B (beta) her transistöre bağlı bir değerdir. B = 100'e yaklaşıyoruz.

Fanımız 200mA olarak derecelendirildiği için transistörün tabanından en az 2mA'ya ihtiyacımız var. Taban ve emitör (Vbe) arasındaki gerilim sabit kabul edilir ve Vbe = 0, 7V. Bu, GPIO açıkken dirençte 3,3 - 0,7 = 2,6V olduğu anlamına gelir. Bu dirençten 2mA'ya sahip olmak için maksimum 2,6 / 0,002 = 1300 ohm'luk bir dirence ihtiyacımız var. Basitleştirmek ve hata payını korumak için 1000 ohm'luk bir direnç kullanıyoruz. Tamamen güvenli olan GPIO pininden 2.6mA'ya sahip olacağız.

Bir fan temelde bir elektrik motoru olduğundan, endüktif bir yüktür. Bu, transistör iletimi durdurduğunda, endüktif yük akımı sabit tutmaya çalışırken fandaki akımın akmaya devam edeceği anlamına gelir. Bu, fanın topraklama piminde yüksek voltaj oluşmasına neden olur ve transistöre zarar verebilir. Bu yüzden akımın motordan sürekli akmasını sağlayacak fana paralel bir diyot ihtiyacımız var. Bu tip diyot kurulumuna Volan diyot denir.

Adım 3: Fan Hızını Kontrol Eden Program

Fan hızını kontrol etmek için RPi. GPIO kitaplığından bir yazılım PWM sinyali kullanıyoruz. Bir PWM Sinyali, PWM frekansına kıyasla tepki süreleri çok yüksek olduğundan, elektrik motorlarını sürmek için iyi bir şekilde uyarlanmıştır.

Terminalde çalıştırarak FAN_MIN değerini bulmak için calib_fan.py programını kullanın:

python calib_fan.py

0 ile %100 arasında birkaç değeri kontrol edin (%20 civarında olmalıdır) ve fanınızın açılması için minimum değerin ne olduğunu görün.

Kodun başında sıcaklık ve fan hızı arasındaki uyumu değiştirebilirsiniz. speedSteps değerleri kadar tempStep olmalıdır. Bu, genellikle PC anakartlarında kullanılan, noktaları Temp / Speed 2 eksenli bir grafik üzerinde hareket ettiren yöntemdir.

Adım 4: Programı Başlangıçta Çalıştırın

Programı başlangıçta otomatik olarak çalıştırmak için başlatmak istediğim tüm programları koyduğum bir bash betiği yaptım ve ardından bu bash betiğini başlangıçta rc.locale ile başlatıyorum

  1. Bir /home/pi/Scripts/ dizini oluşturun ve fan_ctrl.py dosyasını bu dizinin içine yerleştirin.
  2. Aynı dizinde launcher.sh adında bir dosya oluşturun ve aşağıdaki betiği kopyalayın.
  3. /etc/rc.locale dosyasını düzenleyin ve "çıkış 0"dan önce yeni bir satır ekleyin: sudo sh '/home/pi/Scripts/launcher.sh'

launcher.sh komut dosyası:

#!/bin/sh#launcher.sh # ana dizine, ardından bu dizine gidin, ardından python betiğini çalıştırın, ardından homelocalecd /cd /home/pi/Scripts/sudo python3./fan_ctrl.py &cd /

Örneğin OSMC ile kullanmak istiyorsanız, systemd ile bir hizmet olarak başlatmanız gerekir.

  1. fanctrl.service dosyasını indirin.
  2. Python dosyanızın yolunu kontrol edin.
  3. fanctrl.service dosyasını /lib/systemd/system içine yerleştirin.
  4. Son olarak, hizmeti sudo systemctl enable fanctrl.service ile etkinleştirin.

Kullanıcı veya sistem tarafından öldürülürse program otomatik olarak yeniden başlatılacağından bu yöntem daha güvenlidir.

Önerilen: