Bu projede, pasif bir kızılötesi (PIR, HC-SR501) sensör kullanarak bir hareket algılama alarmı yapacağız.

Arduino hareket sensörü alarmı yapımı

Proje için gerekli malzemeler

  • Arduino uno R3
  • Breadboard
  • HC SR501 PIR sensor
  • LED
  • Buzzer

Birisi PIR sensörünün önüne geçtiğinde, LED yanacak ve buzzer sesli uyarı çalacak şekilde devreyi ayarlayacağız.

Sensördeki iki turuncu potansiyometre iki adet ayarlanabilir ayar olduğunu gösterir. Sensör dik dururken, aşağıdaki resimde gösterildiği gibi, sol potansiyometre, bir şey algılandığında çıktının HIGH olarak ayarlandığını kontrol eder ve 5 ile 200 saniye arasında bu süre ayarlanabilir. Eğer bir LED'i çıkışa taktığımızda, ayara bağlı olarak LED 5 ile 200 saniye arasında yanacaktır. Sağ potansiyometre, algılama aralığını 0 ile 7 metre arasında ayarlar.

Sensör, ısı üreten nesnelerden yayılan kızılötesi radyasyonu tespit ederek çalışır. Sensör içindeki kristal malzeme kızılötesi radyasyonu algılar ve ayarlanmış olduğu değerde bir hareket tespit ettiğinde, sensörün çıkış sinyalini tetikler. Arduino bu çıkışı voltaj olarak okur, böylece bir şeyi aktif etmek için basit bir anahtar olarak kullanabiliriz - bu durumda bir LED olabilir.

Devre şeması

Arduino IDE Kodları

Devre, Arduino pin 13'ü LED için çıkış, pin 2'yi PIR sensörü için giriş olarak ve 10 pinini piezo zili için çıkış olarak ayarlayarak çalışır. PIR sensörü tetiklendiğinde, Arduino'ya HIGH bir sinyal gönderilir, bu da LED'i yakar ve piezo zilinde bir ton çalar.

int pirdurum = LOW; 
int deger = 0;

void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT); // PIR sensörü
pinMode(10, OUTPUT);
Serial.begin(9600);  }

void loop() {
deger = digitalRead(2);
if (deger == HIGH) { 
  digitalWrite(13, HIGH);
  uyarical(300, 160);
  delay(150);
    if (pirdurum == LOW) {
      Serial.println("Hareket algılandı!");
      pirdurum = HIGH;
    }
} else {
  digitalWrite(13, LOW);
  uyarical(0, 0);
  delay(300);
    if (pirdurum == HIGH) {
      Serial.println("Hareket yok!");
      pirdurum = LOW;
    }
}
}

void uyarical(long sure, int freq) {
sure *= 1000;
int period = (1.0 / freq) * 1000000;
long gecen_zaman = 0;
while (gecen_zaman < sure) {
  digitalWrite(10, HIGH);
  delayMicroseconds(period / 2);
  digitalWrite(10, LOW);
  delayMicroseconds(period / 2);
  gecen_zaman += (period);
}
}
  • Yazı Etiketleri :
  • PIR sensörü kullanımı
  • HC SR501
IOS 15'in 10 yeni özelliği
Yazıyı Oku

IOS 15'in 10 yeni özelliği

WEBP dosyalarını Adobe Photoshop ile açma, oluşturma
Yazıyı Oku

WEBP dosyalarını Adobe Photoshop ile açma, oluşturma

Windows 10 için ücretsiz Windows File Recovery programı
Yazıyı Oku

Windows 10 için ücretsiz Windows File Recovery programı

Arduino uzaktan kumanda ve IR receiver ile servo motor kontrolü
Yazıyı Oku

Arduino uzaktan kumanda ve IR receiver ile servo motor kontrolü

Arduino LCD ekranda kayan yazı yapalım
Yazıyı Oku

Arduino LCD ekranda kayan yazı yapalım

Arduino engelden kaçan araba yapımı
Yazıyı Oku

Arduino engelden kaçan araba yapımı

Menu