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

آموزش مدار تشخیص مانع با ماژول مادون قرمز ۴ کاناله Infrared Avoidance

Infrared-Avoidance-4channel-module-arduino-tutorial-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 

ماژول فرستنده گیرنده مادون قرمز

ماژول فرستنده گیرنده ۴ کانال مادون قرمز Infrared Aviodance از چهار فرستنده گیرنده به صورت مجزا تشکیل شده است. هر یک از چهار ماژول با یک خروجی مشخص شده است. بر روی برد اصلی چهار عدد پتانسیومتر جهت تنظیم حساسیت قرار گرفته است. با تنظیم هر یک از پتانسیومترها حساسیت هر یک از ماژول ها در برابر تشخیص مانع تنظیم می‌شود. برد اصلی از دو خروجی اصلی تشکیل شده است. ۴ خروجی VCC, GND, OUT برای اتصال ۴ ماژول فرستنده گیرنده مادون قرمز Infrared Aviodance در نظر گرفته شده است. همچنین در طرف دیگر برد اصلی ۶ پایه VCC, GND, IN1, IN2, IN3, IN4 برای اتصال ماژول فرستنده گیرنده ۴ کانال مادون قرمز Infrared Aviodance به میکروکنترلر قرار گرفته شده است. ولتاژ کاری ماژول فرستنده گیرنده مادون قرمز Infrared Aviodance بین ۳٫۳ تا ۵ ولت DC است. جریان کاری بیشتر از ۱ آمپر است. دمای کاری ماژول فرستنده گیرنده مادون قرمز Infrared Aviodance بین – ۱۰ تا + ۵۰ درجه سانتی گراد است. فاصله قابل تشخیص بین ۱ میلی متر تا ۶۰ سانتی متر تنظیم شده می‌باشد. ابعاد برد اصلی در حدود ۴۲ * ۳۸ * ۱۲ میلی متر و برد کوچک ۲۵* ۱۲*۱۲میلی متر است. سیگنال خروجی ماژول فرستنده گیرنده مادون قرمز Infrared Aviodance به صورت TTL می‌باشد.

 

هدف از آمورش مدار تشخیص مانع

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

 

اتصالات به آردوینو

همانطور که گفته شد، چهار سنسور فرستنده و گیرنده به صورت مجزا از برد اصلی قرار گرفته شده است. بر روی برد اصلی چهار خروجی VCC, GND, OUT قرار گرفته شده است. به ترتیب ۱ تا ۴ سنسور ها را به برد اصلی ماژول فرستنده گیرنده Infrared Aviodance اتصال دهید:

  • پایه VCC سنسور فرستنده گیرنده مادون قرمز را به VCC برد اصلی ماژول فرستنده گیرنده مادون قرمز اتصال دهید.
  • پایه GND سنسور فرستنده گیرنده مادون قرمز را به GND برد اصلی ماژول فرستنده گیرنده مادون قرمز اتصال دهید.
  • پایه OUT سنسور فرستنده گیرنده مادون قرمز را به IN1 تا IN4 برد اصلی ماژول فرستنده گیرنده مادون قرمز اتصال دهید.

 

آموزش ساخت مدار تشخیص مانع infrared avoidance - دیجی اسپارک

اتصال پایه های خروجی

در طرف دیگر برد اصلی ماژول فرستنده گیرنده مادون قرمز ۶ پین برای اتصال به میکروکنترلر قرار گرفته شده است که طبق زیر اتصالات را انجام میدهیم:

  • پایه VCC ماژول فرستنده گیرنده مادون قرمز را به پایه ۵ ولت آردوینو Arduino UNO اتصال دهید.
  • پایه GND ماژول فرستنده گیرنده مادو قرمز را به پایه GND آردوینو Arduino UNO اتصال دهید.
  • پایه IN1 ماژول فرستنده گیرنده مادون قرمز را به پایه ۲ دیجیتال آردوینو Arduino UNO اتصال دهید.
  • پایه IN2 ماژول فرستنده گیرنده مادون قرمز را به پایه ۳ دیجیتال آردوینو Arduino UNO اتصال دهید.
  • پایه IN3 ماژول فرستنده گیرنده مادون قرمز را به پایه ۴ دیجیتال آردوینو Arduino UNO اتصال دهید.
  • پایه IN4 ماژول فرستنده گیزنده مادون قرمز را به پایه ۵ دیجیتال آردوینو Arduino UNO اتصال دهید.

 

اتصال ال ای دی LED

برای نمایش نحوه ی عملکرد ۴ سنسور فرستنده گیرنده دو خروجی ال ای دی LED در کد برنامه تعریف می‌کنیم. پس از تشخیص مانع توسط سنسورهای فرستنده گیرنده، ال ای دی LED روشن ON خواهد شد که طبق زیر اتصالات را انجام می‌دهیم:

  • ال ای دی اول را به پایه ۹ دیجیتال آردوینو Arduino UNO اتصال دهید.
  • ال ای دی دوم را به پایه ۱۰ دیجیتال آردوینو Arduino UNO اتصال دهید.

 

 کد آردوینو Arduino ماژول مادون قرمز

