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

دوستان سلام مجدد.این جلسه میخوایم ماژول آلتراسونیک رو راه اندازی کنیم.برای راه اندازی یک ماژول ما باید دو مرحله رو انجام بدیم.اول این که اتصال ماژول رو به آردوینو یاد بگیریم و دوم هم اینکه براش یه کد راه اندازی بزنیم.

 

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

اول خالی از لطف نیست یه بار دیگه پایه های این ماژول رو دوباره بررسی کنیم.شکل زیر رو ببینید:

srf05 pins

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

srf05 arduino

در عکس زیر هم همین اتصالات رو به صورت واقعی میتونید ببینید:

srf05 arduino connection

خوب الان دیگه فک کنم به طور کامل فهمیده باشید که چجور باید آردوینو رو به srf05 وصل کرد.در مورد این که چرا انی پین ها هم برای اتصال در نظر گرفته شده اند توی کد بیشتر متوجه میشید.

ب:کدنویسی ماژول:

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

معرفی کتابخانه Newping.h :

این کتابخونه برای ماژول های مختلف آلتراسونیک مثل SR04, SRF05, SRF06, DYP-ME007 کاربرد داره  و دارای دستورات خیلی زیاد و انعطاف پذیری هست.برای استفاده از این کتابخونه اول باید اون رو دانلود کنید و به برنامه تون اضافه کنید.برای دانلود از لینک زیر استفاده کنید:

لینک دانلود کتابخانه newping.h

بعد از دانلود باید اون رو به آردوینو اضافه کنید که نحوه اضافه کردنش هم به این صورت هست که فولدر این فایل رو در پوشه Library در محل نصب یا اگه پرتابل هست در محل قرار داشتن نرم افزار کپی میکنید.

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

#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 رو روی پنجره سریال نمایش میده.
در آخر اگه میخواید کد رو به صورت یکجا داشته باشید میتونید از لینک زیر اون رو دانلود کنید:

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