آردوینو آموزش آردوینو قطعات الکترونیک مدارهای الکترونیک پروژه های آردوینو

آموزش راه اندازی ماژول فاصله سنج GP2Y0A21 آردوینو

ماژول-فاصله-سنج-gp2y0a21
نوشته شده توسط علیرضا قربانی

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

 


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


سنسور فاصله سنج GP2Y0A21

آردوینو Uno

خازن ۱۰۰nF که توصیه میشود به تغذیه سنسور برای جلوگیری از نویز متصل شود

 


ویژگی های ماژول GP2Y0A21


اندازه گیری در محدوده  ۱۰ تا ۸۰ سانتی متر

ولتاژ کاری ۴٫۵ تا ۵ ولت DC

اندازه گیری فاصله در زاویه ۴۰ درجه

خروجی آنالوگ

زمان پاسخ ۴۰ میلی ثانیه

 


اتصالات مدار GP2Y0A21


سیم زرد رنگ به پایه ی A0 برد آردوینو

VCC سنسور به ۵ ولت مثبت

GND سنسور به GND مدار

 

توضیحات

سنسور فاصله سنج GP2Y0A21 در فواصل ۱۰ تا ۲۴ سانتی متر ممکن است دارای ۳+/- سانتی متر خطا داشته باشد ولی در فاصله ۲۴ تا ۸۰ سانتی متر تقریبا فاقد خطا می باشد.

آموزش راه اندازی سنسور فاصله سنج gp2y0a21

 

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

آموزش راه اندازی سنسور فاصله سنج gp2y0a21

نمودار تغییرات مسافت نسبت به ولتاژ خروجی

 

 


برنامه آردوینو GP2Y0A21


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

آموزش راه اندازی سنسور فاصله سنج gp2y0a21

 

کدهای پروژه فاصله سنج GP2Y0A21 با آردوینو

#include <LiquidCrystal.h>



LiquidCrystal  lcd (6, 7, 8, 9, 10, 11, 12);
void setup ()
  {
  lcd.begin (16, 2);
  lcd.print ("    GP2Y0A21    ");

  delay (2000);

  }

void loop ()
  {
  float distance = average_value (100);
  float distance_m=distance/(float)100;
//تبدیل  کردن سانتی متر به متر

  /*
به تعداد ۱۰۰ بار مقدار ستسور آنالوگ را میخواینم و سپس میانگین این مقادیر را برمیگردانیم
*/


  if ( distance> 80 )
    {
    lcd.clear ();
    lcd.print ("   Out of range ");
    }
  else
    {
    lcd.home ();
    lcd.print ("distnce:");
    lcd.print (distance_m);
    lcd.print ("m");
    lcd.print ("     ");

    }
  delay (500);
  }
int average_value (int average_count)
  {
  float sum = 0;
  for ( int i = 0; i< average_count; i++ ) {
    float sensor_value = analogRead (A0); //خواندن نقدار آنالوگ سنسور
    float distance_cm = pow (3027.4 /(float) sensor_value, 1.2134);
    /*
    //با استفاه از این این عملیات مقدار آنالوک را به فاصله بر حسب سانتی متر تبدیل میکنیم
    */
    sum = sum + distance_cm;
    }
  return(sum /(float) average_count);
  }

 

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

 

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

 

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

علیرضا قربانی

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

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

۹ دیدگاه

  • سلام اینو میشه گذاشت تو ربات امدادگر

    اگه میشه میشه توضیح بدید چه جوریش کنم که خودکار کار کنه

    واگه نمیشه گذاشت میشه بگید چه سنسور فاصله سنجی رو میشه گذاشت.

  • سلام میخوام یک کار کنترل فاصله انجام بهم یعنی اگه فاصله بیشتر ار ۶۰ سانتیمتر شد فرمان به یک رله داده بشه تا یک موتور راه اندازی بشه.میخوام از این سنسور استفاده کنمو سخت افزارم میکرو AVR ATMEGA16 است لطفا راهنمایی بفرمایید

  • سلام
    واقعا خسته نباشید
    پروژه هاتون بسیار عالی و حرفه ای هستند
    دقت اندازه گیری این سنسور برای فواصل بیشتر از ۲۴ سانتیمتر چقدره؟
    اگه میشه از نحوه عملکرد این پروژه هم فیلم بذارید
    ممنون