#define ForwardL 2  // تعریف پایه ۲ برای سنسور جلو 
#define ForwardR 3  // تعریف پایه ۳ برای سنسور جلو
#define BackWardL 4  // تعریف پایه ۴ برای سنسور عقب
#define BackWardR 5  // تعریف پایه ۵ برای سنسور
#define LED1 9  // تعریف ال ای دی برای خروجی سنسورهای جلو
#define LED2 10  // تعریف ال ای دی برای خروجی سنسورهای عقب


void setup() {
  pinMode(ForwardL, INPUT); // تعریف پایه سنسور فرستننده گیرنده به عنوان ورودی 
  pinMode(ForwardR, INPUT); // تعریف پایه سنسور فرستنده گیرنده به عنوان ورودی 
  
 
  pinMode(BackWardL, INPUT); // تعریف پایه سنسور فرستنده گیرنده به عنوان ورودی 
  pinMode(BackWardR, INPUT); // تعریف پایه سنسور فرستنده گیرنده به عنوان ورودی  

 
  pinMode(LED1,OUTPUT); // ال ای دی اول به عنوان خروجی 
  pinMode(LED2,OUTPUT); // ال ای دی دوم به عنوان خروجی 

}

void loop() {
  
 
  int FR = digitalRead(ForwardR);// خواندن اطلاعات سنسور جلو
  int FL = digitalRead(ForwardL); // خواندن اطلاعات سنسور جلو 
  int BR = digitalRead(BackWardR); // خواندن اطلاعات سنسور عقب
  int BL = digitalRead(BackWardL);// خواندن اطلاعات سنسور عقب  

  
  if( FR == LOW || FL == LOW) // اگر سنسورهای جلو مانع را تشخیص دهد
  
  {
   
    digitalWrite(LED1,HIGH); // ال ای دی اول روش خواهد شد
    
  }
  
  else{ // در غیر اینصورت 
   
    
    digitalWrite(LED1,LOW);  // ال ای دی اول خاموش خواهد بود
    
  }


  
  if( BR == LOW || BL == LOW ) // اگر سنسورهای عقب مانع را تشخیص دهید
 
  {
   
    digitalWrite(LED2,HIGH); // ال ای دی دوم روشن خواهد شد
    
  }else{ // در غیر اینصورت
    digitalWrite(LED2,LOW); // ال ای دی دوم خاموش خواهد بود
   
 
  } 

  
  delay(200); // تاخیر 

}

کد را از طریق کلید های میانبری که برای انتقال کدها در نظر گرفته شده است به نرم افزار آردوینو Arduino انتقال دهید.  چنانچه شیوه نصب و راه اندازی نرم افزار آردوینو را نمی‌دانید. به آموزش کار با برد آردوینو و نصب نرم افزار آردوینو Arduino IDE مراجعه کنید.

 

تحلیل کد برنامه

تعریف پایه های سنسور فرستنده گیرنده

برای شروع پایه های سنسور فرستنده گیرنده را برای میکروکنترلر تعریف میکنیم. پایه های ۲ تا ۵ دیجیتال آردوینو Arduino برای ورودی سنسور فرستنده گیرنده مادون قرمز تعریف خواهد شد:

#define ForwardL 2  // تعریف پایه ۲ برای سنسور جلو 
#define ForwardR 3  // تعریف پایه ۳ برای سنسور جلو
#define BackWardL 4  // تعریف پایه ۴ برای سنسور عقب
#define BackWardR 5  // تعریف پایه ۵ برای سنسور
#define LED1 9  // تعریف ال ای دی برای خروجی سنسورهای جلو
#define LED2 10  // تعریف ال ای دی برای خروجی سنسورهای عقب

تعریف ورودی و خروجی

چهار ماژول فرستنده گیرنده مادون قرمز به عنوان ورودی و ال ای دی به صورت خروجی تعریف می‌شود:

pinMode(ForwardL, INPUT); // تعریف پایه سنسور فرستننده گیرنده به عنوان ورودی 
  pinMode(ForwardR, INPUT); // تعریف پایه سنسور فرستنده گیرنده به عنوان ورودی 
  
 
  pinMode(BackWardL, INPUT); // تعریف پایه سنسور فرستنده گیرنده به عنوان ورودی 
  pinMode(BackWardR, INPUT); // تعریف پایه سنسور فرستنده گیرنده به عنوان ورودی  

 
  pinMode(LED1,OUTPUT); // ال ای دی اول به عنوان خروجی 
  pinMode(LED2,OUTPUT); // ال ای دی دوم به عنوان خروجی

مدار تشخیص مانع با آردوینو و سنسور مادون قرمز - دیجی اسپارک

