راه اندازی سنسور تشخیص فاصله آلتراسونیک از طریق آردوینو
سنسور تشخیص فاصله آلتراسونیک HC-SR04 با ارسال یک موج صوتی در فرکانس مافوق صوت ( سنسور T ) و دریافت موج انعکاس یافته از سطح جسم ( سنسور R ) فاصله را از طریق محاسبه زمان رفت و برگشت موج صوتی در هوا با دقت بالا تخمین میزند. فرکانس موج صدا 40 کیلوهرتز می باشد، که بالاتر از حد بالای شنوایی انسان یعنی 20 کیلوهرتز است. فاصله میان سنسور و نقطه هدف برحسب سانتیمتر برابر است با نصف زمان انعکاس برحسب میکروثانیه ضرب در 0.0343 با این فرض که سرعت صوت برابر با 343m/s است. حداقل و حداکثر فواصل قابل اندازهگیری به ترتیب 2 سانتیمتر و 4 متر هستند. برای اندازهگیری فاصله قابل اطمینان، سنسور تشخیص فاصله آلتراسونیک باید به طور کامل بر سطح اسکنشده عمود باشد؛ و سطح موردنظر باید مسطح باشد. سیگنال از یک فاصله 5 متری در مدت زمان 29 میلی ثانیه باز میگردد، بنابراین یک تاخیر حداقل 40 میلی ثانیه بین اندازه گیریهای فاصله متوالی از تداخل بین سیگنالهای ناشی از اندازهگیریهای مختلف جلوگیری میکند.
برای مقداردهی اولیه سنسور تشخیص فاصله آلتراسونیک، پایه تریگر ( فرمان ) برای حداقل 10 میکروثانیه HIGH نگه داشته میشود. سپس حسگر یک سیگنال با 8 پالس با فرکانس 40 کیلوهرتز را با تابع ()pulseIn، ارسال میکند و بطور خودکار پایه انعکاس ( اکو ) را در HIGH تنظیم میکند، و هنگامیکه پایه اکو LOW شود منتظر بازگشت سیگنال می ماند. بازه زمانی بین تغییر پین اکو از HIGH به LOW زمان انعکاس است. اگر پایه اکو وقتی تابع ()pulseIn فراخوانی میشود HIGH باشد، تابع ()pulseIn تا زمانیکه پایه اکو LOW شده و سپس قبل از تنظیم زمان سیگنال HIGH شود، منتظر میماند.
یک سنسور تشخیص فاصله آلتراسونیک در شکل 1 نشان داده شده است و اتصالات آن به برد آردوینو در جدول 1 بیان شدهاند.
پایه آردوینو | قطعه |
Arduino 5V | HC-SR04 VCC |
Arduino GND | HC-SR04 GND |
Arduino pin 6 | HC-SR04 Trig |
Arduino pin 7 | HC-SR04 Echo |
جدول 1. اتصالات CH-SR04 به آردوینو
int trigPin = 6; // HC-SR04 trigger pin
int echoPin = 7; // HC-SR04 echo pin
float duration, distance;
void setup()
{
Serial.begin(9600); // define Serial output baud rate
pinMode(trigPin, OUTPUT); // define trigger pin as output
pinMode(echoPin, INPUT); // define echo pin as input
}
void loop(){
digitalWrite(echoPin, LOW); // set the echo pin LOW
digitalWrite(trigPin, LOW); // set the trigger pin LOW
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // set the trigger pin HIGH for 10μs
delayMicroseconds(1);
digitalWrite(trigPin, LOW)
duration = pulseIn(echoPin, HIGH); // measure the echo time (μs)
distance = (duration/2.0)*0.0343; // convert echo time to distance (cm)
if(distance>400 || distance<2) Serial.println("Out of range");
else
{
Serial.print("Distance : ");
Serial.print(distance, 1); Serial.println(" cm");
}
}
اطلاعات سنسور تشخیص فاصله آلتراسونیک در IDE Arduino از طریق مانیتور سریال از مسیر Tools->Serial Monitor قابل نمایش هستند. سرعت ارتباط سریال بین آردوینو و سنسور 9600 baud (Bd) است که با دستور Serial.begin(9600) در تابع () void setup تعریف میشود.
چندین روش برای نمایش اطلاعات برروی مانیتور سریال وجود دارد.
- print(X,d) عدد حقیقی X را با d رقم دسیمال نمایش میدهد.
- abc print(“abc”) را نمایش می دهد
- print(“abc\tdef”) یک تب (\t) را بعد از abc و قبل از def وارد می کند.
- println(“abc”) پس از abc سطر عوض میشود (\r)و به خط بعدی میرود (\n)
#include // include NewPing library
int trigPin = 6; // trigger pin
int echoPin = 7; // echo pin
int maxdist = 100; // set maximum scan distance (cm)
int echoTime; // echo time
float distance; // distance (cm)
NewPing sonar(trigPin, echoPin, maxdist); // associate sonar with
// NewPing library
void setup ()
}
Serial.begin(9600); // set baud rate for Serial Monitor
{
void loop ()
}
echoTime = sonar.ping(); // echo time (μs)
distance = (echoTime/2.0)*0.0343; // distance between sensor and target
Serial.print("echo time: "); // print text "echo time
Serial.print(echoTime); // print echo time
Serial.print(" microsecs\t"); // print text " microsecs" and tab
Serial.print("distance: "); // print text "distance
Serial.print(distance,2); // print distance with 2 DP
Serial.println(" cm"); // " cm" followed by a new line
delay(500);
}
تیم ردرونیک (redronic) مجموعه ای از آموزش ها و پروژه های مرتبط با آردوینو را برای شما علاقهمندان به الکترونیک و برنامه نویسی فراهم کرده است. جهت مشاهده این پروژه ها اینجا کلیک کنید.