Daha önce LED'leri kontrol etmeyi ve sensörlerden veri almayı öğrendiniz. Şimdi bu bilgileri birleştirerek kendi güvenlik sisteminizi yapmanın tam zamanı. Bu proje, basit bir giriş (düğme veya LDR) ile hem bir çıkış (LED) hem de bir başka çıkışı (buzzer) aynı anda kontrol etmeyi öğretecek.
Bu devrede iki farklı çıkış elemanı (LED ve buzzer) ve bir giriş elemanı (düğme veya LDR) olacak. Hangi girişi seçeceğinize bağlı olarak devre kurulumu biraz değişir.
Seçenek 1: Düğme ile Alarm
Seçenek 2: LDR ile Alarm
Alarmı tetiklemek için bir düğme veya bir LDR kullanabilirsiniz. Aşağıdaki kodda, her iki senaryo için de gerekli olan bölümler açıklanmıştır. Seçiminize göre ilgili kısmı kullanın.
C
// Değişken tanımlamaları
const int ledPin = 13; // LED pini
const int buzzerPin = 12; // Buzzer pini
// GIRIŞ AYARI: Düğme veya LDR seçimine göre aşağıdaki değişkeni kullanın
// const int inputPin = 2; // Düğme kullanıyorsanız
const int inputPin = A0; // LDR kullanıyorsanız
// Sadece LDR kullanıyorsanız eşik değerini tanımlayın
const int threshold = 300; // Karanlık eşik değeri (deneyerek ayarlayın)
void setup() {
// Seri iletişimi başlat
Serial.begin(9600);
// ÇIKIŞ pinlerini ayarla
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// GİRİŞ pinini ayarla
pinMode(inputPin, INPUT);
}
void loop() {
// GİRİŞ'ten değeri oku
int inputValue = digitalRead(inputPin); // Düğme için
// int inputValue = analogRead(inputPin); // LDR için
// Düğme için alarm kontrolü
if (digitalRead(inputPin) == HIGH) { // Eğer düğmeye basılmışsa
activateAlarm();
} else {
deactivateAlarm();
}
/*
// LDR için alarm kontrolü (Düğme kodunu yoruma alıp bunu kullanın)
if (analogRead(inputPin) < threshold) { // Eğer LDR değeri eşikten küçükse (karanlıksa)
activateAlarm();
} else {
deactivateAlarm();
}
*/
// Küçük bir bekleme
delay(10);
}
// Alarmı aktif eden fonksiyon
void activateAlarm() {
digitalWrite(ledPin, HIGH); // LED'i yak
digitalWrite(buzzerPin, HIGH); // Buzzer'ı çal
Serial.println("Alarm A C T I F");
}
// Alarmı deaktif eden fonksiyon
void deactivateAlarm() {
digitalWrite(ledPin, LOW); // LED'i söndür
digitalWrite(buzzerPin, LOW); // Buzzer'ı sustur
Serial.println("Alarm Pasif");
}
Tebrikler! Artık bir sistemden gelen veriye göre birden fazla çıkışı aynı anda kontrol etmeyi öğrendiniz. Bu temel bilgi, hareket sensörüyle tetiklenen bir ışıklandırma sistemi veya duman sensörüyle çalışan bir yangın alarmı gibi daha karmaşık projelere başlamanız için mükemmel bir adımdır.