سنسور مادون قرمز پسیو و راه‌اندازی آن از طریق آردوینو

0

سنسور مادون قرمز پسیو

 تمامی اجسام انرژی حرارتی را به شکل تابش مادون قرمز با دمایی بالای صفر مطلق ساطع می‌کنند. سنسور مادون قرمز پسیو HR-SC501 (PIR) تابش مادون قرمز را به یک ولتاژ خروجی تبدیل می‌کند. از آنجایی‌که حرکت با تغییر در تابش مادون قرمز نه سطح تابش مادون قرمز نشان داده می‌شود، سنسور PIR دارای دو نیمه برای تشخیص تغییر در تابش مادون قرمز ناشی از حرکت یک شی در مقابل سنسور می‌باشد. 

لنزهای فرنل بالای سنسور مادون قرمز پسیو PIR میدان دید سنسور PIR را در حدود 110 درجه با محدوده 6 متر افزایش می‌دهند. سنسورهای PIR در هشداردهنده‌های تشخیص حرکت بکاربرده می‌شوند. این سنسورها  پس از روشن شدن حداکثر به 60 ثانیه برای ثبیت نیاز دارند و خروجی حداقل 2.5 ثانیه پس از تشخیص حرکت HIGH باقی می‌ماند. تاخیر زمانی (Tx) و حساسیت سنسور  (Sx) با چرخش ساعتگرد پتانسیومتر مربوطه قرارگرفته بر روی ضلع ماژول افزایش می‌یابند.حرکت‌های کوچک‌تر با حساسیت بالا در فاصله بین 3 و 7 متر تشخیص داده می‌شوند. تاخیر زمانی از 2.5 ثانیه تا 5 دقیقه است، بنابراین در ابتدا مکان خلاف جهت عقربه‌ ساعت مفید است.

ماژول سنسور مادون قرمز پسیو hc-sr501

در مجموعه دستورات و کدها در محیط IDE  آردوینو تابع  () void loop  دو نیمه دارد، در نیمه اول وقوع یک رویداد جدید تشخیص داده می‌شود، و نیمه دوم تعیین می‌کند این رویداد به پایان رسیده است. 

اتصال سنسور مادون قرمز پسیو به آردوینو

جدول 1. اتصالات سنسور PIR به آردوینو

قطعه

اتصال به

و به

VCC سنسور PIR

5V   آردوینو

 

خروجی سنسور PIR

پین 11 آردوینو

 

زمین سنسور PIR

GND آردوینو

 

پایه بلند LED

پین 8 آردوینو

 

پایه کوتاه LED

مقاومت 220 اهم

GND  آردوینو

در زیر دستورات راه اندازی این سنسور مادون قرمز پسیو توسط آردوینو بیان شده اند:

int PIRpin = 11; // PIR sensor pin
int LEDpin = 8; // LED pin
int PIRstate = LOW; // set PIR state to LOW
int reading;
unsigned long detectTime; // time lag on PIR sensor
float moveTime;
void setup()
{
Serial.begin(9600); // set Serial Monitor baud rate
pinMode(LEDpin, OUTPUT); // LED pin as output
}
void loop()
{
reading = digitalRead(PIRpin); // read PIR pin
if (reading == HIGH && PIRstate == LOW) // PIR detected new
{ // movement
Serial.print("New movement detected"); // print to Serial Monitor
detectTime = millis(); // time of movement
PIRstate = HIGH; // update PIR state to HIGH
digitalWrite(LEDpin, PIRstate); // turn LED on
} // movement no longer detected
else if (reading == LOW && PIRstate == HIGH)
{
moveTime = millis() - detectTime; // duration of movement
moveTime = moveTime/1000.0;
Serial.print(" and lasted for "); // print to Serial Monitor
Serial.print(moveTime,1); // print detect time (s) with 1DP
Serial.println(" seconds"); // print text with a new line
PIRstate = LOW; // update PIR state to LOW
digitalWrite(LEDpin, PIRstate); // turn LED off
}
} 

 تیم ردرونیک (redronic) مجموعه ای از آموزش ها و پروژه های مرتبط با آردوینو را برای شما علاقمندان به الکترونیک و برنامه نویسی  فراهم کرده است. جهت مشاهده این پروژه ها اینجا کلیک کنید

Choose your Reaction!
دیدگاه خود را بنویسید

آدرس ایمیل شما منتشر نخواهد شد.

redronic.com