داغ ترین ها

ورود / عضویت

Arduino Tech

عضویت در سایت

فراموشی رمز عبور

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

Arduino-UNO-SRF05

سخت افزار مورد نیاز

Tested with HY-SRF05, HC-SR04
Assuming a room temp of 20 degrees centigrade
The circuit:
* VVC connection of the sensor attached to +5V
* GND connection of the sensor attached to ground
* TRIG connection of the sensor attached to digital pin 12
* ECHO connection of the sensor attached to digital pin 13
*/
const int TRIG_PIN = 12;
const int ECHO_PIN = 13;
void setup() {
// initialize serial communication:
Serial.begin(9600);
pinMode(TRIG_PIN,OUTPUT);
pinMode(ECHO_PIN,INPUT);
}
void loop()
{
long duration, distanceCm, distanceIn;
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN,HIGH);
// convert the time into a distance
distanceCm = duration / 29.1 / 2 ;
distanceIn = duration / 74 / 2;
if (distanceCm <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distanceIn);
Serial.print("in, ");
Serial.print(distanceCm);
Serial.print("cm");
Serial.println();
}
delay(1000);
}

 

شرح برنامه

تعریف ثابت در ابتدا برنامه جهت دسترسی به پین ها با نام مستعار:

const int TRIG_PIN = 12;
const int ECHO_PIN = 13;

جهت اینکه مقدار پالس بالا در پین ها پاک شود یک پالس پایین در حد ۲ میکروثانیه به پین ارسال میکنیم:

digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2)
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN,HIGH);

تبدیل مقادیر دریافتی از سنسور به سانتی متر و اینچ:

distanceCm = duration / 29.1 / 2 ;
distanceIn = duration / 74 / 2;

و در نهایت ارسال آن به خروجی از طریق سریال:

Serial.print(distanceIn);
Serial.print("in, ");
Serial.print(distanceCm);
Serial.print("cm");
Serial.println();

جهت مشاهده خروجی از انواع کنسول ها میتوانید استفاده کنید که احتمالا راحتتر هستید از کنسول آردوینو استفاده کنید و خروجی را مشاهده کنید اما از کنسول های دیگر مانند putty در ویندوز و لینوکس نیز استفاده کنید.

منبع: دیجی اسپارک

مجید امانی

مجید امانی

توی زمینه رباتیک، الکترونیک، میکروکنترلر و IT فعالیت می کنم...

پاسخ دهید

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