آموزش آردوینو UNO ( ماژول اولتراسونیک SRF04 )

به آموزش آردوینو ( قسمت بیست و یکم – ماژول اولتراسونیک SRF04 ) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۶ انجام شد!

ماژول اولتراسونیک SRF04

هر ماژول اولتراسونیک در داخل خودش تشکیل شده از ۲ تا مبدل فرستنده و گیرنده مافوق صوت که در کنار همدیگه بر روی PCB قرار گرفتند.

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

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

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

نکته : دامنه مسافتی که میتونید با کمک ماژول اولتراسونیک SRF04 تعیین کنید بین ۲ سانتی متر تا ۲۰۰ سانتی متر با دقت اندازه گیری ۳ میلی متر است.

VCC : این پایه برای تغذیه ماژول اولتراسونیک SRF04 بکار میرود و باید به ۵+ از برد آردوینو متصل شود.

(Trig(Trigger: این پایه برای تحریک تولید پالس اولتراسونیک استفاده میشود.یعنی وقتی میخواهیم یک پالس مافوق صوت ایجاد کنیم ، فرستنده مافوق صوت را با اعمال یک پالس بخصوص(۴۰ کیلو هرتز) تحریک میکنیم.

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

پیاده سازی عملی پروژه

پایه شماره ۴ ماژول اولتراسونیک srf04 به جایی متصل نیست.

Gnd  و Vcc ماژول اولتراسونیک فراموش نشود.

سیم بندی ال سی دی رو دقیقا مثل تصویر ببنید و پتانسومتر رو تا انتها بچرخونید.

پیاده سازی پروژه در پروتئوس

مدار را مانند شکل زیر ببندید.

کد های دستوری

طبق معمول ابتدا کتابخانه LiquidCrystal.h رو برای کار با ال سی دی کاراکتری فراخوانی میکنیم.

سپس حداکثر مقدار برد فاصله سنج صوتی خودمون را به مقدار ۲۰۰ سانتی متر تعریف میکینم.

#include <LiquidCrystal.h> 
#define max_distance 200

اگر بخواهیم میزان فاصله ماژول اولتراسونیک را تا مانع بصورت باراگراف روی ال سی دی کاراکتری نمایش بدهیم بهترین روش استفاده از تابع LcdBarGraph است.

این تابع ۳ تا مقدار رو بعنوان پارامتر دریافت میکند:

۱-تعداد ستون های ال سی دی کاراکتری

۲-تعد سطر های ال سی دی کاراکتری

۳-محل شروع نمایش بارگراف ها

LcdBarGraph lbg(&lcd, 16, 0, 1);

در تابع setup برنامه پایه های Trig  و Echo  را بعنوان خروجی و ورودی تعریف میکینم.

void setup() 
{
	lcd.begin(16,2);
	
	pinMode(trigPin, OUTPUT);
	pinMode(echoPin, INPUT);
}

در تابع loop اصلی برنامه به ترتیب:

۱-یک پالس برای تحریک فرستنده مافوق صوت ایجاد میکینم .اینکار باعث میشود تا فرستنده امواج مافوق صوت تحریک بشود و شروع به ارتعاش کند.

۲-منتظر مییشیم تا روی پایه Echo مدت زمان برگشت ارتعاش را دریافت کنیم.

۳-مدت زمان بدست آمده رو در مقدار ۰.۰۳۴ ضرب میکنیم و حاصل را تقسیم بر ۲ (چون زمان بدست آمده حاصل رفت و برگشت بود نه فقط مسیر رفت) میکینم تا مسافت بر حسب سانتی متر بدست بیاید.

۴-مقدار بدست امده را روی ال سی دی کاراکتری نمایش میدهیم.

void loop() 
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  
  distance= duration*0.034/2;
  
  lcd.setCursor(0,0);
  lcd.print("Distance: "); 
  lcd.print(distance);
  lcd.print(" cm");
  
  lcd.setCursor(0,1);
  lbg.drawValue(distance, max_distance);
  delay(500);
}

کد کامل پروژه

#include <LiquidCrystal.h> 
#include <LcdBarGraph.h>

#define max_distance 200

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 

LcdBarGraph lbg(&lcd, 16, 0, 1);

const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;

void setup() 
{
  lcd.begin(16,2);
  
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() 
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  
  distance= duration*0.034/2;
  
  lcd.setCursor(0,0);
  lcd.print("Distance: "); 
  lcd.print(distance);
  lcd.print(" cm");
  
  lcd.setCursor(0,1);
  lbg.drawValue(distance, max_distance);
  delay(500);
}

پایان آموزش آردوینو   ( قسمت بیست و یکم – ماژول اولتراسونیک SRF04 )

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...