Menu
Sepet

HC-SR04 Ultrasonik Mesafe Sensörü

PCB rehberleri · Sensör ve modüller

HC-SR04 Ultrasonik Mesafe Sensörü

Okuma süresi: yaklaşık 2 dkElektromall teknik ekibi

Kısa cevap HC-SR04 ile mesafe nasıl ölçülür?

TRIG pinine 10 µs'lik bir darbe verilir, ECHO pininin yüksek kaldığı süre ölçülür. Mesafe = süre × ses hızı / 2 formülüyle bulunur; 20 °C'de cm = mikrosaniye × 0,0343 / 2'dir. Sensör 2 cm – 4 m arasında ölçer. 3,3 V'luk ESP32 ile kullanırken ECHO hattına gerilim bölücü konmalıdır.

HC-SR04, 40 kHz ultrasonik ses darbesi gönderip yankının dönme süresini ölçerek 2 cm ile yaklaşık 4 m arasındaki mesafeyi ölçen bir sensördür. Engelden kaçan robotlar, park sensörleri, su deposu seviye ölçümü ve sayaç projelerinde sıkça kullanılır. Bu rehberde çalışma prensibini, Arduino bağlantısını, örnek kodu, sıcaklığın ölçüme etkisini ve 3,3 V'luk ESP32 ile güvenli bağlantıyı anlatıyoruz.

Nasıl çalışır?

  1. TRIG pinine en az 10 µs'lik bir yüksek darbe verilir.
  2. Sensör sekiz adet 40 kHz darbe gönderir ve ECHO pinini yüksek seviyeye çeker.
  3. Yankı geri dönünce ECHO düşer. ECHO'nun yüksek kaldığı süre, sesin gidip gelme süresidir.

Mesafe = süre × ses hızı / 2. Ses hızı 20 °C'de yaklaşık 343 m/s'dir; yani 1 cm gidip gelme ≈ 58 µs sürer. Ses hızı sıcaklıkla değişir: v ≈ 331,3 + 0,606 × T m/s. 0 °C ile 40 °C arasında fark yaklaşık %7'dir; hassas ölçümlerde bir sıcaklık sensörüyle düzeltme yapılabilir.

Arduino ile kullanım

VCC → 5 V, GND → GND, TRIG → D9, ECHO → D10.

const int TRIG = 9, ECHO = 10;

void setup() {
  Serial.begin(9600);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
}

void loop() {
  digitalWrite(TRIG, LOW);  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH); delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  unsigned long us = pulseIn(ECHO, HIGH, 30000);  // en fazla 30 ms bekle (~5 m)
  if (us == 0) { Serial.println("Menzil dışı"); }
  else {
    float cm = us * 0.0343 / 2.0;                 // 20 °C için
    Serial.print(cm); Serial.println(" cm");
  }
  delay(100);                                     // ölçümler arası en az 60 ms
}

ESP32 ve 3,3 V kartlarla bağlantı

HC-SR04 5 V ile çalışır ve ECHO çıkışı 5 V seviyesindedir. ESP32 ve STM32 gibi 3,3 V mikrodenetleyicilerin pinleri 5 V'a dayanıklı değildir; ECHO hattına bir gerilim bölücü koyun: ECHO → 1 kΩ → GPIO, GPIO → 2 kΩ → GND. Bu bölücü 5 V'u yaklaşık 3,3 V'a indirir; değerleri gerilim bölücü hesaplama aracıyla doğrulayabilirsiniz. TRIG pinini 3,3 V ile sürmek çoğu modülde sorunsuz çalışır. 3,3 V ile doğrudan çalışan HC-SR04P / RCWL sürümleri de vardır.

Doğru ölçüm için

  • Yumuşak (kumaş, sünger) ve açılı yüzeyler sesi saçar; yankı dönmeyebilir.
  • Sensörün ışın açısı yaklaşık 15°'dir; dar bir alanda duvarlardan gelen yankılar ölçümü bozabilir.
  • Birden fazla sensör aynı anda çalışırsa birbirinin yankısını alır; sırayla tetikleyin.
  • Birkaç ölçümün ortancasını (median) almak rastgele hatalı okumaları temizler.

Bu yazıda kullanılan ürünler

Sıkça sorulan sorular

HC-SR04 sürekli 0 veya çok büyük değer gösteriyor, neden?

Yankı alınamadığında pulseIn zaman aşımına uğrar ve 0 döner. Hedefin 4 m'den uzak, çok küçük veya açılı olması, TRIG/ECHO pinlerinin ters bağlanması ya da yetersiz besleme en sık nedenlerdir.

Su deposu seviyesini ölçebilir miyim?

Evet; sensör kapağa, suya dik bakacak şekilde yerleştirilir. Yoğuşma ve nem sensöre zarar verebileceği için su geçirmez JSN-SR04T gibi modeller uzun süreli kullanım için daha uygundur.

En küçük ölçülebilir mesafe nedir?

Yaklaşık 2 cm. Daha yakındaki cisimlerde yankı, gönderim bitmeden geri döndüğü için ölçüm yapılamaz.

Direnç, kondansatör ve diğer komponentler için ürünlerimize göz atın.

Sensör Modülleri