Anasayfa / ROBOTİK KODLAMA / Arduino ile Hareket Sensörü (PIR) Kullanımı ve Alarm Sistemi

Arduino ile Hareket Sensörü (PIR) Kullanımı ve Alarm Sistemi

Robotik kodlama ve elektronik dünyasına adım atan öğrencilerin ilk merak ettiği konulardan biri, cihazlara “görme” veya “hissetme” yeteneği kazandırmaktır. Bir odaya girdiğinizde ışıkların otomatik yanmasını veya birisi kapıya yaklaştığında alarmın çalmasını sağlayan teknoloji aslında oldukça basittir. Bu rehberde, akıllı ev sistemlerinin ve güvenlik projelerinin vazgeçilmezi olan HC-SR501 PIR Hareket Sensörünü inceleyecek ve temel seviyede herkesin yapabileceği bir Arduino Hırsız Alarmı projesi tasarlayacağız.

PIR Hareket Sensörü (HC-SR501) Nedir ve Nasıl Çalışır?

PIR kelimesi, İngilizce “Passive Infra-Red” (Pasif Kızılötesi) teriminin baş harflerinden oluşur. Bu sensörler aktif olarak dışarıya bir ışın veya sinyal göndermezler; bunun yerine ortamdaki nesnelerin yaydığı kızılötesi radyasyonu (ısıyı) pasif olarak dinlerler.

Fiziksel olarak mutlak sıfırdan daha sıcak olan her nesne etrafına ısı yayar. İnsan vücudu da ortalama 37°C sıcaklığa sahip olduğu için dışarıya belirli bir kızılötesi dalga yayar. PIR sensörünün içindeki “piroelektrik” adı verilen (genellikle Almanya üretimi LHI778) özel eleman, ortamdaki bu ani kızılötesi dalga ve sıcaklık değişimlerini algılayarak hareketi tespit eder.

Sensörün üzerindeki beyaz renkli, yarı saydam plastik kubbeye Fresnel Lens denir. Bu lens, ortamdaki kızılötesi ışınları toplayıp sensörün odaklanmasını sağlar ve algılama alanını farklı bölgelere bölerek hareketin çok daha hassas tespit edilmesine olanak tanır.

HC-SR501 Sensörünün Özellikleri ve Ayarları

Sensörün arkasına baktığınızda çeşitli bağlantı pinleri ve ayar vidaları (potansiyometre) görebilirsiniz. Başarılı bir proje için bu ayarları bilmek çok önemlidir:

  • Çalışma Voltajı: Modül 4.5V ile 20V DC arasında çalışabilir ancak Arduino projelerinde standart olarak 5V ile beslenir.
  • Menzil (Mesafe) Ayarı (Sx): Sensörün arkasındaki potansiyometrelerden biri ile algılama mesafesi ayarlanır. Bu mesafe 3 metre ile 7 metre arasında değiştirilebilir. Potansiyometreyi saat yönünde çevirmek algılama mesafesini artırır.
  • Zaman Gecikmesi Ayarı (Tx): Hareket algılandıktan sonra sensörün Arduino’ya gönderdiği sinyalin ne kadar süre aktif kalacağını belirler. Bu süre 3 saniye ile 300 saniye (5 dakika) arasında ayarlanabilir.
  • Tetikleme Modları (Jumper): Sensör üzerinde sarı renkte küçük bir köprü (jumper) bulunur. İki modu vardır:
    • L Modu (Tekli Tetikleme): Hareket algılandığında ayarlanan süre boyunca sinyal verir ve sonra kapanır.
    • H Modu (Çoklu Tetikleme): Sensör hareketi algıladığı sürece süreyi sürekli sıfırlar ve hareket bitene kadar sinyal vermeye devam eder (Projeler için en çok tercih edilen moddur).

Alternatif Hareket Sensörleri (PIR vs. Mikrodalga Radar)

Projelerinizde sadece PIR sensör ile sınırlı değilsiniz. Ortam şartlarına göre farklı sensörler de seçebilirsiniz:

  • Mikrodalga Radar Sensörleri (Örn: RCWL-0516): Isı yerine “Doppler Etkisi” ile çalışırlar. Mikrodalgalar yayarak yansıyan dalgaları ölçerler. Duvar, ahşap veya plastik gibi engellerin arkasından bile hareketi algılayabilirler. Ancak çok hassas oldukları için dışarıdan geçen araçları bile algılayıp yanlış alarm verebilirler.
  • Ultrasonik Sensörler (Örn: HC-SR04): Ses dalgaları kullanarak mesafeyi ölçerler ve genellikle nesnelerin ne kadar uzakta olduğunu tespit etmek (örneğin park sensörü) için kullanılırlar.

Not: Ev içi basit güvenlik ve ışıklandırma sistemleri için ısıya ve insan hareketine duyarlı olan PIR sensörler açık ara en iyi, en ucuz ve en düşük enerji tüketen seçenektir.


Örnek Çalışma: Arduino ile Temel Seviye Hırsız Alarmı

Artık teorik bilgimizi pratiğe dökme zamanı! Hareket sensörü, bir LED ışık ve bir sesli uyarıcı (Buzzer) kullanarak basit bir güvenlik sistemi yapacağız. Sistem, odaya biri girdiğinde ışığı yakacak ve sesli alarm verecektir.

