Yazılardaki ürünleri komponentci.net'te inceleyebilir, hemen sipariş verebilirsiniz.komponentci.net →
KomponentciBlog Mağaza
Blog  ›  Projeler

Sıcaklığa Göre Çalışan Fan Projesi: DHT11 ve MOSFET

Sıcaklığa Göre Çalışan Fan Projesi: DHT11 ve MOSFET
Kısa cevap

Sıcaklığa göre çalışan fan, DHT11 ya da DS18B20 gibi bir sıcaklık sensörü, Arduino ve MOSFET sürücü kartıyla yapılır. Arduino sıcaklığı ölçer, belirlenen eşiğin üstünde 12V fanı çalıştırır ve sıcaklık arttıkça PWM ile hızını yükseltir. Proje 12V adaptörle çalışır; 220V hiç kullanılmaz.

Odanız ısındığında kendiliğinden çalışan, serinleyince duran bir fan; ortaokul ve lise öğrencileri için otomatik kontrolü anlatan en anlaşılır projelerden biridir. Bu yazıda bir sıcaklık sensörü, Arduino ve MOSFET kartıyla 12V bir fanı sıcaklığa göre hızlandırıyoruz. Malzeme listesi, adım adım bağlantı, hazır kod, güvenlik kuralları ve TÜBİTAK 4006 gibi sergiler için sunum önerileri yazıda yer alıyor.

Sıcaklığa göre çalışan fan nedir?

Sıcaklığa göre çalışan fan, ortam sıcaklığını ölçüp fanı yalnızca gerektiğinde ve gerektiği hızda çalıştıran küçük bir otomatik kontrol sistemidir. Bilgisayar kasalarındaki ve klimalardaki fan kontrolü de aynı ilkeye dayanır.

Sistem dört adımı sürekli tekrarlar: sensör ölçer, Arduino karar verir, MOSFET fanı sürer, sensör yeniden ölçer. Bu döngüye geri besleme denir. Fan gereksiz yere çalışmadığı için enerji de tasarruf edilir; bu, raporunuzda öne çıkarabileceğiniz bir sonuçtur.

Hangi malzemeler gerekir?

Bu proje için Arduino Uno, DHT11 sensör kartı, IRF520 MOSFET kartı, 12V küçük bir fan, bir koruma diyotu ve 12V 1A adaptör yeterlidir.

Malzeme listesi

MalzemeAdetNe işe yarar?
Arduino Uno R3 (CH340, USB kablolu)1Sıcaklığı okur, fan hızını hesaplar
DHT11 sıcaklık ve nem sensör kartı1Ortam sıcaklığını ölçer
IRF520 MOSFET sürücü kartı112V fanı Arduino sinyaliyle açar, hızını ayarlar
70x70x25 mm 12V 0,15A fan (2 kablolu)1Havayı hareket ettirir
1N4004 diyot1Fan kapanırken oluşan gerilim sıçramasını söndürür
12V 1A adaptör1Fanı ve Arduino'yu besler
Jumper kablo ve breadboard1 setBağlantılar için

Fanın gücü P = V × I = 12 V × 0,15 A = 1,8 W'tır. Arduino ve sensör yaklaşık 50 mA çeker. Toplam akım 0,2 A civarında kaldığı için 1 A'lik adaptör rahatça yeter.

DHT11 mi DS18B20 mi kullanılmalı?

Oda sıcaklığı için DHT11 yeterlidir; daha hassas ölçüm ya da sıvı içinde ölçüm gerekiyorsa DS18B20 seçilmelidir. İki sensör de dijital çıkışlıdır ve Arduino'nun tek bir pinine bağlanır.

ÖzellikDHT11 kartıDS18B20 (su geçirmez)
ÖlçtüğüSıcaklık ve nemYalnızca sıcaklık
Ölçüm aralığı0 – 50 °C−55 – +125 °C
Doğruluk± 2 °C± 0,5 °C (−10 – +85 °C arası)
Okuma sıklığıEn çok saniyede 112 bitte yaklaşık 750 ms
Bağlantı3 pinli kart, direnç kartın üzerindeVeri hattına 4,7 kΩ pull-up direnci gerekir
KütüphaneDHT sensor libraryOneWire + DallasTemperature

