ماژول های تشخیص حرکت مدل های زیادی دارند که بر پایه تکنولوژی های مختلفی کار می کنند . به طور مثال ماژول های مایکرووی بر پایه انتشار امواج مایکرووی و تشخیص اختلال در سیگنال دریافتی ، حرکت در محیط را تشخیص می دهند . یکی از کاربردی ترین ماژول های حرکتی ، ماژول های PIR می باشند . در این ماژول از یک گیرنده IR با حساسیت بالا استفاده شده است که توانای سنس گرمای بدن موجودات زنده را دارند . در واقع IR منتشر شده از سطح بدن موجودات زنده ( به دلیل بالا بودن دمای بدن ) را دریافت کرده و سپس سیگنال خروجی را تغییر می دهند . یکی از انواع ماژول های PIR مدل SR501 است . این ماژول قادر است تا حداکثر شعاع 3 متر ، حرکت افراد را تشخیص دهد . می توان از این ماژول در کنار دوربین های مدار بسته استفاده نمود تا تنها در مواقعی که افراد در شعاع دید دوربین قرار دارند ویدو ضبط شود . یا می توانید از آن در ساخت سیستم های امنیتی ساختمان ها استفاده کنید .

 

در تصویر زیر پین های این ماژول نشان داده شده است :

همان طور که در تصویر فوق نشان داده شده است خروجی این ماژول یک سیگنال منطقی با دو سطح 0 و 3.3 ولت می باشد . همچنین دارای دو پتانسیومتر جهت تعیین تاخیر و حساسیت ماژول است .

 

راه اندازی ماژول SR501 :

راه اندازی و به کار گیری این ماژول بسیار ساده است .می توانید تغذیه ماژول را به ولتاژی بین 3 تا 5 ولت متصل کنید . در این حالت با حرکت هر جانداری در مقابل لنز ماژول ، خروجی ماژول از 0 به 3.3 ولت تغییر وضعیت می دهد و پس از سپری شدن مدت زمان 0.8 تا 18 ثانیه ( بسته مقدار تنظیم شده توسط پتانسیومتر ) خروجی در حالت 3.3 ولت باقی خواهد ماند . در مدار زیر از آردوینو برای نمایش سیگنال خروجی ماژول استفاده شده است :

int ledPin = 13;                // choose the pin for the LED
int inputPin = 8;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  
  if (val == HIGH)	// check if the input is HIGH
  {            
    digitalWrite(ledPin, HIGH);  // turn LED ON
    
    if (pirState == LOW) 
    {
      Serial.println("Motion detected!");	// print on output change
      pirState = HIGH;
    }
  } 
  else 
  {
    digitalWrite(ledPin, LOW); // turn LED OFF
    
    if (pirState == HIGH)
    {
      Serial.println("Motion ended!");	// print on output change
      pirState = LOW;
    }
  }
}

 

Tags:
About Author: USER_4