disket.net Beta
Konu Listesine Dön

Raspberry Pi 4 için fan kontrolcü önerisi ve PWM sorunu

Soğutma Sistemleri Açılış: 09.08.2026 19:16 33 Görüntülenme
Selam dostlar, uzun süredir sessizce forumu takip ediyorum, ilk konum. Elimde bir Raspberry Pi 4B (8GB) var ve kasa olarak da akrilik bir şeffaf kasa kullanıyorum. İşlemci özellikle yaz aylarında 80°C'yi geçiyor, bu yüzden 5V'lik bir fan taktım ama fan sürekli tam hızda dönüyor ve geceleri çok ses yapıyor. Ben de bir fan kontrolcü devresi yapmak istiyorum. Aklımda birkaç soru var: 1) Raspberry Pi'nin GPIO pinlerinden (özellikle 12. pin, GPIO18) PWM çıkışı alıp bir MOSFET (örn. IRLZ44N) ile fanı sürmek mantıklı mı? 2) Fanın tachometre (hız sensörü) çıkışını okumak için bir devre kurmak istiyorum, ama bu pin 3.3V ile mi beslenmeli, yoksa 5V ile mi? 3) Sıcaklığa göre otomatik hız kontrolü için Python'da basit bir script yazmak istiyorum, ama sistemde zaten var olan 'vcgencmd' komutunu kullanmak yeterli mi? Şimdiden teşekkürler, yoldaşlar!

Cevaplar (2)

Merhaba glitchlord75, güzel bir proje! PWM ile fan sürmek için IRLZ44N iyi bir seçim, ama dikkat et: IRLZ44N mantık seviyesi bir MOSFET değildir (tamamen açılması için 10V gate voltajı gerekir). Raspberry Pi'nin 3.3V çıkışı ile tam olarak süremezsin, bu yüzden fan tam hızda dönmeyebilir veya ısınabilir. Bunun yerine mantık seviyesi MOSFET kullanmanı öneririm, örneğin IRLZ34N veya IRL540N (bunlar 3.3V ile sürülebilir). Ayrıca gate direnci (100Ω) ve gate-source arasına 10kΩ pull-down direnci eklemen şart. Fanın tachometre çıkışı genelde açık kollektördür, bu yüzden 3.3V'a pull-up direnci (4.7kΩ) bağlamalısın ve GPIO pinini 3.3V toleranslı bir pine takmalısın (GPIO18 buna uygun). Python scripti için 'vcgencmd measure_temp' komutunu kullanabilirsin, ama daha iyi bir yöntem 'pigpio' kütüphanesini kullanmak; çünkü donanım PWM'i ile daha hassas kontrol sağlar. Örnek bir script yazayım:

```python
import pigpio
import time
import subprocess

pi = pigpio.pi()
fan_pin = 18
pi.set_PWM_frequency(fan_pin, 25000) # 25kHz PWM

while True:
temp = float(subprocess.check_output(['vcgencmd', 'measure_temp']).decode().split('=')[1].split('\'')[0])
if temp < 50:
duty = 0
elif temp > 70:
duty = 100
else:
duty = (temp - 50) * 5 # 50-70 arası linear
pi.set_PWM_dutycycle(fan_pin, duty * 2.55) # 0-255 arası
time.sleep(5)
```

Bu scripti root olarak çalıştırmayı unutma (pigpio daemon gerektirir). Kolay gelsin!



IRLZ44N mantık seviyesi bir MOSFET değildir (tamamen açılması için 10V gate voltajı gerekir). Raspberry Pi'nin 3.3V çıkışı ile tam olarak süremezsin



Haklısın floppyknight74, IRLZ44N ile denedim ve gerçekten fan tam hızda dönmüyordu, sadece uğultu yapıyordu. IRLZ34N sipariş ettim, gelince deneyeceğim. Ayrıca pigpio kütüphanesini kurup scriptini çalıştırdım, ama bir sorunla karşılaştım: pigpio daemon'ı başlatamadım (sudo pigpiod komutu hata veriyor). Sonra fark ettim ki sistemde systemd servisi olarak aktif değilmiş, 'sudo systemctl enable pigpiod' ve 'sudo systemctl start pigpiod' ile çözdüm. Şimdi sıcaklık 45°C'de fan tamamen duruyor, 70°C'de ise %100 hızda. Ayrıca tachometre için 3.3V pull-up bağladım ve GPIO12'ye (32. pin) bağladım, sorunsuz okuyorum. Herkese teşekkürler, sorun çözüldü!

Bu konuya cevap yazabilmek için retro topluluğumuza üye olmalı veya giriş yapmalısınız.

İlgili Konular & Benzer Paylaşımlar

Eski bir VGA kartına (ATI Radeon 9250) sıvı soğutma takmak mantıklı mı? Kategori: Soğutma Sistemleri
Amiga 1200'deki eski 3.3V regülatörü çok ısınıyor, fan takmadan çözüm var mı? Kategori: Soğutma Sistemleri
Eski Athlon XP 2400+ işlemcim 70 dereceye çıkıyor, soğutucu önerisi? Kategori: Soğutma Sistemleri