Bu yazıdaki kod DHT11 içindir. Su geçirmez DS18B20 sensörü kullanmak isterseniz yalnızca okuma satırları değişir; ayrıntılar DS18B20 sıcaklık sensörü yazısında. İki nem sensörünün farkı ise DHT11 ve DHT22 farkı yazısında anlatılıyor.

Fan hızı PWM ile nasıl ayarlanır?

Fan hızı, Arduino'nun MOSFET'i saniyede yüzlerce kez açıp kapatmasıyla, yani PWM (darbe genişlik modülasyonu) ile ayarlanır. analogWrite(9, 0) fanı durdurur, analogWrite(9, 255) tam hızda çalıştırır; aradaki değerler fanın ortalama gerilimini düşürür.

Kodumuz 26 °C'nin altında fanı kapalı tutar. 26 °C ile 32 °C arasında hızı doğrusal olarak artırır, 32 °C ve üstünde fan tam hızda döner.

SıcaklıkPWM değeriGörev oranıFan durumu
26 °C altı0%0Kapalı
26 °C110≈ %43Yavaş
29 °C182≈ %71Orta
32 °C ve üstü255%100Tam hız

Küçük fanlar düşük PWM değerinde kalkış yapamayabilir. Bu yüzden kod, fan dururken çalışmaya başlayacağı zaman onu 0,3 saniye tam güçle "iter", sonra istenen hıza indirir. Fan 25 °C'nin altına inene kadar kapanmaz; bu 1 °C'lik fark (histerezis), eşik çevresinde fanın sürekli açılıp kapanmasını önler. PWM'in temelleri için PWM nedir yazısına bakabilirsiniz.

Devre nasıl bağlanır?

DHT11 kartının veri ucu D2'ye, MOSFET kartının SIG ucu D9'a bağlanır; fan MOSFET kartının çıkış klemensine, 12V ise Arduino'nun VIN pininden MOSFET kartının girişine gider. Bağlantıları adaptör ve USB çıkarılmışken yapın.

  1. DHT11 kartını bağlayın: + (VCC) → 5V, − (GND) → GND, OUT (S) → D2. Kartınızdaki pin yazılarını kontrol edin; sıralama üreticiye göre değişebilir.
  2. IRF520 kartının pinlerini bağlayın: SIG → D9, VCC → 5V, GND → GND.
  3. Arduino'nun VIN pinini IRF520 kartının VIN klemensine, Arduino GND'sini kartın GND klemensine bağlayın. Adaptör Arduino'nun DC jakına takıldığında VIN pininde yaklaşık 11,3V bulunur (kart üzerindeki koruma diyotu yaklaşık 0,7V düşürür).
  4. Fanın kırmızı kablosunu V+, siyah kablosunu V− klemensine vidalayın.
  5. 1N4004 diyotu fan uçlarına ters yönde bağlayın: üzerindeki gri çizgi (katot) V+ tarafında, diğer ucu V− tarafında olsun.
  6. Bağlantıları bir yetişkine kontrol ettirin. USB kablosunu takıp kodu yükleyin, ardından 12V adaptörü Arduino'nun DC jakına takın.
Sıcaklığa göre çalışan fan bağlantı şeması: DHT11 sensör kartının artı ucu Arduino Uno 5V pinine, OUT ucu D2 pinine, eksi ucu GND'ye bağlı; IRF520 MOSFET kartının SIG ucu D9'a, VIN klemensi Arduino VIN pinine, GND klemensi GND'ye bağlı; 12V 0,15A 70x70 mm fanın kırmızı kablosu V+, siyah kablosu V− klemensinde; 1N4004 diyot fan uçlarına ters yönde, katot V+ tarafında; altta grafik: 26 °C altında fan kapalı, 26 °C'de PWM 110, 29 °C'de 182, 32 °C ve üstünde 255, 25 °C'de kapanma
DHT11 D2'ye, IRF520 SIG ucu D9'a bağlanır; fan 26 °C'de PWM 110 ile başlar, 32 °C'de tam hıza çıkar.

Arduino IDE'de Kütüphane Yöneticisi'nden "DHT sensor library" (Adafruit) kütüphanesini kurun; kurulum sırasında istenen "Adafruit Unified Sensor" kütüphanesini de ekleyin.

#include <DHT.h>

const byte DHT_PIN = 2, FAN_PIN = 9;
const float T_ALT = 26.0;   // fan bu sicaklikta baslar
const float T_UST = 32.0;   // bu sicaklikta tam hiz
const int PWM_MIN = 110;    // fanin donebildigi en dusuk deger
DHT dht(DHT_PIN, DHT11);
int simdikiPwm = 0;

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(FAN_PIN, OUTPUT);
}

