آردوینو و آلتراسونیک-بخش دوم{راه اندازی ماژول و تست آن}

مقدمه

با سلام خدمت همه شما دوستان. در این جلسه قصد داریم نحوه راه اندازی ماژول srf05 رو با آردوینو رو یاد بگیریم. ما قبلا یک جلسه در مورد این که اصلا آلتراسونیک چیست و چه کاربردی دارد، صحبت کرده بودیم. پیشنهاد میکنم برای فهم بهتر اون جلسه رو از لینک زیر بخونید:

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

بخش سخت افزار:

الف:اتصال ماژول به برد آردوینو:

در تصویر زیر میتونید نحوه اتصال این ماژول رو به صورت خیلی واضح ببینید:

راه اندازی آلتراسونیک با آردوینو

 

همانطور که مشاهده میکنید برای اتصال تنها کافی است که پایه های مربوط به تغذیه ماژول رو به پایه های VCC و GND برد وصل کنیم و همچنین دو تا پایه echo و trigger رو هم به دو تا پایه دیجیتال متصل کنیم. هیچ نکته خاص دیگه ای وجود نداره.

بخش نرم افزار

کتابخانه newping

مثل سایر ماژول هایی که به آردوینو وصل میشن برای آلتراسونیک هم یه کتابخونه خیلی خوب وجود داره که میتونیم بدون هیچ دردسری با استفاده از اون ماژول رو راه اندازی کنیم و کلی هم دستورات مختلف رو روش اجرا کنیم.کتابخونه مورد نظر ما Newping.h نام داره.

این کتابخونه برای ماژول های مختلف آلتراسونیک مثل SR04, SRF05, SRF06, DYP-ME007 کاربرد داره  و دارای دستورات خیلی زیاد و انعطاف پذیری هست. اولین کاری هم که باید انجام بدیم این هست که این کتابخانه رو به نرم افزار arduino اضافه کنیم. از این لینک میتونید این کتابخانه رو دانلود کنید.  ما قبلا در یک جلسه به صورت کامل در مورد این که یک کتابخانه رو چگونه میشه به نرم افزار آردوینو اضافه کرد ، صحبت کردیم. اگه در مورد نحوه اضافه کردن کتابخانه مشکلی دارید پیشنهاد میکنم این جلسه رو حتما بخونید:

کدنویسی:

حالا دیگه رسیدیم به اصل مطلب که کدنویسیش هست. ابتدا یک نگاه به کد کلی بیندازید تا در ادامه این کد رو خط به خط توضیح بدیم:

#include <NewPing.h>

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(115200);
}

void loop() {
  delay(50);
  int uS = sonar.ping();
  Serial.print("Ping: ");
  Serial.print(uS / US_ROUNDTRIP_CM);
  Serial.println("cm");
}

توضیح خط به خط کد:

#include <NewPing.h>

این خط مربوط به به اضافه کردن هدر کتابخانه newping.h به برنامه هست.

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200

خط اول شماره پایه ای که باید Trigger به اون وصل بشه نشون داده میشه.که پایه شماره 12 هست.خط دوم مربوط به اتصال پایه Echo هست و با اون میگیم که پایه Echo باید به پایه 11 دیحیتال از برد آردوینو وصل بشه و در نهایت در خط سوم میگیم که ماکزیمم فاصله ای که آلتراسونیک اندازه گیری کنه چقدر باشه که این مقدار برابر 200 سانتی متر قرار داده شده.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

دستور اصلی تنظیمات هست تنظیمات اصلی رو انجام میده و میگه که trigger و Echo به چه پایه هایی وصل هستن و همچنین ماکزیمم فاصله ها چقدره.شماره پایه ها هم که در خطوط قبل مشخص شده بودند.

void setup() {
  Serial.begin(115200);
}

خیلی واضح هست که این دستور مربوط به راه اندازی پورت سریال با بادریت 115200 هست.

void loop() {
  delay(50);
  int uS = sonar.ping();
  Serial.print("Ping: ");
  Serial.print(uS / US_ROUNDTRIP_CM);
  Serial.println("cm");
}

توی تابع loop که دستوراتش همیشه اجرا میشن ابتدا با هر بار خواندن 50 میلی ثانیه صبر میکنه برنامه تا عملیات با دقت انجام بشه.
خط بعد ابتدا یه پالس رو میفرسته و سپس مدت زمانی که طول میکشه تا اون پالس برگرده رو توی متغیر uS قرار میده.
خط چهارم عبارت Ping رو روی پنجره پورت سریال نمایش میده.
خط پنجم مقدار فاصله رو بر حسب ساانتی متر حساب میکنه و روی پنجره سریال نمایش میده.

 
نکته:عبارت : US_ROUNDTRIP_CM یک مقدار ثابت هست و مقدارش برابر 50 قرار داره.مکانیزم درونی srf05 که با pic روی ماژول هم ارتباط داره به این صورت هست که هر 50 میکروثانیه که طول میکشه تا موج بره و برگرده تقریبا 1 سانتی متر فاصله وجود داره.این رابطه رو هم با هم عبارت معروف x= v*t بدست میارن.
خط ششم هم عبارت cm رو روی پنجره سریال نمایش میده.

دوستان عزیز بیشتر دوره های مربوط به این وب سایت رایگان می باشد. در صورت تمایل می توانید به اندازه وسع مالی خود(هر چند ناچیز) جهت پرداخت هزینه های نگهداری وب سایت از ما حمایت کنید:

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

اشتراک گذاری:
مطالب زیر را حتما بخوانید

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