حسگر HC-SR04 یک فاصلهسنج اولتراسونیک است که با امواج صوتی فاصله تا اجسام را اندازه میگیرد؛ دقیقاً مثل خفاشها! در این درس یاد میگیری چطور با کد، فاصله را اندازه بگیری و روی Serial Monitor نمایش بدهی.
این حسگر دو پایه مهم دارد: trig (تریگر) برای ارسال موج و echo (اکو) برای دریافت بازتاب موج. ما یک پالس کوتاه از trig میفرستیم، موج به جسم میخورد و برمیگردد، و آردوینو مدت زمان رفتوبرگشت موج را اندازه میگیرد.
برای شروع اندازهگیری، باید یک پالس ۱۰ میکروثانیهای روی پایه trig بفرستیم. سپس با دستور pulseIn() مدت زمان بالا بودن پایه echo را میخوانیم. سرعت صوت تقریباً ۰.۰۳۴ سانتیمتر در میکروثانیه است و چون موج هم میرود و هم برمیگردد، نتیجه را بر ۲ تقسیم میکنیم:
int trigPin = 9;
int echoPin = 10;
long duration;
float distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
// ارسال پالس ۱۰ میکروثانیهای
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// خواندن مدت زمان بازگشت موج
duration = pulseIn(echoPin, HIGH);
// محاسبه فاصله بر حسب سانتیمتر
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
ابتدا پایهها را تنظیم میکنیم؛ trigPin خروجی و echoPin ورودی است. در حلقه اصلی یک پالس میفرستیم، زمان بازگشت را با pulseIn() میگیریم، فاصله را حساب میکنیم و هر نیم ثانیه روی Serial Monitor چاپ میکنیم.
این کد را همین حالا در حالت کدنویسی شبیهساز روبومیکر بنویس و اجرا کن.
🔌 همین حالا توی شبیهساز آنلاین روبومیکر امتحان کن — رایگان و بدون نصب