زمان ارسال: 2 سال پیش

 

امروز در این پست میخوایم یه کد کاربردی و مفید رو براتون بذارم.اونم کد کار با سنسور تشخیص حرکت و استفاده اون در هوشمند سازی است.پس به ادامه مطلب برویدپ

خب اول از همه سنسوری که استفاده شده HC-SR501 هست. سنسور تشخیص حرکت مادون قرمز است.

سنسور PIR یا Passive Infra-Red  که برای تشخیص حرکت، بر مبنای نور مادون قرمزِ ناشی از گرمای موجود در محیط، کاربرد دارند.که این سنسور بیشتر برای سیستم های امنیتی تشخیص انسان استفاده میشود.

هر چند حتما وارد راه پله هایی شدید که همون لحظه لامپ روشن میشه.تو اون لامپ ها سنسور pir داره.

مشخصات:

  • سنسور به همراه برد راه انداز
  • حساسیت و زمان انتظار قابل تنظیم
  • ولتاژ عملیاتی: 5 تا 20 ولت دی سی
  • مسافت تحت پوشش: 3 تا 7 متر قابل تنظیم
  • زاویه تشخیص: 120 درجه
  • زمان انتظار برای تشخیص حرکت بعدی: 0.3 تا 18 ثانیه قابل تنظیم

کاربردها:

  • سیستم های امنیتی و ساخت دزدگیر
  • روشن نمودن چراغ های منازل، پارکینگ، ساختمان و … به صورت هوشمند و بر اساس تشخیص حرکت
  • کنترل و اتوماسیون صنعتی
  • هر چیزی که مربوط به هوشمند سازی و حرکت بشه

hc-sr501-pir-motion-sensor

وسایل مورد نیاز برای انجام این پروژه:

1- برد آردوینو UNO

2- سنسور PIR HC-sr501

توضیحات :

ماژول hc sr501 یا سنسور تشخیص حرکت مورد نظر دارای دو مد کارای No Reset ,  Auto Reset  می باشد که با لحیم کردن پد L به پد وسط در حالت  No reset  و با لحیم کردن پد H به پد وسط در حالت Auto reset قرار میگیرد .برای کانفیگ کردن ماژول hc sr501  ابتدا می بایست این ماژول را در محیطی بدون حرکت به مدت ۱۰ الی ۶۰ ثانیه قرار دهیم.

hc-sr501-labelled-alt

برای تعیین فاصله قابل تشخیص ماژول میتوان با پتانسیومتر sx تنظیم کرد.که حدود سه تا هفت متر میباشد.

همچنین برای تنظیم زمان میتوانید به وسیله پتانسیومتر tx انجام دهید و در کمترین 5 ثانیه میباشد و بیشترین زمان 200 ثانیه میباشد.

نحوه اتصال پین ها هم به صورت زیر است 

pirsensor_bb

 

 

 

/*
* www.persianstudent.ir
* mahdi271
* sensor pir hc-sr501
*/
int led = 13;
//شماره پین led که استفاده میکنیم
int sensor = 2;
//سنسور را به پین 2 وصل کرده
int state = LOW;
//تعیین یه متغییر برای وضعیت سنسور
int value = 0 ;
//ذخیره مقدار سنسورفعلی
void setup()
{
pinMode(led,OUTPUT);
//تعیین خروجی بودن پین 13
pinMode(sensor,INPUT);
//تعیین ورودی بودن پین 2
Serial.begin(9600);
//راه اندازی سریال مانیتور

}
void loop()
{
value = digitalRead(sensor);
//خواندن مقدار سنسور و ذخیره در متغییر value
if(value = HIGH) //درصورتی ک سنسور حرکت را ثبت کند.
{
digitalWrite (led,HIGH);//ال ای دی تعیین شده روشن میشود
delay(300); //تاخییر 300 میلی ثانیه ای
if(state == LOW) //درصورتی که وضعیت خاموش بوده یعنی قبلا پس تازه فعال شده
{
Serial.print(“Motion is detected!!! “);//چاپ حرکت تشخیص داده شده
state = HIGH; //تغییر وضعیت به high
}
}
else
{
digitalWrite (led,LOW);//خاموش کردن led
delay(300);
if(state == HIGH) //اگر از قبل روشن بوده و حال حرکت تشخیص داده نشده
{
Serial.println(“Motion is Stopped!!!”);//چاپ حرکت متوقف شده است
state = LOW; // تغییر وضعیت به LOW
}
}
}

0

941 views

نویسنده: مهدی موسوی
درباره مهدی موسوی:

دانشجوی رشته کامپیوتر گرایش نرم افزار دانشگاه صنعتی سجاد مشهد . علاقه مند به دنیای اینترنت



طراحی سایت توسط تیم طراحی دانشجوی ایرانی

© تمامی حقوق مادی و معنوی این وب سایت متعلق به دانشجوی ایرانی می باشد.