سنسورهای PIR به منظور تشخیص حرکت به کار میروند. به عنوان مثال میتوان از این سنسورها به منظور تشخیص حرکت انسان در محدوده دید سنسور استفاده کرد. این سنسورها در وسایل و گجتهایی که در خانه یا محیطهای تجاری به کار میروند استفاده میشوند. در اینجا به راه اندازی سنسور PIR با آردوینو میپردازیم.
برخی از مزیتهای سنسورهای PIR عبارت است از:
- ابعاد کوچک
- محدوده دید وسیع
- رابط کاربری آسان
- ارزان
- توان مصرفی کم
- سهولت در استفاده
- عدم فرسایش در مرور زمان
سنسورهای PIR از سنسورهای مدل پایروالکتریک ساخت شده اند. این ساختار شامل یک محفطه فلزی قوطی مانند به همراه یک کریستال مثلثی شکل در وسط آن است که میتواند تشعشعات مادون قرمز را تشخیص دهد. تقریبا هر مادهای دارای تشعشعات مادون قرمز سطح پایین هست و با افزایش دمای سطح این تشعشعات افزایش پیدا میکند. سنسور تشخیص حرکت در واقع دارای دو محفظه است که بدین وسیله میزان جا به جایی اشیاء از تشعشعات سطوح پایین متمایز میگردد. این دو محفظه به شکلی قرار گرفتهاند که یکدیگر را خنثی میکنند. اگر یک محفظه مقدار کمتر یا بیشتری از تشعشعات را حس نماید، خروجی به سمت بالا یا پایین نوسان خواهد کرد.
سنسورهای PIR دارای خروجی قابل تنظیمی هستند و دارای بسته بندی با سه پایه زمین/خروجی و تغذیه میباشند.
برای بسیاری از پروژهها یا محصولات ساده که نیاز به تشخیص ورود یا خروج افراد از یک ناحیه وجود دارد، سنسورهای PIR میتواند بسیار کارآمد باشد. اما یکی از عیبهای این سنسورها این است که تعداد افراد موجود در دید سنسور را نمیتواند تشخیص دهد. همچنین باید توجه نمود که معمولا لنز سنسور در یک محوده خاص ثابت شده است و با تغییر موقعیت آن (مثلا توسط حیوان خانگی) ممکن است باعث اختلال در عملکرد آن شود.
قطعات و تجهیزات مورد نیاز
قطعات لازم برای اجرای پروژه راه اندازی سنسور PIR با آردوینو عبارت اند از :
- 1 عدد برد بورد
- 1 عدد برد آردوینو Uno R3
- 1 عدد سنسور PIR
قطعات پروژه را مطابق شکل زیر به یکدیگر متصل نمایید:
کد راه اندازی سنسور PIR با آردوینو:
نرم افزار آردوینو را باز کرده و برای باز کردن یک برنامه جدید بر روی New در منوی File کلیک نمایید.
#define pirPin 2 int calibrationTime = 30; long unsigned int lowIn; long unsigned int pause = 5000; boolean lockLow = true; boolean takeLowTime; int PIRValue = 0; void setup() { Serial.begin(9600); pinMode(pirPin, INPUT); } void loop() { PIRSensor(); } void PIRSensor() { if(digitalRead(pirPin) == HIGH) { if(lockLow) { PIRValue = 1; lockLow = false; Serial.println("Motion detected."); delay(50); } takeLowTime = true; } if(digitalRead(pirPin) == LOW) { if(takeLowTime){ lowIn = millis();takeLowTime = false; } if(!lockLow && millis() - lowIn > pause) { PIRValue = 0; lockLow = true; Serial.println("Motion ended."); delay(50); } } }
نکات برنامه:
سنسور PIR دارای سه پایه –Vcc ، OUT و GND است. این پایه را مطابق زیر به برد آردوینو متصل نمایید:
- پایه +Vcc را به +5V بر روی برد آردوینو متصل نمایید.
- پایه OUT را به پایه شماره 2 برد آردوینو متصل نمایید.
- پایه GND را به پایه GND برد آردوینو متصل نمایید.
میتوانید حساسیت و زمان تاخیر سنسور را توسط دو مقاومت متغیر موجود در پایین برد سنسور تنظیم نمایید.
زمانی که سنسور حرکت را تشخیص داد، آردوینو یک پیام مبتنی بر تشخیص حرکت را در پورت خروجی سریال ارسال میکند. سنسور PIR مدت زمان تاخیر مشخصی را به منظور احتمال تشخیص حرکتی دیگر ایجاد میکند. اگر حرکت دیگری تشخیص داده نشد، آردوینو پیامی مبتنی بر اتمام تشخیص حرکت در خروجی سریال ارسال میکند.
نتایج:
با آپلود برنامه بر روی برد و اجرای آن، با تشیخص حرکت پیامی مبنی بر تشخیص حرکت در خروجی ارسال میشود و در صورت عدم تشخیص حرکت نیز پیامی مبنی بر این مسئله در خروجی سریال مشاهده میشود.
امیدوارم این نوشته برایتان مفید باشد.
منبع: میکرودیزاینرالکترونیک