خواندن دیتا سنسورها

 int FR = digitalRead(ForwardR);// خواندن اطلاعات سنسور جلو
  int FL = digitalRead(ForwardL); // خواندن اطلاعات سنسور جلو 
  int BR = digitalRead(BackWardR); // خواندن اطلاعات سنسور عقب
  int BL = digitalRead(BackWardL);// خواندن اطلاعات سنسور عقب  

فعال شدن سنسور های رو به رو Forward

پس از تشخیص مانع توسط سنسورهای روبه رو، ال ای دی اول ( قرمز ) روشن می‌شود. در غیر اینصورت با عدم تشخیص مانع ال ای دی خاموش است:

 if( FR == LOW || FL == LOW) // اگر سنسورهای جلو مانع را تشخیص دهد
  
  {
   
    digitalWrite(LED1,HIGH); // ال ای دی اول روش خواهد شد
    
  }
  
  else{ // در غیر اینصورت 
   
    
    digitalWrite(LED1,LOW);  // ال ای دی اول خاموش خواهد بود
    
  }

فعال شدن سنسورهای عقب Backward

پس از تشخیص مانع توسط سنسور های عقب، ال ای دی دوم ( آبی ) روشن می‌شود. در غیر اینصورت با عدم تشخیص مانع ال ای دی خاموش است:

 if( BR == LOW || BL == LOW ) // اگر سنسورهای عقب مانع را تشخیص دهید
 
  {
   
    digitalWrite(LED2,HIGH); // ال ای دی دوم روشن خواهد شد
    
  }else{ // در غیر اینصورت
    digitalWrite(LED2,LOW); // ال ای دی دوم خاموش خواهد بود
   
 
  }

 

وسایل مورد نیاز

برد آردوینو Arduino UNO

ماژول فرستنده گیرنده مادون قرمز ۴ کانال Infrared Avoidance Module 

ال ای دی اوال LED OVAL

کابل فلت نری به مادگی 

کابل فلت مادگی به مادگی

 

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

 

پروژه

طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفته‌ایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیت، مدار جدیدی ایجاد کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ «#دیجی_اسپارک» و «#دانشجوکیت» و «#digispark» و «#daneshjookit» منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۱۹ دیدگاه

  • تا چند سانتی متر میتونه فاصله تشخیص بده؟مثلا میتونیم تنظیم کنیم که اگر جسمی در فاصله۰تا۳۰سانتری قرار گرفت تشخیص بده..و اینکه عملکرد سنسور مثل لیزر خطی یا مثل التراسونیک کمی زاویه دار…مرسی از اموزش عالیتون.

    • سلام
      از توجه شما ممنونم.
      طبق ادعا تولید کننده و اطلاعات نوشته شده در دیتاشیت کالا، محدوده اندازه گیری بین ۱ میلی متر تا ۶۰ سانتی نتر است. با این وجود پیشنهاد می‌شود توسط خودتان تست و بررسی گردد.
      در خصوص سوال دوم شفاف تر توضیح دهید تا راهنمایی کنم.

  • سلام و خسته نباشید
    آیا میشه هر کدوم از این سنسورها را در چهار طرف یک ربات قرار داد و برای هر یک کدنویسی جداگانه تعریف کرد؟

    • سلام
      بله از همین کد می‌توانید استفاده کنید و برای هر یک از چهار سنسور خروجی مورد نظر خود را جایگزین کنید.

    • با سلام
      در صورتیکه می‌توانید عمومی اعلام کنید، از همین طریق بیان کنید. در غیر اینصورت از طریق ارسال تیکت در دانشجوکیت اقدام نمایید.
      لینک ارسال تیکت

  • سلام
    ببخشیذ میشه هر کانال رو فقطه به یک لامپ خروجی داد؟یعنی برای هر کانال یک لامپ با رنگ متفاوت خروجی داد؟کدش رو تغییر دادم ولی نشد هر کانال رو به یک لامپ مجزا وصل کنم. بازم روی هر کانال دو تا لامپ روشن میشه
    راهنمایی میکنید لطفا

    • با سلام
      با توجه به ساختار ماژول یک خروجی برای هر سنسور میتوانید در نظر بگیرید. در این خصوص بایستی در کدها تغییرات لازم را انجام دهید.

  • سلام.تشکر از اموزش خوبتون..یک سوال: ایا میشه از دو سنسور PRI به طور مجزا برای فاصله سنجی استفاده کرد و فاصله سنجی هر تک سنسور چقد است؟

  • سلام خسته نباشید
    میشه واسه ۴ تا سنسور فاصله رو محدود کرد؟ یعنی مثلا تنظیم کرد که اگه مانع کمتر از ۳۰ سانتی متر نزدیک شد تشخیص بده؟

    • با سلام
      در این خصوص پیشنهاد می‌شود از سنسور فاصله سنج مانند SRF04 استفاده کنید.

  • سلام وقت بخیر. من از الکترونیک زیاد سردرنمیارم آیا میشه یه سیستم مادون قرمز طراحی و بسازید و برامون ارسال کنید؟؟