چه بخواهید یک دزدگیر خانه بسازید یا یک دوربین دنباله دار، یا شاید بخواهید وقتی افراد حقه باز به خانه شما می آیند، وسایل متحرک هالووین را از خواب بیدار کنید، پس حتما باید به فکر تهیه یک مادون قرمز غیرفعال HC-SR501 (PIR) باشید. سنسور برای خودت
سنسور PIR به شما امکان می دهد تشخیص دهید که یک شخص یا حیوان در محدوده سنسور یا خارج از محدوده حرکت می کند. این حسگر همان چیزی است که در اکثر سیستم های امنیتی مدرن، کلیدهای چراغ اتوماتیک، درب بازکن های گاراژ و برنامه های مشابهی که می خواهیم به حرکت واکنش نشان دهیم، پیدا خواهید کرد.
قبل از ورود به این موضوع، اجازه دهید ابتدا نحوه عملکرد یک سنسور PIR را درک کنیم.
سنسور PIR چگونه کار می کند؟
تمام اجسام، از جمله بدن انسان، در دمای بالاتر از صفر مطلق (0 کلوین / -273.15 درجه سانتیگراد) انرژی گرمایی را به شکل تابش مادون قرمز ساطع می کنند. هرچه جسم گرمتر باشد، تشعشعات بیشتری از خود ساطع می کند. این تشعشع برای چشم انسان قابل مشاهده نیست زیرا در طول موج های فروسرخ ساطع می شود. سنسور PIR به طور خاص برای تشخیص چنین سطوحی از تابش مادون قرمز طراحی شده است.
سنسور PIR از دو بخش اصلی تشکیل شده است:
- یک سنسور پیرالکتریک که در تصویر زیر می توانید آن را به صورت یک فلز گرد با یک کریستال مستطیلی در مرکز مشاهده کنید.
- یک لنز ویژه به نام لنز فرنل که سیگنال های مادون قرمز را بر روی سنسور پیروالکتریک متمرکز می کند.
سنسور پیرالکتریک
یک سنسور پیروالکتریک از یک پنجره با دو شکاف مستطیلی تشکیل شده است و از ماده ای (معمولاً سیلیکون پوشش داده شده) ساخته شده است که به اشعه مادون قرمز اجازه عبور می دهد. در پشت پنجره دو الکترود حسگر مادون قرمز مجزا وجود دارد که یکی وظیفه تولید خروجی مثبت و دیگری تولید خروجی منفی را بر عهده دارد.
دو الکترود به گونه ای سیم کشی شده اند که یکدیگر را خنثی می کنند. این به این دلیل است که ما به دنبال تغییرات در سطوح IR و نه سطوح IR محیط هستیم. به همین دلیل است که وقتی یک نیمه اشعه IR را بیشتر یا کمتر از نیمی دیگر می بیند، خروجی را دریافت می کنیم.
هنگامی که هیچ حرکتی در اطراف سنسور وجود ندارد ، هر دو شیار مقدار یکسانی از تابش مادون قرمز را تشخیص میدهند و در نتیجه سیگنال خروجی صفر میشود.
اما وقتی جسم گرمی مانند انسان یا حیوان از کنار آن عبور می کند ، ابتدا نیمی از حسگر را رهگیری می کند. این باعث یک تغییر مثبت دیفرانسیل بین دو نیمه می شود. هنگامی که بدن گرم نیمه دیگر سنسور را قطع می کند (منطقه حسگر را ترک می کند)، برعکس اتفاق می افتد و سنسور یک تغییر دیفرانسیل منفی ایجاد می کند. با خواندن این تغییر ولتاژ، حرکت تشخیص داده می شود.
لنز فرنل
ممکن است احساس کنید که لنز فرنل استفاده شده در اینجا واقعاً هیچ کاری انجام نمی دهد. در واقع این همان چیزی است که دامنه و میدان دید سنسور PIR را افزایش می دهد. ساختار باریک، سبک و قابلیت جمع آوری نور عالی آن را برای ساختن PIR در اندازه کوچک و در عین حال قدرتمند بسیار مفید می کند.
یک لنز فرنل شامل یک سری شیارهای متحدالمرکز است که در پلاستیک حک شده است. این خطوط به عنوان سطوح منکسر منفرد عمل می کنند و پرتوهای نور موازی را در یک نقطه کانونی جمع می کنند. در نتیجه یک لنز فرنل، اگرچه از نظر اندازه کوچکتر است، اما قادر است نور را مشابه یک لنز نوری معمولی متمرکز کند.
در واقع، برای افزایش دامنه و میدان دید سنسور PIR، لنز به بخشهای مختلفی تقسیم میشود که هر بخش یک لنز فرنل جداگانه است.
لنزهای مختلف و زیر لنزها طیفی از مناطق/منطقه های تشخیص را ایجاد می کنند که با یکدیگر در هم تنیده شده اند. به همین دلیل است که مرکز لنزها در تصویر بالا “ناسازگار” هستند – هر لنز دیگری به نیمه متفاوتی از عنصر حسگر PIR اشاره می کند.
نمای کلی سخت افزار سنسور PIR HC-SR501
برای بسیاری از پروژههای آردوینو ما که نیاز به تشخیص اینکه آیا فردی از منطقه خارج شده یا وارد شده است، سنسور HC-SR501 PIR یک انتخاب عالی است. قدرت کم، کم هزینه، رابط کاربری آسان و بسیار محبوب در میان علاقه مندان است.
این سنسور PIR خود بسیار ساده است و خارج از جعبه کار می کند. به سادگی برق 5 ولت – 12 ولت را اعمال کنید و زمین کنید. خروجی سنسور با تشخیص حرکت بالا می رود و در حالت بیکار پایین می رود (هیچ حرکتی تشخیص داده نمی شود).
با اتصال این خروجی به میکروکنترلر، میتوانید با روشن/خاموش کردن چراغها، فعال کردن فن، فعال کردن یک پایه هالووین یا شاید گرفتن عکس از یک مزاحم، به حرکت واکنش نشان دهید.
و بهترین بخش این است که کمتر از 2 میلی آمپر جریان مصرف می کند و می تواند حرکت تا 7 متر (21 فوت) را با کنترل حساسیت تشخیص دهد.
کنترلر PIR BISS0001
در قلب ماژول یک IC کنترل کننده مادون قرمز غیرفعال (PIR) – BISS0001 قرار دارد. BISS0001 به دلیل ایمنی در برابر نویز، یکی از پایدارترین کنترلرهای PIR موجود است.
این تراشه خروجی را از سنسور Pyroelectric گرفته و پردازش های جزئی روی آن انجام می دهد تا یک پالس خروجی دیجیتال منتشر کند.
می توانید در مورد BISS0001 از دیتاشیت اطلاعات بیشتری کسب کنید .
قدرت
این ماژول دارای یک تنظیم کننده ولتاژ دقیق 3.3 ولت است، بنابراین می توان آن را با هر ولتاژ DC از 4.5 تا 12 ولت تغذیه کرد، اگرچه معمولاً از 5 ولت استفاده می شود.
این ماژول دارای یک دیود حفاظتی (همچنین به عنوان دیود ایمنی شناخته می شود) برای محافظت از ماژول در برابر ولتاژ و جریان معکوس ارائه می شود. بنابراین حتی اگر به طور تصادفی برق را با قطبیت نادرست وصل کنید، ماژول شما آسیب نمی بیند.
تنظیم حساسیت
سنسور PIR دارای یک پتانسیومتر در پشت برای تنظیم حساسیت است.
این پتانسیومتر حداکثر محدوده تشخیص را تعیین می کند. حساسیت را می توان در محدوده تقریباً 3 متر تا 7 متر (9 تا 21 فوت) تنظیم کرد. با این حال توپولوژی اتاق شما می تواند بر محدوده واقعی شما تأثیر بگذارد. چرخاندن قابلمه در جهت عقربه های ساعت باعث افزایش حساسیت و در نتیجه افزایش دامنه می شود و بالعکس.
تنظیم تاخیر زمانی
پتانسیومتر دیگری در پشت سنسور PIR برای تنظیم زمان تاخیر وجود دارد.
این پتانسیومتر تعیین می کند که چه مدت خروجی پس از تشخیص حرکت بالا باقی می ماند. از 1 ثانیه تا حدود 3 دقیقه قابل تنظیم است. چرخاندن پتانسیومتر در جهت عقربه های ساعت تاخیر را افزایش می دهد در حالی که چرخش پتانسیومتر در خلاف جهت عقربه های ساعت تاخیر را کاهش می دهد.
پرش انتخاب ماشه
دو حالت ماشه وجود دارد که نحوه واکنش سنسور را در هنگام تشخیص حرکت تعیین می کند.
حالت تک ماشه : حرکت ثابت باعث ایجاد یک ماشه می شود.
حالت ماشه چندگانه : حرکت ثابت باعث ایجاد یک سری محرک ها می شود.
این برد دارای جامپر برگ (برخی ماژول ها دارای بلوز پل لحیم کاری هستند) به شما امکان می دهد یکی از دو حالت را انتخاب کنید:
L – با انتخاب این حالت حالت تک ماشه تنظیم می شود. در این حالت، به محض تشخیص حرکت، خروجی HIGH میشود و برای مدتی که توسط پتانسیومتر تأخیر زمانی تعیین میشود، در حالت HIGH باقی میماند. تشخیص بیشتر تا زمانی که خروجی در پایان تاخیر زمانی به LOW برگردد مسدود می شود. اگر همچنان حرکت وجود داشته باشد، خروجی دوباره HIGH می شود. همانطور که در تصویر زیر مشاهده می کنید، حرکت شماره 3 کاملا نادیده گرفته شده است.
H – با انتخاب این حالت حالت تریگر چندگانه تنظیم می شود. در این حالت، به محض تشخیص حرکت، خروجی HIGH میشود و برای مدتی که توسط پتانسیومتر تأخیر زمانی تعیین میشود، در حالت HIGH باقی میماند. برخلاف حالت تک ماشه، تشخیص بیشتر مسدود نمیشود، بنابراین با هر بار تشخیص حرکت، تاخیر زمانی بازنشانی میشود. هنگامی که حرکت متوقف می شود، خروجی تنها پس از یک تاخیر زمانی به LOW باز می گردد. از این رو حالت تریگر چندگانه نامگذاری شده است.
اجزای اختیاری – ترمیستور و LDR
ماژول HC-SR501 دارای پدهای لحیم کاری برای دو جزء اضافی است. اینها معمولاً با عنوان “RT” و “RL” برچسب گذاری می شوند. توجه داشته باشید که در برخی از تخته ها برچسب ممکن است توسط یک لنز فرنل در سمت مخالف اجزا پوشانده شود.
RT – این اتصال برای ترمیستور یا مقاومت حساس به دما است. اضافه کردن این به HC-SR501 اجازه می دهد تا در دماهای شدید استفاده شود. این نیز دقت آشکارساز را تا حدودی افزایش می دهد.
RL – این اتصال برای مقاومت وابسته به نور (LDR) یا مقاومت نوری است. افزودن این قطعه به HC-SR501 اجازه می دهد تا در تاریکی کار کند. این برای ساختن سیستم های روشنایی حساس به حرکت مفید است.
این اجزای اضافی را میتوان مستقیماً به ماژول لحیم کرد یا با استفاده از سیمها و کانکتورها به مکانهای دوردست گسترش داد.
مشخصات فنی
در اینجا مشخصات آمده است:
ولتاژ بهره برداری | 4.5 – 20 ولت (معمولاً 5 ولت) |
حداکثر قرعه کشی فعلی | < 2 میلی آمپر |
تاخیر زمانی | ~ 1 ثانیه تا 3 دقیقه |
فاصله تشخیص | 3-7 متر (9-21 فوت) |
زاویه تشخیص | 120 درجه (معمولا) |
سنسور PIR HC-SR501 Pinout
HC-SR501 دارای کانکتور 3 پین است. علامت گذاری ها توسط لنز فرنل پنهان می شوند، بنابراین برای پین اوت به تصویر زیر مراجعه کنید.
VCCمنبع تغذیه سنسور است. شما می توانید ولتاژ ورودی را در هر جایی بین 5 تا 12 ولت به این پین وصل کنید، اگرچه معمولاً از 5 ولت استفاده می شود.
خروجیپین خروجی منطقی 3.3 ولت TTL است. هنگامی که حرکت تشخیص داده می شود، بالا می رود و در حالت بیکار پایین می رود (هیچ حرکتی تشخیص داده نمی شود).
GNDپین زمین است.
استفاده از سنسور PIR به عنوان یک واحد مستقل
یکی از دلایل محبوبیت فوق العاده سنسور PIR HC-SR501 این است که HC-SR501 یک سنسور بسیار همه کاره است که به تنهایی کاملاً توانمند است. با اتصال آن به میکروکنترلری مانند آردوینو، می توانید تطبیق پذیری آن را حتی بیشتر افزایش دهید.
برای اولین آزمایش خود، از HC-SR501 استفاده می کنیم تا نشان دهیم که به تنهایی چقدر مفید است.
سیم کشی برای این آزمایش بسیار ساده است. باتری ها را به VCC و GND سنسور و یک LED قرمز کوچک را از طریق یک مقاومت محدود کننده جریان 220Ω به پین خروجی وصل کنید. همین!
اکنون هنگامی که PIR حرکت را تشخیص می دهد، پین خروجی “HIGH” می شود و LED را روشن می کند!
به یاد داشته باشید که وقتی مدار را روشن کردید باید 30 تا 60 ثانیه صبر کنید تا PIR با انرژی مادون قرمز اتاق سازگار شود. ممکن است LED در این مدت کمی چشمک بزند. صبر کنید تا LED کاملاً خاموش شود و سپس در مقابل آن قدم بزنید یا با دست تکان دهید و به روشن شدن LED نگاه کنید.
اگر می خواهید چیزی را بر اساس حرکت روشن/خاموش کنید، این خروجی PIR می تواند مستقیماً به یک ماژول رله متصل شود.
سیم کشی سنسور PIR به آردوینو
اکنون که درک کاملی از نحوه عملکرد سنسور PIR داریم، میتوانیم آن را به آردوینو متصل کنیم!
اتصال سنسور PIR به آردوینو بسیار ساده است. PIR را با ولتاژ 5 ولت تغذیه کنید و زمین را به زمین وصل کنید. PIR به عنوان یک خروجی دیجیتال عمل می کند، بنابراین تنها کاری که باید انجام دهید این است که به پین خروجی گوش دهید. بنابراین خروجی را به پین دیجیتال شماره ۲ آردوینو وصل کنید.
برای اینکه HC-SR501 به درستی کار کند، جامپر را در موقعیت H (حالت چند ماشه) قرار دهید. همچنین باید زمان تأخیر را روی حداقل 3 ثانیه تنظیم کنید، پتانسیومتر تأخیر زمانی را در خلاف جهت عقربههای ساعت بچرخانید. در نهایت پتانسیومتر حساسیت را روی هر موقعیتی که دوست دارید تنظیم کنید یا اگر مطمئن نیستید آن را روی نقطه میانی قرار دهید.
اکنون آماده هستید تا مقداری کد را آپلود کنید و PIR را فعال کنید.
کد نمونه آردوینو
کد بسیار ساده است. اساساً فقط پیگیری می کند که آیا ورودی پین شماره ۲ HIGH یا LOW است.
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;
}
}
}
در حالی که سنسور به سمت بالا است، دست خود را روی سنسور بکشید. باید پیام «تشخیص حرکت» را که روی ترمینال سریال چاپ شده است ببینید.
مواردی که باید قبل از طراحی برنامه های کاربردی مبتنی بر PIR در نظر بگیرید
هنگام طراحی یک سیستم بر اساس HC-SR501 باید دوره های تاخیر زیر را در نظر داشته باشید.
زمان قفل شدن
وقتی خروجی سنسور پایین میرود، حدود 2 ثانیه در حالت LOW باقی میماند. در این حالت، حسگر حرکتی قفل می شود.
به عنوان مثال، فرض کنید سنسور را برای تاخیر زمانی 4 ثانیه تنظیم کرده اید و جامپر را روی “L” تنظیم کرده اید. بنابراین هنگامی که دست خود را در مقابل سنسور تکان می دهید، خروجی به مدت 4 ثانیه به بالا و سپس برای حدود 2 ثانیه LOW می شود. هر حرکتی در این دوره کاملاً نادیده گرفته می شود. همانطور که می بینید حرکت شماره 2 در اینجا نادیده گرفته شده است.
تاخیر روشن
مانند اکثر سنسورهای PIR، HC-SR501 تقریباً 30 تا 60 ثانیه پس از روشن شدن طول می کشد تا مراحل اولیه سازی را طی کند. در آن زمان، امضای مادون قرمز محیط را یاد می گیرد. اساساً خود را با محیط کالیبره می کند تا مشخص کند چه چیزی حرکت را تشکیل می دهد.
محرکهای کاذب احتمالاً در این زمان کالیبراسیون رخ میدهند، بنابراین هرگونه محرکی در این زمان باید نادیده گرفته شود. همچنین اطمینان حاصل کنید که وقتی سنسور در حال کالیبراسیون خود است حرکت زیادی در جلوی آن وجود نداشته باشد زیرا ممکن است در فرآیند کالیبراسیون اختلال ایجاد کند.
ترجمه از https://lastminuteengineers.com/pir-sensor-arduino-tutorial/
آخرین دیدگاهها