متوسط⏱ 16 دقیقه مطالعه

سنسور HC-SR04 با ارسال امواج فراصوت و اندازه‌گیری زمان بازگشت پژواک، فاصلهٔ یک جسم را از ۲ سانتی‌متر تا حدود ۴ متر تشخیص می‌دهد. این سنسور در پروژه‌های رباتیک (تشخیص مانع)، پارکینگ هوشمند و اندازه‌گیری سطح مایعات بسیار پرکاربرد است.

اتصال سنسور فاصله HC-SR04 به ESP32

نحوهٔ کارکرد سنسور

پایهٔ TRIG یک پالس کوتاه ۱۰ میکروثانیه‌ای دریافت می‌کند تا سنسور موج فراصوت بفرستد؛ سپس پایهٔ ECHO به مدت زمانی که موج طول کشیده تا برگردد، در وضعیت HIGH می‌ماند. با دانستن سرعت صوت، از این زمان می‌توان فاصله را محاسبه کرد.

PYTHON
from machine import Pin, time_pulse_us
from time import sleep, sleep_us

trig = Pin(5, Pin.OUT)
echo = Pin(18, Pin.IN)

def read_distance_cm():
    trig.value(0)
    sleep_us(2)
    trig.value(1)
    sleep_us(10)
    trig.value(0)
    duration = time_pulse_us(echo, 1, 30000)  # حداکثر ۳۰ میلی‌ثانیه انتظار
    if duration < 0:
        return None  # تایم‌اوت / پاسخی دریافت نشد
    return (duration * 0.0343) / 2

while True:
    d = read_distance_cm()
    if d is not None:
        print("فاصله: {:.1f} سانتی‌متر".format(d))
    else:
        print("پاسخی دریافت نشد")
    sleep(0.5)
⚠️ هشدار

پایهٔ ECHO این سنسور معمولاً ۵ ولت خروجی می‌دهد که برای GPIO سه‌ولتی ESP32 خطرناک است؛ حتماً از یک تقسیم‌کنندهٔ ولتاژ (دو مقاومت) استفاده کنید یا از نسخهٔ ۳٫۳ ولتی این سنسور (مثل RCWL-1601) بهره ببرید.

اندازه‌گیری فاصله با HC-SR04 در Wokwi باز کردن در Wokwi ↗
در حال بارگذاری شبیه‌ساز… (ممکن است چند ثانیه طول بکشد)

این یک شبیه‌سازی واقعی و قابل اجراست؛ روی دکمه پخش (▶) در Wokwi بزنید تا کد روی برد مجازی ESP32 اجرا شود. اگر جعبهٔ بالا بیش از حد سیاه/خالی ماند، صفحه را رفرش کنید یا از دکمهٔ «باز کردن در Wokwi» بالا استفاده کنید.

🛠️ کارگاه عملی

کارگاه عملی: وقتی فاصله کمتر از ۱۰ سانتی‌متر شد، یک LED هشدار را روشن کنید — پایهٔ اول یک سیستم سادهٔ تشخیص مانع برای ربات.

❓ کدام پایهٔ HC-SR04 مدت‌زمان بازگشت موج فراصوت را نشان می‌دهد؟
طراحی و توسعه: امین شیخ نجدیglcd.ir | نسخهٔ افزونه: 1.11.0