📏 هشدار فاصله با سنسور اولتراسونیک

سنسور اولتراسونیک دقیقاً مثل خفاش کار می‌کند: صدایی می‌فرستد که ما نمی‌شنویم و از زمان برگشتش فاصله را حساب می‌کند. این پروژه پایه‌ی ربات مانع‌گریز و سنسور پارک است.

چطور کار می‌کند

یک پالس کوتاه به پایه‌ی TRIG می‌دهی، سنسور صدا می‌فرستد، و پایه‌ی ECHO به‌اندازه‌ی مدت رفت‌وبرگشت صدا HIGH می‌ماند.

فرمول

سرعت صوت حدود ۳۴۰ متر بر ثانیه است، یعنی هر سانتی‌متر حدود ۲۹ میکروثانیه. چون صدا مسیر را دو بار طی می‌کند:

فاصله (سانتی‌متر) = مدت (میکروثانیه) ÷ ۵۸

کد

const int trig = 9, echo = 10, buzzer = 8;

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);
}

long readDistance() {
  digitalWrite(trig, LOW);   delayMicroseconds(2);
  digitalWrite(trig, HIGH);  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  long duration = pulseIn(echo, HIGH, 30000);   // با مهلت
  if (duration == 0) return 400;                // چیزی برنگشت
  return duration / 58;
}

void loop() {
  long cm = readDistance();
  Serial.print(cm);
  Serial.println(" cm");

  if (cm < 10)      tone(buzzer, 2000);   // خیلی نزدیک
  else if (cm < 30) tone(buzzer, 800);    // نزدیک
  else              noTone(buzzer);

  delay(100);
}

چرا مهلت (timeout) گذاشتیم؟

اگر هیچ مانعی نباشد، صدا هیچ‌وقت برنمی‌گردد و pulseIn تا یک ثانیه منتظر می‌ماند — برنامه‌ات هنگ به نظر می‌رسد. آرگومان سوم این را به ۳۰ میلی‌ثانیه محدود می‌کند.

محدودیت‌ها

هشدار فاصله را امتحان کن 📏

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا روبومیکر؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED