داغ ترین ها

ورود / عضویت

Arduino Tech

عضویت در سایت

فراموشی رمز عبور

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

hc sr501 یک ماژول تشخیص حرکت انسان می باشد . این ماژول با کمک یک کلاهک که بر روی آن قرار دارد کلیه اواج فروسرخ را بر روی سنسور خود متمرکز میکند.سنسور PIR که مخفف شده عبارت Passive Infra Red به معنی تاثیر پذیر از نور مادون قرمز می باشد. به عبارتی اساس کار این سنسور بر اساس تشخیص نور مادون قرمز است. در اثر حرارت بدن این نور توسط سنسور PIR قابل تشخیص می باشد. از این رو در سیستم های حفاظتی و امنیتی از سنسورهای PIR جهت تشخیص حرکت استفاده می کنند. خروجی این ماژول به صورت  ۰ و ۳٫۳ ولت TTL می باشد میتواند که به طور مستقیم به میکروکنترلر یا آردوینو متصل شود وحرکت را تشخیص دهد.

سخت افزار مورد نیاز

ماژول تشخیص حرکت hc sr501

آردوینو Uno

ویژگی ها

ولتاژ ۵ تا ۲۰ ولت DC

مسافت تحت پوشش ۳ تا ۷ متر قابل تنظیم از روی ماژول به وسیله ی پتانسیومتر

تعیین زمان high بودن خروجی پس از تشخیص حرکت به وسیله ی پتانسیومتر

زاویه تشخیص ۱۲۰ درجه

کاربرد ها

سیستم نورپردازی هوشمند

در های اتوماتیک

ساخت دزد گیر و وسایل امنیتی

اتوماسیتون صنعتی و …

توضیحات

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

hc-sr501-labelled

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

به وسیله ی پتانسیومتر tx میتوان زمان high بودن خروجی را بین ۵ الی ۲۰۰ ثانیه تنظیم نمود.

برنامه

شیوه ی کلی برنامه این گونه است که ابتدا ماژول به مدت ۱۰ ثانیه با محیط اطرف خود کانفیگ می شود. سپس وضعیت پین OUT که به پین شماره ۲ آردوینو متصل شده است را بررسی میکنیم. اگر این پین در وضعیت HIGH قرار گیرد بدین معنی است که حرکتی رخ داده است.

    #include
    LiquidCrystal lcd(6, 7, 8, 9, 10, 11, 12);
    int ledPin = 3;                // choose the pin for the LED
    int inputPin = 2;               // choose the input pin (for PIR sensor)
    int pirState = LOW;             // we start, assuming no motion detected
    int val = 0;                    // variable for reading the pin state
    void setup() {
      pinMode(ledPin, OUTPUT);      // declare LED as output
      pinMode(inputPin, INPUT);     // declare sensor as input
      lcd.begin(16, 2);
      lcd.print(" configuration");
      lcd.setCursor(2, 1);
      for (int i = 0; i < 10; i++)
      {
        lcd.print('.');
        delay(1000);
      }
      delay(2000);
      lcd.clear();
      lcd.print(" configured ");
      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) {
          // we have just turned on
          Serial.println("Motion detected!");
          // We only want to print on the output change, not state
          pirState = HIGH;
        }
      } else
      {
        digitalWrite(ledPin, LOW); // turn LED OFF
        if (pirState == HIGH) {
          // we have just turned of
          Serial.println("Motion ended!");
          // We only want to print on the output chaaange, not state
          pirState = LOW;
        }
     }
    }

منبع: دیجی اسپارک

مجید امانی

مجید امانی

توی زمینه رباتیک، الکترونیک، میکروکنترلر و IT فعالیت می کنم...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *