آردوینو آموزش آردوینو پروژه های آردوینو پکیج سنسور آردوینو

ساخت حرکت سنج با سنسور تشخیص حرکت PIR

نوشته شده توسط محمدی

سنسورهای تشخیص حرکت PIR به مراتب پیچیده تر از دیگر سنسورها از جمله سنسور فتوسل ، تیلت سوئیچ و FSRs ها می‌باشد. دلیل این موضوع متغیرهای چندگانه‌ای است. این متغییرها بطور همزمان روی سنسور تشخیص حرکت تاثیر می‌گذارد. سنسور تشخیص حرکت PIR motion detector از دو بخش گیرنده تشکیل شده است. هر دو بخش بخاطر مواد سازنده آن به طول موج IR یا مادون قرمز حساسیت نشان می‌دهند. یک لنز گمبدی شکل روی سنسور تشخیص حرکت وجود دارد. این لنز فقط در افزایش محدوده دید سنسور کمک می‌کند.  زمانی که سنسور تشخیص حرکت PIR در حالت پایه خود قرار دارد؛ هردو سنسور یک میزان از شدت نور مادون قرمز محیط را دریافت می‌کنند.

در آموزش قبلی با سنسور تشخیص حرکت PIR شیوه راه اندازی و مدیریت این سنسور با برد آردوینو Arduino آموزش داده شد. در این پست شیوه ساخت یک دستگاه تشخیص حرکت بسیار ساده را آموزش خواهم داد. از این دستگاه در راهروها و یا اتاق‌ها می‌توانید استفاده کنید. خروجی رله را به هر وسیله‌ای از جمله آژیر و یا سیستم روشنایی بدهید. در ادامه با مرجع تخصصی آردوینو Arduino دیجی اسپارک همراه باشید.

 

هنگامی که یک جسم گرم همانند انسان یا حیوان از روبروی سنسور تشخیص حرکت PIR عبور کند؛ سنسور اول جسم را شناسایی و یک ولتاژ مثبت ایجاد می‌کند. حال اگر جسم همچنان به حرکت خود ادامه دهد؛ سنسور دوم حرکت را تشخیص داده و یک ولتاژ منفی ایجاد می‌کند. این دو ولتاژ که یکی مثبت و دیگری منفی‌ست بیانگر حرکتی در محیط است.

سنسور تشخیص حرکت

سنسور تشخیص حرکت PIR مجهز به یک محافظ می‌باشد. این محافظ از جنس سیلیکون شفاف تهیه شده است. در مقابل تابش IR  و نقشی که این محافظ ایفا می‌کند محافظت از سنسور در مقابل گرد و خاک و دیگر چیزهاست.

 

وسایل لازم:

اتصالات :

کدهای برنامه :

/*  
    Arduino with PIR motion sensor
    Modified by Rui Santos based on PIR sensor by Limor Fried
*/
 
int led = 13;                // the pin that the LED is atteched to
int sensor = 2;              // the pin that the sensor is atteched to
int state = LOW;             // by default, no motion detected
int val = 0;                 // variable to store the sensor status (value)

void setup() {
  pinMode(led, OUTPUT);      // initalize LED as an output
  pinMode(sensor, INPUT);    // initialize sensor as an input
  Serial.begin(9600);        // initialize serial
}

void loop(){
  val = digitalRead(sensor);   // read sensor value
  if (val == HIGH) {           // check if the sensor is HIGH
    digitalWrite(led, HIGH);   // turn LED ON
    delay(1000);                // delay 100 milliseconds 
    
    if (val == LOW) {
      Serial.println("Motion detected!"); 
      state = LOW;       // update variable state to HIGH
      digitalWrite(led,LOW);
    }
  } 
  else {
      digitalWrite(led, LOW); // turn LED OFF
      delay(200);             // delay 200 milliseconds 
      
      if (state == HIGH){
        Serial.println("Motion stopped!");
        state = LOW;       // update variable state to LOW
    }
  }
}

 


دیگر آموزش‌های مرتبط با سنسور PIR


معرفی سنسور PIR چگونگی کار و آموزش راه اندازی با برد آردوینو

آموزش ساخت چشمی راه پله با آردوینو و سنسور تشخیص حرکت PIR

طراحی و پیاده سازی سنسور راه پله هوشمند بدون آردوینو و برنامه نویسی

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

پروژه‌ی سیستم تشخیص حرکت انسان با میکروپایتون و رزبری پای پیکو

آموزش ساخت دوربین مخفی امنیتی با برد ESP32-Cam و سنسور PIR

طراحی و پیاده سازی سیستم خوش آمدگویی به کمک آردوینو و DFPLAYER

 

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

محمدی

دانشجوی رشته متولورژی و علاقه مند به علم و تکنولوژی

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۴ دیدگاه

  • سلام
    چگونه باید از تایمر و کانتر برد unoاستفاده کنم؟مثلا هر یک دقیقه یکبار و برای ۴ بار یک کار ثابت انجام بده؟

  • سلام.
    تو این سناریو اینجوریه که تعریف میکنیم “اگه حرکتی دیده شد, کاری انجام بده(مثلا چراغ روشن شه). و با یک تاخیر چراغ خاموش بشه” ممکنه دراین زمان همچنان حرکت باشد,
    چطور میشه تعریف کرد که ” تا زمانیکه حرکت هست, چراغ روشن بمونه و بعد از رفتن جسم یا انسان, بعد از زمان مشخصی, چراغ خاموش شه”
    با تشکر

    • با سلام
      ضمن تشکر از توجه شما، در این صورت بایستی Delay در کدها تعریف کنید و یک بازه زمانی برای روشن ماندن مدار تعریف کنید. در این صورت مثلا اگر شخصی حرکت کند مدار به مدت ۳۰ ثانیه روشن است و در ثانیه ۲۶ ام یک شخص دیگری حرکت میکند و مجددا مدار شمارنده از اول شمارش میکند. به این صورت با این سنسور میتوانید اجرا کنید.

  • با سلام.
    می خواستم بدونم دقت این سنسور در چه مقداری است. مثلاً می تونه حرکت مگس و حشرات رو هم تشخیص بده.

  • سلام وخسته نباشید .
    من میخواستم بدونم چه جوری میشه با اردواینا ویک (ماژول مادون قرمز ) وپمپ اب کوچک
    دستگاهی درست کنم که وقتی دستمو میبرم جلوش فقط ۲ ثنیه اب بریزه ودیگه نریزه
    وبرای اینکه دو باره بریزه باید دستمو ببرم عقب وبیارم جلو
    مثل دستگاه الکل پاش
    ۲ثانیه بریزهودیگر نریزه
    ترو خدا زوود جواب بدین وقت نارم

  • سلام من می خواستم با pirیک پمپ اب رو راه بندازم وقتی از جلوش رد شم روشن شود می خواستم بدونم فقط همین سنسور برای این کار کافیه یانه