PIR Motion sensorMerhaba arkadaşlar bu yazımızda yine bir arduino serisinden UNO ile basit ama oldukça kullanışlı bir uygulama gerçekleyeceğiz.Uygulamamızda yapacağımız application internette birbirine oldukça çok benzerlerini görmeniz gayet doğal olup , mantığın aslında basit olduğunu göreceksiniz. Uygulamayı gerçeklemeden önce biraz ardunio’daki dijital pinler hakkında biraz konuşup ardından PIR sensörünü tanıtmak istiyorum. Devamında uygulamayı tamamlamayı planlıyorum.

Öncelikle PIR sensörümüzü tanıtacak olursak :

PIR

Sensör 3 pini bulunmaktadır. Bunlar soldan sağa :
1 – Pozitif
2- Data
3- Negatif

Not : Pinler cihazdan cihaza yerleri değişkenlik gösterebilir.

3.3 ile 5 V arası çalışmaktadır.Enerjiyi arduino üzerinden almayı tercih ediyorum.Cihaz yaklaşık 3-5 metre arası aktif haldedir. Hareket algıladığı an DATA çıkışını HIGH yapmaktadır. Yaklaşık 15sn HIGH’ta bulunmaktadır. Daha sonra sabit değere yani LOW’a geri dönmektedir. Uygulamamızda gayet basit olacaktır.

Arduinoda herhangi bir dijital pin’i input yaptıktan sonra anlık olarak DATA girdisini okuyacağız ardından bir led’i yakıp söndürme işlemini yapacağız.

Arduino’da dijital 13 tane pin bulunmaktadır.Bunlardan herhangi birisi tercihiniz olabilir.

Devre :
ArduinoPIR

Görüldüğü gibi PIR’ın sağ ve sol bacakları direk POWER port’una Mavi renkli kablo direk Dijital 3’e girmekte ve Led’de 4.pinde bulunmaktadır.
Koda odaklanacak olursak.

[codesyntax lang=”php” title=”Arduino PIR kod”]

int pirPin = 3; // PIR pin
int ledPin = 4;   // LED pin
int deger = 0;             

void setup() {
  pinMode(pirPin, INPUT);     // PIR Pin'i giriş yapılıyor
  pinMode(ledPin, OUTPUT);      // LED Pin'i çıkış yapılıyor
  Serial.begin(9600);           //Serial Porttan veri göndermek için baundrate ayarlanıyor.
}

void loop(){
  deger = digitalRead(pirPin);  // Dijital pin okunuyor
  Serial.println(deger);          // Okunan değer seri porttan okunuyor.
  if (deger == HIGH) {            
    digitalWrite(ledPin, HIGH); // Eğer okunan değer 1 ise LED yakılıyor.
  }
  else{
    digitalWrite(ledPin,LOW);   // Eğer okunan değer 0 ise LED söndürülüyor.
  }
}

[/codesyntax]

Gördüğünüz üzere oldukça basit ve hobi uygulaması gibi görünmektedir. Diğer mikroişlemci-denetleyici’lerle uygulama yapmakta çok kolaydır mantığı değiştirmeden sadece kodları değiştirmeniz yeterli olacaktır.

SONUÇ :

Bir başka yazımızın sonuna geldik. Sorularınız için mail adresimi yada alt kısımdaki cevap kısmını kullanabilirsiniz. İyi çalışmalar diliyorum.

______
Gökhan TARIM
tarim.gokhan@gmail.com