Arduino Ders 20: PIR

Arduino Uygulaması

PIR Hareket Sensörü ile LED ve Buzzer Kontrolü

PIR sensör ile hareket algılayıp LED yakmayı ve buzzer’dan ses almayı öğreneceğiz.

Arduino PIR sensör kullanımı

PIR sensörler, ortamdaki canlı hareketini algılamak için kullanılan sensörlerdir. Arduino ile birlikte birçok projede kullanılabilir. Bu yazıda PIR sensörün Arduino bağlantısını ve örnek Arduino kodlarını inceleyeceğiz.

PIR, Passive Infrared Sensor ifadesinin kısaltmasıdır. Ortamdaki kızılötesi ışınım değişimlerini algılayarak hareket tespiti yapar.

PIR sensörleri, görüş alanındaki hareketi algılayarak bağlı olduğu devreye dijital sinyal gönderir. Günlük hayatta apartman merdiven aydınlatmalarında, güvenlik sistemlerinde ve otomatik ışık sistemlerinde sıkça kullanılır.

PIR sensörlerin genellikle 3 bağlantı noktası vardır: VCC, GND ve OUT / DATA. VCC pini 5V’a, GND pini GND hattına, OUT pini ise Arduino’nun dijital giriş pinlerinden birine bağlanır.

PIR sensörler dijital çıkış üretir. Hareket algılandığında genellikle HIGH, hareket yokken LOW değeri okunur.

Bazı PIR sensörlerde ilk enerji verildiğinde kısa bir kalibrasyon süresi gerekebilir. Bu süre boyunca sensörün kararlı sonuç vermesi beklenmelidir.

Örnek Arduino projesinde PIR sensör ortamdaki hareketi algıladığında Arduino’ya bağlı LED yanacak ve buzzer ses verecektir. Hareket algılanmadığında LED sönecek ve buzzer susacaktır.

Bu örnekte PIR sensörün OUT pini Arduino’nun 3 numaralı pinine bağlanır. LED 4 numaralı pine, buzzer ise 2 numaralı pine bağlanır.

Arduino PIR sensör LED buzzer devre şeması

Arduino, digitalRead(pirPin) komutu ile PIR sensörden gelen dijital değeri okur. Okunan değer HIGH ise hareket algılanmıştır. Bu durumda LED ve buzzer çalıştırılır.

Okunan değer LOW ise hareket algılanmadığı kabul edilir. Bu durumda LED söner ve buzzer susar.

Seri Port Ekranı üzerinden PIR sensöründen gelen 0 ve 1 değerlerini görüntüleyebilirsiniz.

int pirPin = 3;   // PIR sensör pin
int ledPin = 4;   // LED pin
int buzPin = 2;   // Buzzer pin
int deger = 0;    // PIR sensörden okunacak dijital değer

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buzPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  deger = digitalRead(pirPin);
  Serial.println(deger);

  if (deger == HIGH) {
    digitalWrite(ledPin, HIGH);
    digitalWrite(buzPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
    digitalWrite(buzPin, LOW);
  }
}
const int pirPin = 3;
const int ledPin = 4;
const int buzPin = 2;

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buzPin, OUTPUT);

  digitalWrite(ledPin, LOW);
  digitalWrite(buzPin, LOW);

  Serial.begin(9600);
}

void loop() {
  int deger = digitalRead(pirPin);

  Serial.print("PIR Degeri: ");
  Serial.println(deger);

  if (deger == HIGH) {
    digitalWrite(ledPin, HIGH);
    digitalWrite(buzPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
    digitalWrite(buzPin, LOW);
  }

  delay(100);
}

Bu sürümde pinler sabit olarak tanımlandı, başlangıçta LED ve buzzer kapalı hale getirildi ve Seri Port Ekranı çıktısı daha okunabilir yapıldı.

Yorum Gönder

Daha yeni Daha eski