- Katılım
- 16 Aralık 2023
- Mesajlar
- 554
- Çözümler
- 5
- Beğeniler
- 253
Akıllı dezenfektan projesi yapıyorum sensör okuyor ama röle pompa bağlıyken çalışmıyor röleye pompa bağlı değilken çalışıyor şema ve kod aşağıda mevcut sizce neden oluyor?
C++:
const int irSensorPin = 2; // IR sensörün bağlı olduğu dijital pin.
const int relayPin = 7; // Rölenin bağlı olduğu dijital pin.
void setup() {
// Pinleri çıkış veya giriş olarak tanımla.
pinMode(irSensorPin, INPUT); // IR sensöründen gelen sinyal giriş.
pinMode(relayPin, OUTPUT); // Röle kontrol sinyali çıkış.
// Başlangıçta röleyi kapalı tut (Pompa kapalı)
// Çoğu röle modülü düşük sinyalde aktif olur, bu yüzden HIGH kapalı tutar.
// Eğer sizin röleniz HIGH sinyalde aktif oluyorsa, burayı LOW yapın.
digitalWrite(relayPin, HIGH);
Serial.begin(9600); // Seri monitör için.
}
void loop() {
// IR sensörden gelen değeri oku.
int sensorValue = digitalRead(irSensorPin);
// Seri monitöre sensör değerini yazdır (hata ayıklama için)
Serial.print("IR Sensör Değeri: ");
Serial.println(sensorValue);
// Bu satırları sadece rölenizin nasıl tetiklendiğine göre değiştirmelisiniz.
if (sensorValue == LOW) { // El algılandı (sensörden LOW sinyal geldi)
Serial.println("El algılandı! Röle aktif ediliyor.");
digitalWrite(relayPin, LOW); // Eğer röle LOW sinyalde aktif oluyorsa (çoğu böyledir), bu doğru.
// Eğer röleniz HIGH sinyalde aktif oluyorsa, burayı HIGH yapın.
} else { // El algılanmadı.
Serial.println("El algılanmadı. Röle deaktif ediliyor.");
digitalWrite(relayPin, HIGH); // Eğer röle HIGH sinyalde aktif oluyorsa (çoğu böyledir), bu doğru.
// Eğer röleniz LOW sinyalde deaktif oluyorsa, burayı LOW yapın.
}
// Ayrıca setup() fonksiyonundaki başlangıç durumunu da kontrol edin:
// digitalWrite(relayPin, HIGH); // Başlangıçta kapalı tutmak için (LOW ile aktif oluyorsa)
// Eğer röleniz HIGH ile aktif oluyorsa, burayı LOW yapmalısınız.
delay(100); // Küçük bir gecikme ekle.
}