Hareket Sensörü Uygulaması

Maddeler sahip oldukları ısıdan dolayı insanların görebileceği ışık aralığının altında kızılötesi ışık
yayar. Normal sıcaklığındaki insan vücudu (36,5 °C) 10 mikrometre dalga boyunda ışıma yapar.
Hareket sensörü bulunduğu ortamdaki kızılötesi ışık dalgalarını içindeki özel kristal malzemeyle
(piroelektrik sensör) elektriğe dönüştürür. Ortamdaki kızılötesi ışık miktarı sabitken bir canlı ortama girdiğinde kızılötesi ışık miktarında artış olur. Hareket sensörü bu artışı algılayarak çıkış
verir. Hareket sensörünün diğer adı PIR (pasif infrared sensor-pasif kızılötesi) sensördür. PIR,
kızılötesi ışık gönderip yansımasını almadığı için pasif moddadır yani sadece ortamdaki kızılötesi ışık değişimini algılar.

Görselde yaygın olarak kullanılan HC-SR501 hareket sensörünün pin yapısı ve ayarları görülmektedir. HC-SR501 sensörü temel olarak piroelektrik sensör ve kızılötesi sinyalleri piroelektrik sensöre odaklayan fresnel lens (sensörün dışındaki plastik kısım) olmak üzere iki ana bölümden oluşur.Kartta iki potansiyometre vardır. Biri hareketin algılanabileceği en fazla mesafeyi
ayarlar. Bu mesafe 3 metre ile yaklaşık 7 metre arasında değişmektedir. Diğer potansiyometre
ise hareket algılandıktan sonra çıktının ne kadar süreyle lojik 1’de kalacağını belirler. Bu süre de
en az 3 saniye, en fazla 5 dakikadır.

Hareket sensörünün arkasında bulunan jumperla iki ayardan biri seçilir.


H: Bu konumda HC-SR501, hareketi algılamaya devam ettiği sürece lojik 1 sinyal vermeye devam
eder.


L: Bu konumda çıkış, zaman potansiyometresi ayarıyla ayarlanan süre boyunca lojik 1’de
kalacaktır.


Hareket sensörünün çıkışındaki lojik 1 seviyesi 3,3 V’tur. 3,3 V gerilim, giriş olarak ayarlanan
Arduino pininde lojik 1 seviyesi olarak algılanır çünkü Arduino’da dijital giriş olarak ayarlanmış
bir pinde 3 V üzerindeki gerilimler lojik 1 olarak algılanır.


HC-SR501’e güç verildiğinde ortamdaki kızılötesi enerjiye alışması 30 ila 60 saniye sürer. Ayrıca
sensörün bir okuma yaptıktan sonra yaklaşık 5 veya 6 saniye süren “sıfırlama” süresi vardır. Bu
süre zarfında sensör herhangi bir hareket algılamayacaktır.

HC-SR501 devre kartında iki ek bileşen için lehim yuvaları bulunur.


RT: Sıcaklığa duyarlı direnç (termistör) içindir. Termistör eklemek, HC-SR501’in istenen sıcaklıklarda kullanılmasına izin verir ve dedektörün doğruluğunu bir dereceye kadar artırır.


RL: Işığa bağımlı direnç (LDR) içindir. LDR eklendiğinde HC-SR501 yalnızca karanlıkta çalışır.

VCC: 5 V – 12 V besleme. DATA: Dijital veri çıkışı. (3,3 V) GND: Topraklama pini

Görseldeki devrede hareket sensörü, ortamda bir hareket algıladığında LED’i yakmakta ve
seri port ekranından bilgi vermektedir

const byte LED = 13, PIR = 2;

void setup() {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
  pinMode(PIR, INPUT);
}

void loop() {
  if (digitalRead(PIR))  { //PIR çıkış veriyorsa...
    digitalWrite(LED, HIGH);
    Serial.println("Hareket algılandı.--------------------------------------------------");
  }
  else  { //PIR çıkış vermiyorsa...
    digitalWrite(LED, LOW);
    Serial.println("Hareket algılanmadı.");
  }
}

#include <Servo.h>
const byte LED = 13;
const byte kesmePini = 2;
Servo servo; // servo isimli nesne oluşturuldu.

byte derece = 0; // Servo derecesini tutan değişken.

