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

  • Gaz Dedektörü Devresi

    Görseldeki MQ-2 gaz sensörü pin yapısı görülmektedir. MQ-2 gaz sensörü, 300 ile 10.000 ppm seviyesindeki yanıcı gaz ve sigara dumanını algılar. Görselde görülen gaz sensörü devresi, ortamda gaz algıladığında uyarı sinyalleri verir. VCC: 5 V besleme. GND: Toprak pini. D0: Dijital veri çıkışı. A0: Analog veri çıkışı. const byte buzzer = 13; // Buzzer'ın takılacağı…

  • Kartlı Geçiş Uygulaması (Step ve servo motor)

    Görseldeki uygulamada RFID okuyucuya geçerli bir kart okutulduğunda step motor 90 °C’lik dönüş yapar. Geçerli ve geçersiz kartlar için farklı ses sinyalleri verir. Geçersiz kartın ID’si seri ekrandan okunarak istenirse geçerli kart listesine eklenir. #include <SPI.h> // Dahili SPI kütüphanesi #include <MFRC522.h>  // v1.4.9 #define reset 9 // Reset pini #define ss 10  // SS…

  • Sıcaklık Dedektörü Devresi

    Görseldeki LM35 sıcaklık dedektörünün pin yapısı görülmektedir. Görsel 6.2’deki LM35’li sıcaklık dedektörü devresi, ortam sıcaklığı 30 °C’yi aşınca ses ve ışıkla ikaz verir. +V: 5 V besleme. OUT: Analog veri çıkışı. GND: Toprak pini. const byte buzzer = 13, LED = 12; void setup() {  Serial.begin(9600);  pinMode(buzzer, OUTPUT);  pinMode(LED, OUTPUT); } void loop() {  int…

  • Step Motor Uygulaması

    Step motorlar, adımlarla hareket eden DC motorlardır görselde Faz adı verilen gruplar hâlinde organize edilmiş çoklu bobinleri vardır. Her faza sırayla enerji verildiğinde motor her seferindebir adım olacak şekilde döner. Çift kutuplu step motorlar, iki bobinden oluşur ve genellikle bobinbaşına iki olmak üzere dört bağlantıya sahiptir. Tek kutuplu bir step motor elektriksel olarak ikiayrı bobinden…

  • EEPROM.read

    #include <EEPROM.h> byte deger; void setup() {  Serial.begin(9600);  int hafizaBoyutu = EEPROM.length(); //Kartın hafıza boyutunu al.  for (int adres = 0; adres < hafizaBoyutu; adres++) {    deger = EEPROM.read(adres); //Analog veriyi 10 ms aralıklarla tüm hafızadan sırayla oku.    Serial.print("Adres = ");    Serial.print(adres);    Serial.print("\t Değer = ");    Serial.println(deger);    delay(10);  } } void loop() { }

  • Servo Motor Uygulaması

    Görseldeki uygulamada servo motor 0°den 180°ye birer derece açıyla gidip aynı şekilde geridöner. 0° ile 180° arası mesafe, bu servo motorda 300 ms sürmektedir. 300 ms’den hızlı komutlarda servo motor doğru çalışmaz. Menülerden ”Taslak  Library Ekle  Servo” seçilerek programın başına eklenir. Bu programların örneğine menülerden “Dosya  Örnekler  Servo  Sweep ve…

Bir Yorum Yazın

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