Arduino, birçok farklı sensör ve modül ile kullanılabilir olması nedeniyle DIY projelerinde oldukça popüler bir mikrodenetleyicidir. Bu projede, bir HC-SR501 Hareket Sensörü ve bir buzzer modülü kullanarak basit bir hırsız alarmı yapacağız. Devremiz, hareket algılandığında hem sesli hem de görsel bir uyarı verecek şekilde tasarlandı. Bu tip bir alarm sistemi, ev güvenliğinde veya bir alanın izlenmesi gerektiğinde kullanılabilir.
Hareket algılama işlemini gerçekleştiren HC-SR501 sensörü, ortamda bir hareket olduğunda bir sinyal üretir. Arduino bu sinyali algılar ve bağlı buzzer ile ses çıkarır. Ek olarak, devredeki LED ışığı yanarak görsel bir uyarı sağlar.
Proje detayları, devre kurulumu ve kodlama süreci aşağıda detaylı olarak açıklanmıştır.
Proje İçin Gerekli Malzemeler:
- Arduino (Uno veya diğer modeller)
- HC-SR501 Hareket Sensörü
- Buzzer Modülü
- LED (Hareket algılandığında yanacak)
- 220 Ohm Direnç (LED için akımı sınırlamak amacıyla)
- Breadboard
- Jumper Kablolar
Bağlantı Şeması:

- HC-SR501 Hareket Sensörü:
- VCC -> Arduino 5V
- GND -> Arduino GND
- OUT -> Arduino A0
- Buzzer:
- Pozitif uç -> Arduino D2
- Negatif uç -> Arduino GND
- LED:
- Anot (uzun bacak) -> Arduino D3 (220 ohm direnç üzerinden)
- Katot (kısa bacak) -> Arduino GND
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | //-------------------------------------------------// //-------------------KODKAMPUSU--------------------// //---Arduino | Hareket Sensörü ile Hırsız Alarmı---// //-------------------------------------------------// // Pin tanımlamaları const int pirsensor = A0; // HC-SR501 hareket sensörünün bağlı olduğu pin const int buzzer = 2; // Buzzer modülünün bağlı olduğu pin const int led = 3; // LED'in bağlı olduğu pin int pirsensvalue = 0; // Sensörden gelecek veriyi saklamak için bir değişken void setup() { Serial.begin(9600); // Seri haberleşmeyi 9600 baud hızında başlatıyoruz pinMode(pirsensor, INPUT); // Hareket sensörünü giriş birimi olarak ayarlıyoruz pinMode(buzzer, OUTPUT); // Buzzer modülünü çıkış birimi olarak ayarlıyoruz pinMode(led, OUTPUT); // LED'i çıkış birimi olarak ayarlıyoruz } void loop() { // Hareket sensöründen gelen veriyi okuyoruz pirsensvalue = analogRead(pirsensor); // Eğer hareket algılanmışsa (200 değerinin üzerinde bir veri varsa) if (pirsensvalue >= 200) { digitalWrite(led, HIGH); // LED'i yak tone(buzzer, 1000); // Buzzer'dan 1000 Hz frekansında ses çıkar delay(100); // Kısa bir süre bekle noTone(buzzer); // Buzzer'ı kapat delay(100); // Sesler arasında kısa bir boşluk bırak } else { // Hareket algılanmadığında LED'i kapat ve buzzer sessiz kalsın digitalWrite(led, LOW); noTone(buzzer); } } |
Açıklamalar ve Dikkat Edilmesi Gereken Noktalar
- Hareket Sensörü Ayarları:
- HC-SR501 hareket sensöründe iki adet ayar potansiyometresi bulunur:
- Tetikleme süresi: Sensörün sinyal üretme süresini ayarlar.
- Algılama mesafesi: Sensörün algılayabileceği maksimum mesafeyi ayarlar. Bu ayarları, ihtiyacınıza göre yapabilirsiniz.
- HC-SR501 hareket sensöründe iki adet ayar potansiyometresi bulunur:
- Direnç Kullanımı:
- LED devresine 220 ohm direnç ekleyerek aşırı akım nedeniyle LED’in yanmasını önlüyoruz. Bu direnç ihmal edilmemelidir.
- Bağlantılar:
- Sensör ve modüller doğru bağlantı yapılmazsa çalışmayabilir. Özellikle sensörün VCC ve GND pinlerini doğru bağladığınızdan emin olun.
- Güç Kaynağı:
- Arduino’nun enerji kaynağı yeterli değilse, harici bir güç kaynağı kullanmayı düşünebilirsiniz.
- Frekans ve Gecikme Ayarları:
- Buzzer’dan çıkan sesin frekansı ve sürelerini
tone()
vedelay()
fonksiyonlarını değiştirerek düzenleyebilirsiniz.
- Buzzer’dan çıkan sesin frekansı ve sürelerini
- Algılama Hassasiyeti:
- Kodda hareket algılama eşik değeri olarak
200
kullanılmıştır. Bu değeri artırarak ya da azaltarak sensör hassasiyetini ayarlayabilirsiniz.
- Kodda hareket algılama eşik değeri olarak
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz 🙂