Yaz sıcaklarında veya elektronik projelerinizde ısınan bileşenleri soğutmak için pratik bir çözüme mi ihtiyacınız var? Arduino ve basit birkaç bileşenle kendi mini soğutucu fanınızı yapabilirsiniz! Bu projede, bir DC motoru röle yardımıyla kontrol ederek bir fanı nasıl çalıştıracağınızı öğreneceksiniz. Üstelik bir buton ile fanı açıp kapatabileceksiniz.
Bu projeyi tamamlamak için ihtiyacınız olan tüm malzemeler aşağıda listelenmiştir. Bu bileşenleri elektronik mağazalarından veya online platformlardan kolayca temin edebilirsiniz.
Devre bağlantıları, projenin doğru çalışması için kritik öneme sahiptir. Aşağıdaki adımları dikkatlice takip ederek bağlantıları tamamlayın.
1. Röle Modülü Bağlantıları:
2. DC Motor ve Diyot Bağlantıları:
3. Buton Bağlantıları:
4. Güç Bağlantıları:
Devre bağlantılarını tamamladıktan sonra sıra projemizin kodlarına geldi. Arduino IDE'yi açın ve aşağıdaki kodları kopyalayıp yapıştırın. Bu kod, butona her basıldığında rölenin durumunu değiştirerek fanı açıp kapatır.
C++
// Röle ve buton pinlerini tanımlıyoruz
const int relayPin = 4; // Röle modülünün IN pinini D4'e bağladık
const int buttonPin = 2; // Buton pinini D2'ye bağladık
// Buton durumu ve fan durumu için değişkenler
int buttonState = 0; // Butonun mevcut durumu
int lastButtonState = 0; // Butonun bir önceki durumu
boolean fanState = false; // Fanın açık/kapalı durumu (başlangıçta kapalı)
void setup() {
// Röle pinini OUTPUT olarak ayarlıyoruz
pinMode(relayPin, OUTPUT);
// Buton pinini INPUT olarak ayarlıyoruz (pull-down direnci dışarıdan bağlı)
pinMode(buttonPin, INPUT);
// Başlangıçta röleyi kapalı tutuyoruz (fan kapalı)
digitalWrite(relayPin, HIGH); // Genellikle röle modüllerinde HIGH sinyal röleyi kapatır
// Modülüne göre LOW da olabilir, deneme yanılma ile bulunabilir.
Serial.begin(9600); // Seri monitörü başlatıyoruz (hata ayıklama için)
Serial.println("Mini Soğutucu Fan Hazır!");
}
void loop() {
// Butonun mevcut durumunu okuyoruz
buttonState = digitalRead(buttonPin);
// Butonun durumunda bir değişiklik olup olmadığını kontrol ediyoruz (basıldıysa)
if (buttonState != lastButtonState) {
// Eğer buton LOW'dan HIGH'a geçtiyse (yani basıldıysa)
if (buttonState == HIGH) {
// Fanın durumunu tersine çeviriyoruz (açıksa kapat, kapalıysa aç)
fanState = !fanState;
if (fanState) {
digitalWrite(relayPin, LOW); // Röleyi aç (fanı çalıştır)
Serial.println("Fan Açık");
} else {
digitalWrite(relayPin, HIGH); // Röleyi kapat (fanı durdur)
Serial.println("Fan Kapalı");
}
}
// Butonun sıçramasını engellemek için kısa bir gecikme
delay(50);
}
// Mevcut buton durumunu bir sonraki döngü için kaydediyoruz
lastButtonState = buttonState;
}
Not: Röle modülleri genellikle "active-LOW" veya "active-HIGH" olarak çalışabilir. Yani, bazı modüller LOW sinyalde açılırken, bazıları HIGH sinyalde açılır. Kodu yükledikten sonra fanınız beklendiği gibi çalışmazsa, digitalWrite(relayPin, LOW); ve digitalWrite(relayPin, HIGH); satırlarındaki LOW/HIGH değerlerini tersine çevirerek deneyebilirsiniz.
Bu projede bir butona basarak DC motoru röle aracılığıyla kontrol etmeyi öğrendiniz. Butonun durumu sürekli kontrol edilir ve her basışta fanın durumu (açık/kapalı) değişir. Diyot sayesinde motorun oluşturduğu ters akım engellenerek Arduino'nuz korunur.
Bu projeyi daha da geliştirmek istersen:
Bu proje, Arduino ile röle ve motor kontrolünü anlamak için harika bir başlangıç noktasıdır. Kendi yaratıcılığını kullanarak projeyi daha da ileri taşıyabilirsin!