void loop() {
  float t = dht.readTemperature();
  if (isnan(t)) {                       // sensor okunamadi
    Serial.println(F("Sensor okunamadi"));
    delay(2000);
    return;
  }
  int pwm;
  if (t >= T_UST) pwm = 255;
  else if (t >= T_ALT) pwm = map((long)(t * 10), (long)(T_ALT * 10), (long)(T_UST * 10), PWM_MIN, 255);
  else if (simdikiPwm > 0 && t > T_ALT - 1) pwm = PWM_MIN;   // histerezis
  else pwm = 0;

  if (pwm > 0 && simdikiPwm == 0) {     // kalkis icin kisa itme
    analogWrite(FAN_PIN, 255);
    delay(300);
  }
  analogWrite(FAN_PIN, pwm);
  simdikiPwm = pwm;

  Serial.print(t);
  Serial.print(F(" C, PWM: "));
  Serial.println(pwm);
  delay(2000);                          // DHT11 en cok saniyede bir okunur
}

Seri Monitör'ü 9600 baud hızında açtığınızda her iki saniyede bir sıcaklığı ve PWM değerini görürsünüz. Eşikleri sınıfınızın sıcaklığına göre değiştirebilirsiniz; örneğin kışın denemek için T_ALT değerini 24 yapın.

Hangi güvenlik kurallarına dikkat edilmeli?

Bu projede yalnızca 12V adaptör kullanılır; 220V'luk vantilatör ya da ev aletleri devreye kesinlikle bağlanmaz.

  • Adaptörü prize bir yetişkin taksın; adaptörün kasasını açmayın.
  • Bağlantıyı değiştirmeden önce adaptörü ve USB kablosunu çıkarın.
  • Fan dönerken pervaneye parmak ya da kablo sokmayın; sergide fanın önüne bir koruma ızgarası takın.
  • Diyotun yönünü ters takmayın: ters diyot 12V hattını kısa devre eder ve adaptörü zorlar.
  • Sensörü ısıtmak için çakmak, ocak ya da saç kurutma makinesi kullanmayın; avucunuzun sıcaklığı yeterlidir.

Projeyi nasıl sunarsınız?

Projeyi, sıcaklık ile fan hızı arasındaki ilişkiyi ölçüp grafikle göstererek sunabilirsiniz. Böylece "fan çalışıyor" demek yerine bir deney sonucu ortaya koymuş olursunuz.

  • Problem: "Fan her zaman tam hızda çalışmak zorunda mı?"
  • Deney: Sensörü avucunuzla ısıtın, sonra bırakın. Seri Monitör'deki sıcaklık ve PWM değerlerini 30 saniyede bir tabloya yazın.
  • Grafik: Arduino IDE'deki Seri Çizici (Serial Plotter) ile iki değeri aynı ekranda gösterin.
  • Enerji hesabı: Sürekli çalışan fan 1,8 W harcar. Fanın günde kaç saat kapalı kaldığını ölçüp tasarrufu watt-saat olarak hesaplayın.
  • Rapor: Amaç, malzemeler, devre şeması, kod, ölçüm tablosu, grafik ve sonuç bölümlerini ekleyin.

Sergide fanı küçük bir karton kutunun ("sera" ya da "bilgisayar kasası" maketi) yan duvarına yerleştirmek, projenin günlük hayattaki karşılığını gösterir.

Sık sorulan sorular

Fan hiç dönmüyorsa ne yapmalıyım?

Önce Seri Monitör'de PWM değerinin 0'dan büyük olduğunu kontrol edin. Değer doğruysa adaptörün Arduino'nun DC jakına takılı olduğundan ve VIN ile GND'nin MOSFET kartının giriş klemensine gittiğinden emin olun. Fanın kırmızı ve siyah kablolarının yerini kontrol edin. Fan yalnızca yüksek sıcaklıkta dönüyorsa PWM_MIN değerini 130-150 yapın.

Fan neden vızıldıyor?

Vızıltı, Arduino'nun D9 pinindeki PWM frekansının (yaklaşık 490 Hz) insan kulağının duyabildiği aralıkta olmasından kaynaklanır. Bu ses zararsızdır ve fan tam hızda çalışırken kaybolur. Sergide rahatsız ediyorsa PWM_MIN değerini yükseltebilir ya da fanın yalnızca açık ve kapalı çalıştığı basit bir sürüm deneyebilirsiniz.

220V vantilatör bu devreyle kontrol edilebilir mi?

Hayır, öğrenci projesinde 220V vantilatör bu devreyle kontrol edilmemelidir. IRF520 kartı yalnızca düşük gerilimli DC yükler içindir ve şebeke elektriği ölümcül çarpılma ile yangın riski taşır. Aynı çalışma ilkesini 12V fanla göstermek yeterlidir; büyük sistemlerde bu iş yetkili elektrikçilerin kurduğu termostatlarla yapılır.

DHT11 neden "nan" ya da hatalı değer veriyor?

Bu durumda sensör okunamıyordur. Veri ucunun D2'ye, artı ucun 5V'a takılı olduğunu ve kodda DHT11 türünün seçildiğini kontrol edin. DHT11 saniyede bir defadan sık okunursa hata verir; koddaki iki saniyelik beklemeyi kısaltmayın. Uzun kablolarda bağlantıların gevşek olmadığından emin olun.

3 ya da 4 kablolu fan kullanılabilir mi?

Evet, 3 ya da 4 kablolu 12V fanlar da kullanılabilir. Kırmızı (+12V) ve siyah (GND) kabloları bu yazıdaki gibi bağlanır. Sarı kablo fanın devir bilgisini verir, mavi kablo ise 4 kablolu fanlarda ayrı bir PWM girişidir. Basit projede bu iki kabloyu boş bırakmak yeterlidir.

Özet

  • Sıcaklığa göre çalışan fan; sensör, Arduino ve MOSFET kartından oluşan bir geri besleme sistemidir.
  • DHT11 veri ucu D2'ye, IRF520 SIG ucu D9'a bağlanır; fan V+ ve V− klemensine, diyot fan uçlarına ters yönde takılır.
  • Fan 26 °C'de PWM 110 ile başlar, 32 °C'de 255 ile tam hıza çıkar; 25 °C'nin altında durur.
  • 12V 0,15A fan 1,8 W harcar; 12V 1A adaptör fanı ve Arduino'yu birlikte besler.
  • Yalnızca 12V kullanın, 220V cihaz bağlamayın ve yetişkin gözetiminde çalışın.

Bu yazıdaki ürünler

Diğer yazılar

11 Kasım 20266 dk okuma

Pense Çeşitleri: Yan Keski, Kargaburun ve Kombine Pense

Pense çeşitleri arasında seçim işe göre yapılır: tel ve komponent bacağı kesmek için yan keski, dar alanda tutmak ve bükmek için kargaburun,...

Devamını oku →
11 Kasım 20267 dk okuma

Işık Takip Eden Robot Yapımı: Arduino, LDR ve L298N

Işık takip eden robot, önüne takılan iki LDR ile hangi tarafın daha aydınlık olduğunu ölçüp tekerleklerini o yöne süren bir Arduino projesid...

Devamını oku →
11 Kasım 20266 dk okuma

İzoleli Tornavida ve 1000V VDE El Aletleri Nedir?

İzoleli tornavida, IEC 60900 (EN 60900) standardına göre 1000V AC ve 1500V DC gerilime kadar yalıtım için test edilmiş ve üzerinde çift üçge...

Devamını oku →
11 Kasım 20267 dk okuma

ESP8266 Hava Durumu Ekranı: NodeMCU, OLED ve Open-Meteo

ESP8266 hava durumu ekranı, NodeMCU kartının Wi-Fi ile internete bağlanıp Open-Meteo servisinden anlık sıcaklık, nem, rüzgâr ve hava durumu...

Devamını oku →
11 Kasım 20266 dk okuma

Havya Ucu Çeşitleri ve Bakımı: Konik, Keski, Bıçak

Havya ucu, lehimlenecek noktanın boyutuna göre seçilir: ince SMD ve sık bacaklar için konik (I), genel THT lehim için keski (D) ya da eğik k...

Devamını oku →
11 Kasım 20266 dk okuma

Ultrasonik Theremin Projesi: HC-SR04 ile Elle Müzik

Ultrasonik theremin, HC-SR04 sensörüyle elinizin uzaklığını ölçüp bu mesafeyi ses frekansına çeviren bir Arduino projesidir. El sensöre yakl...

Devamını oku →