🦇 فاصله‌سنج اولتراسونیک HC-SR04 با آردوینو

✍️ تیم ووکوی فارسی ·

خفاش‌ها در تاریکی چطور به دیوار نمی‌خورند؟ صدایی می‌فرستند که ما نمی‌شنویم و از روی زمان برگشت پژواکش می‌فهمند مانع چقدر دور است. سنسور اولتراسونیک HC-SR04 دقیقاً همین کار را می‌کند. در این آموزش با آن و آردوینو یک فاصله‌سنج می‌سازیم که عدد را به سانتی‌متر نشان می‌دهد و وقتی چیزی نزدیک شد، چراغ هشدار روشن می‌کند. این پروژه را می‌توانی مثل کاربران wokwi در یک شبیه ساز آردوینو آنلاین هم بسازی، این بار به فارسی و رایگان.

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

  1. آردوینو یک پالس ۱۰ میکروثانیه‌ای به پایه‌ی Trig می‌فرستد.
  2. سنسور هشت موج صوتی ۴۰ کیلوهرتزی پخش می‌کند.
  3. پایه‌ی Echo تا وقتی پژواک برگردد HIGH می‌ماند.
  4. آردوینو مدت HIGH بودن را اندازه می‌گیرد و با سرعت صوت (حدود ۳۴۳ متر بر ثانیه) فاصله را حساب می‌کند.

قطعه‌ها و اتصال

قطعهپایهآردوینو
HC-SR04VCC5V
HC-SR04Trigپایه‌ی 9
HC-SR04Echoپایه‌ی 10
HC-SR04GNDGND
LEDآند (از راه مقاومت)پایه‌ی 13
LEDکاتدGND

کد کامل

const int TRIG_PIN = 9;
const int ECHO_PIN = 10;
const int LED_PIN  = 13;
const int ALARM_CM = 20;     // نزدیک‌تر از این، هشدار

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // یک پالس تمیز 10 میکروثانیه‌ای
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  long duration = pulseIn(ECHO_PIN, HIGH, 30000);   // حداکثر 30 میلی‌ثانیه صبر

  if (duration == 0) {
    Serial.println("out of range");
    digitalWrite(LED_PIN, LOW);
  } else {
    float cm = duration * 0.0343 / 2;
    Serial.print("distance:");
    Serial.println(cm);
    digitalWrite(LED_PIN, cm < ALARM_CM ? HIGH : LOW);
  }
  delay(100);
}

توضیح خط‌های مهم

HC-SR04 معمولاً بین ۲ سانتی‌متر تا حدود ۴ متر را اندازه می‌گیرد. اجسام نرم مثل پارچه یا سطح‌های کج صدا را خوب برنمی‌گردانند و عدد عجیب می‌دهند.

اجرا در شبیه‌ساز، رایگان

سنسور اولتراسونیک در تینکرکد فارسی جزو قطعه‌های همیشه‌رایگان است. مثال آماده‌ی فاصله‌سنج را باز کن؛ در شبیه‌ساز می‌توانی فاصله‌ی جسم جلوی سنسور را تغییر بدهی و عدد سریال مانیتور را ببینی. درس کامل این پروژه درس ۲۴: فاصله‌سنج جادویی است و نسخه‌ی پیشرفته‌ترش با بوق، سنسور پارک.

اشکال‌های رایج

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

فاصله‌سنج را رایگان اجرا کن 🦇

مقاله‌های مرتبط

🔐

قفل در با کارت RFID (MFRC522) و سروو موتور در آردوینو

🌡️

سنسور دما و رطوبت DHT22 و DHT11 با آردوینو: سیم‌کشی، کد کامل و ترموستات کوچک

🚶

سنسور حرکت PIR با آردوینو: از دزدگیر ساده تا چراغ راهروی هوشمند

📈

سریال مانیتور و نمودار سریال آردوینو در شبیه‌ساز آنلاین

همه‌ی آموزش‌های سنسورها و ماژول‌ها ← · همه‌ی مقاله‌ها