Gerekli Malzemeler

  • 1 Adet Arduino UNO
  • 1 Adet HC-SR501 PIR Hareket Sensörü
  • 1 Adet Buzzer (Ses modülü)
  • 1 Adet LED
  • 1 Adet 220 Ohm veya 330 Ohm Direnç
  • Breadboard ve bağlantı kabloları (Jumper)

Devre Bağlantısı (Kablolama)

Kurulum oldukça basittir:

  1. PIR Sensörü: VCC pinini Arduino’nun 5V pinine, GND pinini Arduino’nun GND pinine, ortadaki OUT (Sinyal) pinini ise Arduino’nun 2 numaralı dijital pinine bağlayın.
  2. LED Bağlantısı: LED’in uzun bacağını (Anot) Arduino’nun 13 numaralı dijital pinine, kısa bacağını (Katot) ise 220 Ohm direnç üzerinden GND pinine bağlayın.
  3. Buzzer Bağlantısı: Buzzer’ın artı (+) ucunu Arduino’nun 10 numaralı dijital pinine, eksi (-) ucunu ise GND pinine bağlayın.

Arduino Kodu

Bağlantıları tamamladıktan sonra Arduino IDE programını açın ve aşağıdaki kodları yükleyin:

int pirPin = 2;       // Sensörün OUT pininin bağlı olduğu dijital pin
int ledPin = 13;      // LED'in bağlı olduğu pin
int buzzerPin = 10;   // Buzzer'ın bağlı olduğu pin
int sensorDurumu = 0; // Sensörden okunan değeri tutacağımız değişken

void setup() {
  // Pinlerin giriş mi çıkış mı olduğunu belirliyoruz
  pinMode(pirPin, INPUT);    // Sensör dışarıdan veri okuyacağı için GİRİŞ (INPUT)
  pinMode(ledPin, OUTPUT);   // LED ışık vereceği için ÇIKIŞ (OUTPUT)
  pinMode(buzzerPin, OUTPUT);// Buzzer ses vereceği için ÇIKIŞ (OUTPUT)

  Serial.begin(9600); // Bilgisayar ekranından durumu görmek için seri haberleşme

  Serial.println("Sensor isiniyor, lutfen 30 saniye bekleyin...");
  delay(30000); // PIR sensörün ortamı tanıması (kalibrasyon) için bekleme süresi
  Serial.println("Sistem aktif! Hareket bekleniyor.");
}

void loop() {
  sensorDurumu = digitalRead(pirPin); // Sensörden gelen dijital veriyi oku (HIGH veya LOW)

  if (sensorDurumu == HIGH) {
    // Eğer hareket algılandıysa (Sensör HIGH değeri gönderiyorsa)
    digitalWrite(ledPin, HIGH); // LED'i yak
    tone(buzzerPin, 1000);      // Buzzer'dan ses çıkar
    Serial.println("DIKKAT! Hareket Algilandi!");
    delay(2000); // 2 saniye bekle
  }
  else {
    // Hareket yoksa (Sensör LOW değeri gönderiyorsa)
    digitalWrite(ledPin, LOW); // LED'i söndür
    noTone(buzzerPin);         // Buzzer'ı sustur
  }
}

Kodun Çalışma Mantığı

  1. Sisteme güç verdiğinizde sensörün ortamın kızılötesi haritasını çıkarması ve kalibre olması için yaklaşık 30-60 saniye beklemesi gerekir. Kodumuzdaki delay(30000) kısmı bu güvenli ısınma süresini sağlar.
  2. Sensör bir insan hareketi algıladığında, OUT pininden HIGH (5V) sinyali gönderir.
  3. Arduino if koşuluyla bu HIGH sinyalini yakalar; LED’e ve Buzzer’a güç göndererek alarmı tetikler.
  4. Hareket durduğunda sensör LOW (0V) sinyaline döner ve Arduino alarmı kapatır.

Karşılaşılan Yaygın Sorunlar ve Çözüm İpuçları

  • Alarm sürekli kendi kendine çalıyor: Eğer devrenizi kurduğunuzda ortamda kimse yokken bile sürekli uyarı alıyorsanız, sensörünüz klimaya, ısıtıcıya veya doğrudan güneş ışığına bakıyor olabilir. Sensör rüzgardan ve sıcak-soğuk hava akımlarından etkilenebilir.
  • Sistem yaz aylarında zor algılıyor: PIR sensörler ortam sıcaklığı ile insan sıcaklığı (37°C) arasındaki farkı ölçer. Ortam sıcaklığı insan vücut ısısına çok yaklaştığında (örneğin 30-35°C üzeri), sensörün sizi algılaması zorlaşır ve hassasiyet düşer.
  • Sensör karanlıkta çalışır mı? Evet, PIR sensörler kameralar gibi ışığa değil, nesnelerin yaydığı ısıya (kızılötesi ışıma) odaklandıkları için zifiri karanlıkta da kusursuz çalışırlar.

Bu projeyle, algılayıcı sensörler dünyasına sağlam bir giriş yapmış oldunuz. Sensörün arkasındaki ayar vidaları (potansiyometre) ile oynayarak hassasiyeti ve gecikme süresini kendi odanıza göre optimize etmeyi unutmayın! Başarılar dileriz.

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir