راه اندازی ماژول التراسونیک srf-05 با آردوینو
با سلام خدمت عزیزان ، امروز با هم به آموزش راه اندازی ماژول التراسونیک srf-05 با آردوینو می پردازیم شما با این آزمایش توانایی این را خواهید داشت تا فاصله اجسام را نسبتبه ماژول مورد نظر را گرفته و فاصله آن را بر روی lcd نمایش دهید
در ابتدای کار با هم با قطعات مورد استفاده داخل آموزش راه اندازی ماژول التراسونیک srf-05 آشنا میشیم
وسایل مورد نیاز آموزش راه اندازی ماژول التراسونیک srf-05 با آردوینو
[icon name=”layer-group” style=”solid” class=”” unprefixed_class=””] برد آردوینو
[icon name=”layer-group” style=”solid” class=”” unprefixed_class=””] LCD کاراکتری 2*16
[icon name=”layer-group” style=”solid” class=”” unprefixed_class=””] ماژول التراسونیک SRF_05
[icon name=”layer-group” style=”solid” class=”” unprefixed_class=””] پتانسیومتر
[icon name=”layer-group” style=”solid” class=”” unprefixed_class=””] تعدادی سیم
نمای LCD:
راه اندازی کی پد و نمایشگر توسط آردوینو
نمای التراسونیک:
SRF05 یک فاصله سنج التراسونیک بوده و با استفاده از این ماژول قادر خواهید بود فاصله دقیق یک مانع را مشخص نمایید. این ماژول به نوعی مدل تکامل یافته SRF04 است. در این ماژول انعطاف طراحی بالا رفته و برد مفید فاصله سنجی ارتقاء یافته است.
SRF05 با SRF04 کاملا تطابق داشته و برد آن از 3 متر به 4 متر افزایش یافته است. برای صرفه جویی در پایه های I/O ی میکروکنترلر یا هر سیستم میزبان دیگر امکان جدیدی در SRF05 تعریف شده است. در این حالت میتوانید از طریق یک پایه پالس تریگر را ارسال و سیگنال اکو را دریافت کنید.
نمای پتانسیومتر:
مقاومت متغییر یا پتاسیومتر در واقع از 2 مقاومت متغییر تشکیل شده استو دارای 3پایه است، و پایه وسط آن مقاومت را کم و زیاد می کند. این قطعه وظیفه محدود كردن جريان و ايجاد ولتاژ را دارد و واحد سنجش این قطعه همانند مقاومت اهم و آن را با علامت Ω نمایش میدهند. دراثرکم و زیاد کردن مقاومت در پتاسیومتر،سروو ما در جهت عقربه ساعت و بالعکس چرخش و تغییر حالت می دهد.
به دلخواه از سمت چپ یا راست یک کدام را (VCC)و یکی دیگر را (GND ) و پایه وسط پایه متغییر ولتاژ است.
نمای برد آردوینو:
شکل اتصال پایه ها:
جدول اتصالات:
آردوینو+التراسونیک
آردوینو | التراسونیک |
+5V | VCC |
GND | GND |
پایه۱۳ | TRIG |
پایه۱۰ | ECHO |
نیازی نداریم |
out |
آردوینو+lcd
آردوینو | Lcd |
پای وسط پتانسیومتر | vo |
پایه9 | E |
پایه10 | rs |
پایه5 | D4 |
پایه4 | D5 |
پایه3 | D6 |
پایه2 | D7 |
GND | VSS |
5V | VDD |
GND | RW |
DB0…DB3 | NO CONECT |
5V | BACK LIGHT ANODELCD(A) |
GND | BACK LIGHT CATOD LCD(K) |
حالا باهام به سراغ کدها میریم
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
#include <LiquidCrystal.h>
در این دستور ما کتابخانه LCD را فراخوانی کرده ایم
مانند کد زیر:
#include <LiquidCrystal.h>
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LiquidCrystal lcd(9,10 , 5, 4, 3, 2);
در این دستور ما پایه های LCDرا که به آردوینو متصل کردیم را معرفی می کنیم
مانند کد زیر:
LiquidCrystal LCD(10, 9, 5, 4, 3, 2);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
int trigPin=13;
در این دستور پایه التراسونیک را که به پایه آردوینو متصل کرده ایم معرفی می نماییم
مانند کد زیر:
int trigPin=13;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
int myCounter=0;
در این دستور ما متغییر تعریف کرده ایم و آن را مساوی 0 قرار داده ایم
مانند کد زیر:
int myCounter=0;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
float pingTime;
در این دستور ما دو متغییر را از نوع FLOAT معرفی کرده ایم که این متغییر برای زمان رفت و برگشت پینگ سنسور است
مانند کد زیر:
float pingTime;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
pinMode(trigPin, OUTPUT);
در این دستور پایه trig pin التراسونیک را به عنوان خروجی معرفی کرده ایم
مانند کد زیر:
pinMode(trigPin, OUTPUT);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
pinMode(echoPin, INPUT);
در این دستور پایه echopin را بع عنوان ورودی معرفی کرده ایم
مانند کد زیر:
pinMode(echoPin, INPUT);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.begin(16,2);
در این دستور ال سی دی ۱۶ستونی را به آردوینو معرفی می نماییم
مانند کد زیر:
LCD.begin(16,2);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.setCursor(0,0);
در این دستور مکان نمای LCD را در گوشه بالا سمت چپ ، ستون 0 ، ردیف 0 تنظیم می کنیم
مانند کد زیر:
LCD.setCursor(0,0);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.print(“Target Distance:”);
در این دستور کلمه مورد نظر برای چاپ بر روی ال سی دی را معرفی کرده ایم
مانند کد زیر:
LCD.print("Target Distance:");
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
digitalWrite(trigPin, LOW);
خواندن پایه الترا سونیک در کم ترین حالت
مانند کد زیر:
digitalWrite(trigPin, LOW);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
delayMicroseconds(2000);
زمان تاخیر را در این دستور تعریف کرده ایم
مانند کد زیر:
delayMicroseconds(2000);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
digitalWrite(trigPin, HIGH);
خواندن پایه الترا سونیک در بیش ترین حالت
[icon name=”circle-o” class=”” unprefixed_class=””] مانند کد زیر:
digitalWrite(trigPin, HIGH);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
pingTime = pulseIn(echoPin, HIGH);
زمان پینگ سنسور در میکرو ثانیه ها ارائه شده است
مانند کد زیر:
pingTime = pulseIn(echoPin, HIGH);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
pingTime=pingTime/1000000;
با تقسیم 1000000 (میکرو ثانیه در ثانیه) pingTime را به ثانیه تبدیل می کنیم
مانند کد زیر:
pingTime=pingTime/1000000;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
pingTime=pingTime/3600;
با تقسیم 3600 (ثانیه در ساعت) پینگ تایم را به hourse تبدیل کنید
مانند کد زیر:
pingTime=pingTime/3600;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
targetDistance= speedOfSound * pingTime;
این مسافت مایل خواهد بود ، زیرا سرعت صدا مایل در ساعت بود
مانند کد زیر:
targetDistance= speedOfSound * pingTime;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
targetDistance=targetDistance/2;
سفرهای پینگ را برای هدف قرار دادن و بازگشت از هدف به خاطر سپرده ، بنابراین برای مسافت واقعی هدف باید بین 2 تقسیم شود
مانند کد زیر:
targetDistance=targetDistance/2;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
targetDistance= targetDistance*63360;
با ضرب 63360 (اینچ در هر مایل) مایل را به اینچ تبدیل کنید
مانند کد زیر:
targetDistance= targetDistance*63360;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.setCursor(0,1);
مکان نما را روی ستون اول ردیف دوم تنظیم کردیم
مانند کد زیر:
LCD.setCursor(0,1);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.print(” “);
پرینت و نمایش عدد به دست آماده بر روی ال سی دی
مانند کد زیر:
LCD.print(" ");
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.print(targetDistance);
پرینت کلمه مورد نظر
مانند کد زیر:
LCD.print(targetDistance);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
LCD.print(” inches”);
پرینت کلمه مورد نظر
مانند کد زیر:
LCD.print(" inches");
سورس برنامه:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
//فراخوانی کتابخانه ال سی دی #include <LiquidCrystal.h> // معرفی پایه های متصل شده به آردوینو LiquidCrystal LCD(10, 9, 5, 4, 3, 2); //تعریف نوع متغییر و معرفی پایه التراسونیک که به آردوینو متصل شده int trigPin=13; int echoPin=11; int myCounter=0; //تعریف نوع متغییر و زمان رفت و برگشت پینگ التراسونیک float pingTime; // اندازه فاصله هدف تا سنسور float <code>targetDistance;</code> //سرعت فرستادن صوت در مایل بر ساعت float speedOfSound=776.5; void setup() { Serial.begin(9600); //تعریف ورودی خروجی ها pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); //تعریف ال سی دی ۱۶ ستونی در آردوینو LCD.begin(16,2); //مکان نمای ال سی دی در گوشه سمت چپ ستون۰و ردیف ۰ LCD.setCursor(0,0); //نمایش کلمه مورد نظر بر روی ال سی دی LCD.print("Target Distance:"); } void loop() { //خواندن پایه التراسونیک در کم ترین حالت digitalWrite(trigPin, LOW); //زمان تاخیر delayMicroseconds(2000); //خواندن پایه التراسونیک در بیشترین حالت digitalWrite(trigPin, HIGH); delayMicroseconds(15); digitalWrite(trigPin, LOW); delayMicroseconds(10); //زمان پینگ سنسور در میکرو ثانیه ها ارائه شده است pingTime = pulseIn(echoPin, HIGH); //با تقسیم (میکرو ثانیه در ثانیه) پینگ تایم را به ثانیه تبدیل می کنیم pingTime=pingTime/1000000; //با تقسیم ثانیه در ساعت پینگ تایم را به ساعت تبدیل می کنیم pingTime=pingTime/3600; //این مسافت مایل خواهد بود ، زیرا سرعت صدا مایل در ساعت بود targetDistance= speedOfSound * pingTime; //سفرهای پینگ را برای هدف قرار دادن و بازگشت از هدف به خاطر سپرده ، بنابراین برای مسافت واقعی هدف باید بین 2 تقسیم شود targetDistance=targetDistance/2; //با ضرب (اینچ در هر مایل) مایل را به اینچ تبدیل کنید targetDistance= targetDistance*63360; //مکان نما را روی ستون اول ردیف دوم تنظیم کردیم LCD.setCursor(0,1); //پرینت و نمایش عدد به دست آماده بر روی ال سی دی; LCD.print(" "); LCD.setCursor(0,1); //پرینت کلمه مورد نظر LCD.print(targetDistance); //پرینت کلمه مورد نظر LCD.print(" inches"); delay(250); }
نتیجه:
در آموزش راه اندازی ماژول التراسونیک srf-05 ما می توانیم در اندازه گیری فاصله اشیا تا ماژول را بگیریم یکی از استفاده های این ماژول
در بشکه های آب برای اندازه گیری سطح میزان آب می باشد و در صنعت در صنعت کاغذسازی برای میزان کشش استفاده می شود
تا در اثر کشش زیاد کاغذ پاره نشود
موفق پیروز باشید
امیدوارم از مطلب لذت برده باشید حتما سر به اینستاگرام ما بزنید
_________ _________
- در صورت مشکل در لینک دانلود یا خود فایل حتما در بخش خرابی لینک برامون بنویسید تا در سریع ترین زمان رسیدگی کنیم
- توجه فرمایید که اعلام گزارش خربی باعث بهتر شدن خدمات ما به شما خواهد بود
- برای دریافت لینک دانلود یک بار ثبت نام کنید و به صورت مستقیم دانلود کنید
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : robotafzar.com گزارش خرابی لینک
Oops! We could not locate your form.
درباره امیرحسین تاراج بر
دانشجوی الکترونیک دانشگاه سراسری تهران و در زمینه ی آردوینو - رزبری پای در حال فعالیت هستم به ساخت رباتیک و کار های فنی علاقه مندم و در ربات افزار مشغول به کار هستم
نوشته های بیشتر از امیرحسین تاراج بر
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.