Projelerinize çevre güvenliği, otomatik aydınlatma veya enerji tasarrufu gibi özellikler kazandırmak istediğinizde en güvenilir çözümlerden biri HC-SR501 PIR (Pasif Kızılötesi) sensörüdür. Bu sensör, ortamdaki canlıların yaydığı kızılötesi (ısı) dalgalarındaki değişimleri analiz ederek çalışır. Mikrodalga radar sensörlerinin aksine duvarların arkasını göremez, ancak sadece kendi görüş alanındaki (yaklaşık 110 derecelik bir koni içinde) gerçek fiziksel hareketleri yakalamada son derece başarılı ve ekonomiktir.

PIR sensörü hareket algıladığında çıkış bacağından 3.3V (Lojik YÜKSEK) sinyal üretir. Arduino Uno bu seviyeyi dijital pinlerinden doğrudan okuyabilir. Aşağıdaki kod, sensörün durumunu sürekli kontrol ederek hareket anında seri port ekranına uyarı basar ve dahili LED'i yakar:
// PIR Sensör çıkış pininin bağlanacağı dijital bacak
const int pir_pini = 4;
const int led_pini = 13; // Durumu gözlemlemek için Arduino üzerindeki dahili LED
// Sensörün bir önceki durumunu hafızada tutmak için değişken
int son_durum = LOW;
void setup() {
Serial.begin(9600);
// Sensör pinini giriş, LED pinini çıkış olarak ayarlıyoruz
pinMode(pir_pini, INPUT);
pinMode(led_pini, OUTPUT);
Serial.println("PIR Sensoru Kalibre Ediliyor... (Yaklasik 15-60 saniye bekleyin)");
// Sensörün ortamdaki kızılötesi haritayı çıkarıp kararlı hale gelmesi için ilk açılışta süre tanıyoruz
delay(20000);
Serial.println("Sistem Aktif. Hareket bekleniyor...");
}
void loop() {
// Sensörün çıkış pinindeki dijital değeri okuyoruz (HIGH veya LOW)
int guncel_durum = digitalRead(pir_pini);
// Eğer ortamda yeni bir hareket algılandıysa (LOW'dan HIGH'a geçiş)
if (guncel_durum == HIGH && son_durum == LOW) {
Serial.println("UYARI: Bir hareket algilandi!");
digitalWrite(led_pini, HIGH); // LED'i yak
son_durum = HIGH; // Durumu güncelle
}
// Eğer hareket bittiyse ve sensör çıkışı sıfıra düştüyse (HIGH'dan LOW'a geçiş)
else if (guncel_durum == LOW && son_durum == HIGH) {
Serial.println("Hareket bitti, ortam sakin.");
digitalWrite(led_pini, LOW); // LED'i söndür
son_durum = LOW; // Durumu güncelle
}
delay(10); // İşlemciyi yormamak için çok kısa bir döngü gecikmesi
}
Sensörün köşesinde yer alan sarı renkli plastik başlık (Jumper), hareket algılama karakteristiğini tamamen değiştiren iki farklı moda sahiptir:
L Modu (Single Trigger - Tekli Tetikleme): Hareket algılandığı an çıkış HIGH olur. Zaman potansiyometresi süresince (örneğin 5 saniye) çıkış HIGH kalmaya devam eder. Bu süre içinde önünde ne kadar çok hareket olursa olsun süre uzamaz; süre bitince çıkış LOW'a düşer ve tekrar tetiklenmeyi bekler.
H Modu (Repeatable Trigger - Tekrarlanabilir Tetikleme): Sitenizdeki projelerde varsayılan olarak kullanmanızı önerdiğimiz moddur. Hareket algılandığında çıkış HIGH olur. Eğer belirlenen süre dolmadan önce sensörün önünde hareket devam ediyorsa, zamanlayıcı sürekli sıfırlanır ve çıkış kesintisiz olarak HIGH kalmaya devam eder. Hareket tamamen durduktan sonra süre saymaya başlar ve süre bitiminde LOW'a düşer.
Henüz yorum yapılmamış. İlk yorumu siz yapın!