برای اندازه گیری فاصله ، از روش ها مختلفی استفاده می شود . یکی از این روش ها موسوم به سونار است . در این روش از محاسبه زمان بازتاب امواج صوتی و همچنین پدیده دوپلر (تغییر فرکانس امواج صوتی بر اساس فاصله از منبع صوت) جهت اندازه گیری فاصله استفاده می شود . این ماژول می تواند حداکثر تا فاصله 4 متر را با دقت 5 میلیمتری اندازه بگیرد . از این ماژول می توان در سیستم های اندازه گیری فاصله استفاده کرد. جهت راه اندازی این ماژول نیازی به هیچ المان خارجی نیست و می توان آن را مستقیما به MCU متصل کرد .
پین های ماژول US-015 :
این ماژول دارای 4 پین به صورت زیر می باشد :
1- VCC پین تغذیه ماژول است .
2- Trig این پین جهت فعال سازی و ارسال امواج توسط ماژول می باشد .
3- Echo این پین هنگام دریافت پژواک تغییر وضعیت می دهد .
4- gnd پین زمین ماژول می باشد .
مشخصات :
- ولتاژ کاری 5 ولت
- عملکرد به صورت آلتراسونیک
- جریان مصرفی در حالت آماده به کار کمتر از 3mA
- رنج اندازه گیری فاصله از 2 سانتی متر تا 4 متر
- دقت اندازه گیری 5mm
- زاویه انتشار 15 درجه
- تاخیر انتشار 10us
راه اندازی ماژول US-015 توسط آردوینو :
این ماژول دارای چهار پین است که دو پین آن تغذیه و پین های دیگر Echo و Trig است . برای اندازه گیری فاصله باید پین Trig را به مدت 10 میکرو ثانیه 1 شود ، در این حالت پین Echo از 0 به 1 تغییر حالت می دهد و تا دریافت پژواک در حالت 1 باقی می ماند و می توان با اندازه گیری زمان یک بودن پین Echo فاصله تا جسم را محاسبه کرد .
در مثال زیر با استفاده از آردوینو ابتدا پین Trig به مدت 10us یک می شود و سپس مدت زمان یک بودن پین Echo اندازه گیری می شود . با استفاده از سرعت صوت در هوا می توان مقدار فاصله را بر حسب سانتیمتر به دست آورد .
#define trigPin 11 #define echoPin 12 #define led 11 #define led2 10 void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(led, OUTPUT); pinMode(led2, OUTPUT); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); // Added this line delayMicroseconds(2); // Added this line digitalWrite(trigPin, HIGH); // delayMicroseconds(1000); - Removed this line delayMicroseconds(10); // Added this line digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 4) { // This is where the LED On/Off happens digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off digitalWrite(led2,LOW); } else { digitalWrite(led,LOW); digitalWrite(led2,HIGH); } if (distance >= 200 || distance <= 0){ Serial.println("Out of range"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); {