void setup() {
  servo.attach(9); // Servo motor 9 numaralı PWM çıkışına bağlı.
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
  pinMode(kesmePini, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(kesmePini), kesmeFonksiyonu, FALLING);
}

void loop() {
  //servoDonus(); // 0 -180
}

void kesmeFonksiyonu() { //Kesme gerçekleştiğinde buradaki işlemleri yap.
  Serial.println("Canlı algılandı");
}

void servoDonus(){
    for (derece = 0; derece < 180; derece += 1) { // 0°'den 180°'ye birer derece git.
    servo.write(derece); // Servo motorun gideceği derece.
    delay(50); // 15 ms bekle.
  }
  for (derece = 180; derece > 0; derece -= 1) { // 180°'den 0°'ye birer derece git
    servo.write(derece);
    delay(50); // 15 x 180 = 2700 ms'de 0°'den 180°'ye tamamlar.
  }
}

Benzer Temrinler & Yazılar

  • ASCII

    //void setup() { Serial.begin(9600); Serial.println("ASCII Tablosu"); for (byte i = 33; i < 127; i++) { Serial.write(i); //Karakteri yaz. Serial.print(", dec: "); //Onluk karşılığını yaz. Serial.print(i); Serial.print(", hex: "); Serial.print(i, HEX); //Onaltılık karşılığını yaz. Serial.print(", oct: "); Serial.print(i, OCT); //Oktal karşılığını yaz. Serial.print(", bin: "); Serial.println(i, BIN); //İkilik karşılığını yaz. } } void loop() {…

  • Keypad Uygulaması

    Görseldeki devrede tuş takımı uygulaması verilmiştir. Keypad kütüphanesini kurmak içinmenülerden ”Taslak  Library Ekle  Kütüphaneleri Yönet” seçeneğinden arama kutusuna“Keypad” yazılıp Keypad (Keypad by Mark Stanley and Alexander Brevig) kütüphanesi bulunarakkurulur. Daha sonra “Taslak  Library Ekle  Keypad” seçilerek programın başına eklenir. Buprogramın bir örneğine menülerden “Dosya  Örnekler  Keypad  CustomKeypad” adımlarıizlenerek…

  • Analog Çıkış Uygulaması

    Görseldeki uygulamada LED 9 numaralı PWM özellikli pine bağlanmıştır. LED’in parlaklığınıartırıp azaltmak için analogWrite() fonksiyonun ikinci parametresi 0-255 arası değiştirilir. 255’eyaklaştıkça parlaklık artmakta, 0’a yaklaştıkça parlaklık azalmaktadır. const byte ledPin = 9; // LED 9 numaralı pine bağlı. void setup() { // PWM pinleri çıkış olarak ayarlamaya gerek yoktur. } void loop() { for (int…

  • Alkışla Çalışan LED Uygulaması

    Görselde alkışla çalışan LED uygulaması görülmektedir. Analog çıkışlı mikrofon modülünden gelen sinyal belli bir seviyeyi aştığında çıkıştaki LED yanmaktadır. Seviye tekrar aşıldığındaLED sönmektedir. Görselde ise mikrofon devresinin pin sıralaması verilmiştir. A0: Analog veri çıkışı.GND: Toprak pini.VCC: 5 V besleme.D0: Dijital veri çıkışı. const byte led = 12; int mic; bool degistir = 1; //boolean tipinde…

  • Alev Dedektörü Devresi

    Alev sensörleri ortamda alev algıladığında uyarı sinyali verir. Alev sensörü 760 nm – 1100 nm arasındaki dalga boyuna sahip ışığı (kızılötesi ışınım) tespit etmek için kullanılır. Görselde alev sensörü pin yapısı, Görseldeki ise alev dedektörü devresi görülmektedir. A0: Analog veri çıkışı. GND: Toprak pini. +: 3,3 V-5 V besleme. D0: Dijital veri çıkışı. const byte buzzer…

  • if kullanarak debounce engelleme

    const byte butonPini = 2; // Düğmenin bağlı olduğu pin bool kontrolBiti = 0; // Düğmenin basılı olup olmadığını kontrol etmek için bit int sayac = 0; // Sayac değeri void setup() { Serial.begin(9600); // Seri haberleşmeyi başlat pinMode(butonPini, INPUT_PULLUP); // Düğme pini giriş olarak ayarla ve dahili pull-up direncini etkinleştir } void loop() {…

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir.