راه اندازی سنسور PIR و Buzzer

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 25, 2020

سنسورهای PIR به شما این امکان را می دهند که حرکت را حس کنید. از آنها برای تشخیص اینکه آیا انسان در محدوده سنسور یا خارج از آن حرکت کرده است استفاده می شود. معمولا در وسایل و ابزارهای امنیتی مورد استفاده در خانه یا برای کسب و کار یافت می شوند. اغلب به عنوان PIR، "مادون قرمز منفعل"، "Pyroelectric" یا "IR motion" شناخته می شوند. در زیر مزایای سنسورهای PIR را مشاهده می کنید:

  • کوچک
  • محدوده وسیع لنز
  • رابط کاربری آسان
  • ارزان
  • کم مصرف

 

PIR ها از سنسورهای پریوالکتریک ساخته شده است، یک فلز گرد می تواند با یک کریستال مستطیلی در مرکز، که می تواند سطح اشعه مادون قرمز را تشخیص دهد. همه چیز پرتوهای سطح پایین را منتشر می کند، و چیز گرمتر، تابش بیشتری را نشان می دهد.

PIR ها دارای تنظیمات قابل تنظیم هستند و یک هدر در لود 3 / پین زمین / خروجی / قدرت نصب شده است.

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

 

قطعه کد زیر نحوه تشخیص حرکت به همراه یک بازر را به شما به صورت عملیاتی نشان خواهد داد. البته این قطعه کد خیلی ابتدایی هستش و در مواردی نیاز به تغییراتی دارد.  

int buzzer = 3;                // the pin that the buzzer 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(buzzer, OUTPUT);   // making the buzzaer in output mode
  digitalWrite(buzzer,LOW);
  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(buzzer, HIGH);   // turn buzzer ON
    delay(100);                // delay 100 milliseconds 
    
    if (state == LOW) {
      Serial.println("Motion detected!"); 
      state = HIGH;       // update variable state to HIGH
    }
  } 
  else {
      digitalWrite(buzzer, LOW); // turn buzzer OFF
      delay(200);             // delay 200 milliseconds 
      
      if (state == HIGH){
        Serial.println("Motion stopped!");
        state = LOW;       // update variable state to LOW
    }
  }
}

 

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
0دیدگاه