آموزش راه‌اندازی ماژول تشخیص حرکت HW-MS03 با آردوینو 

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

فهرست مطالب

مقدمه

سنسورهای تشخیص حرکت (Motion Detector) از المان‌های پرکاربرد الکترونیک محسوب میشوند، مخصوصا در زمینه سیستم‌های هوشمند و امنیتی.

برخی از کاربردهای سنسور تشخیص حرکت: هشدار حضور کسی در منزل یا محل کارتان در زمانی که جای دیگری هستید، تشخیص حرکت در راهرو و راه‌پله برای کنترل هوشمند سیستم روشنایی، تشخیص عبور خودرو یا انسان در مکان‌های امنیتی.

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

در این مقاله به راه‌اندازی و شرح عملکرد ماژول HW-MS03 که می‌تواند حرکت (رادار) مایکروویو را تشخیص دهد خواهیم پرداخت. همچنین نحوه استفاده از آن در یک سیستم هوشمند را به شما آموزش خواهیم‌داد.

معرفی ماژول تشخیص حرکت مایکروویو HW-MS03

مایکرو ویو (MicroWave) چیست؟

مایکروویو، نوعی تابش الکترومغناطیسیت با طول موجی بین یک متر تا یک میلیمتر که متناسب است با رنج فرکانسی بین 300 مگاهرتز تا 300  گیگا هرتز 

در تصویر زیر، طیف کامل امواج الکترو مغناطیسی نشان داده شده  که امواج مایکروویو هم بخشی از آن است، طول موج امواج مایکروویو از نور مرئی بیشتر و در نتیجه انرژی و فرکانس آن از نور مرئی کمتر است.  

طیف امواج الکترو مغناطیس

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

در این مقاله، تمرکز ما بر روی کاربرد راداری مایکرویو است که در ماژول HW-MS03 بکار گرفته می‌شود. 

رادار چیست؟

رادرا (RADAR) مخفف عبارت Radio Detection and Ranging به معنی “تشخیص و فاصله سنجی رادیویی” است. رادارها با ارسال یک موج الکترومغناطیسی و دریافت بازتاب آن از منبع بازتابدهنده، اطلاعاتی نظیر فاصله و سرعت جسم را محاسبه میکنند.

صنایع بزرگی مانند صنایع نظامی، دفاعی، کشتیرانی، هوایی و اکتشافی از این تکنولوژی بهره می‌برند. شاید برایتان جالب باشد که بدانید دوربین‌های راهور نیز با این سیستم کار می‌کنند.

HW-MS03 Module

ماژول رادار HW-MS03

ماژول HW-MS03 همانطور که از نامش پیداست یک سنسور راداری است با قابلیت تشخیص حرکت اجسام.

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

ولتاژ تغذیه این ماژول 3.7 تا 24 ولت، و ولتاژ پایه خروجی آن، در صورت اکتیو بودن، 3.3 ولت است.

فرکانس موج تولیدی این ماژول، 2.5 تا 5.8 گیگا‌هرتز و رنج شناسایی آن یک کره به شعاع 10 متر است.

مشخصات فنی ماژول تشخیص حرکت مایکروویو HW-MS03

  • ولتاژ ورودی3.7 الی 24 ولت
  • جریان ورودی: کوچکتر مساویِ 6 میلی آمپر
  • ولتاژ خروجی: 3.3 ولت (در صورت اکتیو بودن) 
  • رنج اندازه‌گیری: 10 متر (تست شده در محیط بسته)
  • زمان تاخیر خروجی: به صورت نرمال 2 ثانیه
  • فرکانس کاری: 2.5 الی 5.8 گیگاهرتز 
  • ابعاد 20*40 میلیمتر 

معرفی پایه‌های (Pinout) ماژول تشخیص حرکت HW-MS03

 ماژول تشخیص حرکت HW-MS03 تنها 3 پایه دارد : 

  • VCC: تغذیه ماژول (3.7 الی 24 ولت)
  • GND: زمین
  • OUT: پایه خروجی، 3.3 ولت (Active High)  
مشخصات پایه‌های Pinout ماژول HW-MS03

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز برای راه‌اندازی ماژول تشخیص حرکت HW-MS03

Arduino UNO R3 × 1
ماژول تشخیص حرکت مایکروویو HW-MS03 × 1
ال ای دی × 1
سیم جامپر × 1
مقاومت 220 اهم × 1

نرم افزارهای مورد نیاز

Arduino IDE

راه‌اندازی ماژول تشخیص حرکت HW-MS03 با آردوینو

گام اول: سیم بندی

مدار را مطابق شکل زیر ببندید. 

سیم بندی و مدار راه اندازی ماژول HW-MS03

مقاومت مورد استفاده 220 اهم است. 

گام دوم: کد

کد زیر را در آردوینو کپی و اجرا کنید.


#define Radar_pin 2 

#define LED_pin 4 

volatile byte state = LOW;   // variable to define the state of Radar_pin 

void setup() { 

    Serial.begin(9600); 

    pinMode(Radar_pin,INPUT_PULLUP);  

    pinMode(LED_pin, OUTPUT); 

    attachInterrupt(digitalPinToInterrupt(Radar_pin), radar_change, CHANGE);  

    //due to any change on Radar_pin, radar_change Function will be called

} 

void loop() { 

    digitalWrite(LED_pin, state); 

    /* 

    YOUR OTHER CODE 

    */ 

} 

void radar_change(){     // Interrupt ISR 

  state= digitalRead(Radar_pin); 

  if (state==1) Serial.println("Motion Detected"); 

  else Serial.println("There is No Motion");
} 

با استفاده از کد بالا، در صورت تشخیص حرکت توسط ماژولِ رادار ، ال‌ای‌دی روشن می‌شود و در زمانی که جسم متحرکی در محدوده نباشد این ال‌ای‌دی خاموش خواهد بود.

توضیح مختصری از کد بالا:

ابتدا پین شماره 2 به عنوان ورودی دیجیتال و پین شماره 4 به عنوان خروجی دیجیتال تعریف شدهاند. خروجی سنسور رادار به پین شماره 2 و پایه آند ال‌ای‌دی به پین شماره 4 آردوینو متصل می‌شوند. با خط زیر، یک روتین اینتراپت به پایه شماره 2 پیکربندی می‌شود، به گونه‌ای که با هر تغییری در وضعیت این پین، تابع radar_change() فراخوانده می‌شود. attachInterrupt(digitalPinToInterrupt(Radar_pin), radar_change, CHANGE); با فراخواندن تابع radar_change() وضعیت پین شماره 2 به عنوان خروجی خوانده شده و در متغیر state ذخیره می‌گردد (صفر یا یک). همچنین با چک کردن وضعیت ورودی، یک پیام در پورت سریال نیز نمایش داده می‌شود که نشان دهنده تشخیص یا عدم تشخیص حرکت است. سپس با دستور digitalWrite(LED_pin, state);  در حلقه اصلی، پین شماره 4 که قبلا به عنوان خروجی برای پایه ال‌ای‌دی تعریف شده، متناسب با متغیر state مقداردهی (فعال یا غیر فعال) می‌گردد.

یک گام جلوتر

سعی کنید یک یا چند خروجی، مثل یک لامپ یا آژیر خطر، را با استفاده از این ماژول، برد آردوینو و ماژول رله، راه‌اندازی کنید. 

سعی کنید بدون استفاده از میکرو‌کنترلر، یک سیستم هشدار بسازید. (کافیست خروجی سنسور را به یک مدار ترانزیستور و یا رله بدهید.) 

آموزش های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.