Parçalar · 3 dk okuma

HC-SR04 Mesafe Sensörü: Arduino ile Ultrasonik Mesafe Ölçme

HC-SR04 ultrasonik mesafe sensörü nasıl çalışır, Arduino'ya nasıl bağlanır? TRIG ve ECHO pinleri, mesafe formülü, ESP32 ve Pico bağlantısı, doğruluğu artırma ipuçları.

HC-SR04, önündeki nesneye olan uzaklığı ses dalgasıyla ölçen ucuz ve çok yaygın bir sensördür. Yarasaların yön bulma yöntemiyle çalışır: kulağın duyamayacağı yüksek frekansta bir ses gönderir ve yankının geri gelme süresini ölçer. Park sensörü, engelden kaçan robot, su deposu seviye ölçer ve boy ölçer projelerinin temelidir.

HC-SR04
HC-SR04: biri verici, biri alıcı iki ultrasonik kapsül ve 4 pin (VCC, TRIG, ECHO, GND).

HC-SR04 nasıl çalışır?

  1. Arduino TRIG pinine 10 mikrosaniyelik bir darbe gönderir.
  2. Sensör 40 kHz frekansta 8 ses darbesi yayar.
  3. Ses nesneye çarpıp geri döner; bu sırada ECHO pini HIGH kalır.
  4. Arduino ECHO pininin HIGH kaldığı süreyi ölçer ve mesafeyi hesaplar.

Ses havada yaklaşık 343 m/s hızla ilerler, yani santimetreyi yaklaşık 29 mikrosaniyede alır. Ölçülen süre gidiş ve dönüşü kapsadığı için ikiye bölünür: mesafe (cm) = süre (µs) × 0,0343 / 2, kısaca süre / 58.

Teknik özellikler

ÖzellikDeğer
Besleme5 V, yaklaşık 15 mA
Ölçüm aralığı2–400 cm
HassasiyetYaklaşık 3 mm
Ölçüm açısıYaklaşık 15°
PinlerVCC, TRIG, ECHO, GND

Arduino ile mesafe ölçme

VCC'yi 5V'a, GND'yi GND'ye, TRIG'i 9. pine, ECHO'yu 10. pine bağla. Aşağıdaki kod mesafeyi seri monitöre yazar; nesne yoksa ya da çok uzaktaysa bunu ayrıca bildirir.

const int TRIG_PIN = 9;    // tetik / trigger
const int ECHO_PIN = 10;   // yankı / echo

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

void loop() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);      // 10 µs darbe / 10 µs pulse
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  long duration = pulseIn(ECHO_PIN, HIGH, 30000); // en fazla 30 ms bekle / wait max 30 ms
  if (duration == 0) {
    Serial.println("Menzil dışı / out of range");
  } else {
    float cm = duration * 0.0343 / 2;   // gidiş-dönüş / round trip
    Serial.print(cm);
    Serial.println(" cm");
  }
  delay(100);                          // ölçümler arası / between readings
}
pulseIn'e verilen 30.000 µs zaman aşımı yaklaşık 5 metreye karşılık gelir. Zaman aşımı vermezsen nesne olmadığında kod 1 saniyeye kadar bekleyebilir.

ESP32 ve Raspberry Pi Pico ile kullanım

HC-SR04'ün ECHO pini 5 V çıkış verir; ESP32 ve Pico'nun pinleri 3,3 V'tur. ECHO'yu doğrudan bağlama: 1 kΩ ve 2 kΩ dirençlerle bir gerilim bölücü kur ya da 3,3 V ile çalışan HC-SR04P sürümünü kullan.

Doğru ölçüm için ipuçları

  • Yumuşak ve eğik yüzeyler: Kumaş, sünger ve açılı yüzeyler sesi iyi yansıtmaz; ölçüm atlayabilir.
  • Ortalama al: 3–5 ölçümün ortancasını kullanmak ani sıçramaları temizler.
  • Sıcaklık etkisi: Ses hızı her 1 °C'de yaklaşık 0,6 m/s değişir; hassas işlerde bir sıcaklık sensörüyle düzeltme yapılır.
  • Birden fazla sensör: Aynı anda tetiklenen sensörler birbirinin yankısını duyar; sensörleri sırayla ölçtür.
  • Ölçüm aralığı: İki ölçüm arasında en az 60 ms bırak ki önceki yankı sönsün.

Sensörü bir buzzerla birleştirip park sensörü yapmak için Buzzer Nedir? yazısına, diğer sensörleri tanımak için Arduino Sensörleri Rehberi'ne göz at.

Sıkça sorulan sorular

HC-SR04 en fazla kaç metre ölçer?

Teorik olarak 4 metreye kadar ölçer. Pratikte düz ve sert bir yüzeyde 2–3 metreye kadar güvenilir sonuç alınır.

HC-SR04 neden hep 0 ya da çok büyük değer gösteriyor?

Bağlantıda TRIG ve ECHO yer değiştirmiş olabilir, nesne menzil dışında olabilir ya da sensör sesi yansıtmayan bir yüzeye bakıyor olabilir. Kabloları kontrol et ve pulseIn için zaman aşımı kullan.

HC-SR04 su seviyesini ölçebilir mi?

Evet, depo kapağına aşağı bakacak şekilde takılıp su yüzeyine olan mesafe ölçülebilir. Nemli ortamda sensörün korunması gerekir; suya dayanıklı JSN-SR04T daha uygun bir seçenektir.

Arduino'da başka hangi mesafe sensörleri var?

Kısa mesafe ve çizgi algılama için kızılötesi TCRT5000, milimetre hassasiyeti için lazer tabanlı VL53L0X kullanılır. HC-SR04 ise fiyat ve menzil dengesiyle en yaygın olanıdır.

Tüm projeleri gör
HC-SR04 Mesafe Ölçme (Serial Ekran)
#27Başlangıç

HC-SR04 Mesafe Ölçme (Serial Ekran)

HC-SR04 ultrasonik sensör ile mesafe ölçüp sonucu Serial Monitor'da cm cinsinden gösteren proje. Ses dalgası ile mesafe hesaplama prensibini öğretir.

4.6(44)
64
HC-SR04 ile Park Sensörü
#28Orta
Premium

HC-SR04 ile Park Sensörü

HC-SR04 sensörü ile nesne yaklaştıkça buzzer bip hızını artıran ve LED ile uyaran park sensörü projesi. Mesafeye orantılı geri bildirim mantığını öğretir.

4.8(64)
83
LCD Ekran Kullanarak Mesafe Ölçme
#31İleri
Premium

LCD Ekran Kullanarak Mesafe Ölçme

HC-SR04 mesafe sensöründen okunan değeri 2x16 LCD ekranda gerçek zamanlı olarak cm cinsinden gösteren proje. Sensör verisi ile LCD görüntülemeyi birleştirir.

4.5(44)
57
Boy Ölçüm Projesi
#33Orta
Premium

Boy Ölçüm Projesi

HC-SR04 sensörü ve I2C LCD ekran ile kalibrasyon yaparak boy ölçümü gerçekleştiren proje. İki buton ile kalibrasyon ve ölçüm adımlarını yöneterek pratik bir uygulama sunar.

4.5(25)
33
Engelden Kaçan Robot
#81İleri
Premium

Engelden Kaçan Robot

Kendi yolunu bulan akıllı bir araç yapmaya ne dersin? Engelden Kaçan Robot, önündeki ultrasonik sensör sayesinde çevresini sürekli tarar. Bir engelle karşılaştığında durur, servo motoruyla sağına ve s

5.0(38)
49
ESP32 HC-SR04 Ultrasonik Mesafe Ölçer
#116Orta
Premium

ESP32 HC-SR04 Ultrasonik Mesafe Ölçer

HC-SR04 ultrasonik sensör, gönderdiği ses dalgasının nesneye çarpıp geri dönme süresini (Time of Flight) ölçerek mesafe hesaplar. Bu projede ESP32 ile TRIG pinine 10 mikrosaniyelik darbe gönderip, ECHO pininden gelen yankı süresini `pulseIn()` ile okuyacağız. Hesaplanan mesafeyi cm cinsinden Serial Monitor'e yazdıracağız. HC-SR04 5V çalıştığı için ECHO pinine **gerilim bölücü** zorunludur — aksi halde ESP32'nin 3.3V GPIO'su zarar görür.

4.9(27)
43
ESP32 Namaz Rekat Sayacı (HC-SR04 + SSD1306 OLED + 2 Buton)
#136İleri
Premium

ESP32 Namaz Rekat Sayacı (HC-SR04 + SSD1306 OLED + 2 Buton)

Namaz kılarken kaç rekat olduğunuzu bazen unutuyor musunuz? Bu proje, seccadenin yanına konulan ve elinizi yaklaştırdığınızda secdeleri sayan bir rekat sayacı yapıyor. HC-SR04 ultrasonik mesafe sensörü el yaklaşımını algılar, SSD1306 OLED ekran rekat sayısını gösterir, iki buton ile 2/3/4 rekat seçimi ve sıfırlama yapabilirsiniz. Akıllı state machine ile yanlış tetiklenmeleri engelleyen 2.5 saniye debounce ve "el ayrılma" algoritması var — aynı secde iki kez sayılmaz. Bu proje BlueGrays topluluğ

4.8(11)
14
ESP32 Park Sensörü (HC-SR04 + 5 LED Bar + Buzzer + OLED)
#142İleri
Premium

ESP32 Park Sensörü (HC-SR04 + 5 LED Bar + Buzzer + OLED)

Otomobil park sensörünün ESP32 versiyonu! HC-SR04 ultrasonik sensör ile önündeki nesneye olan mesafeyi ölçüyoruz. Mesafe azaldıkça 5 LED'lik bar dolar (yeşil → sarı → kırmızı) ve buzzer bip aralığı kısalır. Çok yakınlaşınca (10 cm altında) sürekli alarm çalar ve tüm LED'ler yanar. SSD1306 OLED ekranda büyük fontla anlık cm değeri, durum metni (SAKIN / DIKKAT / YAKIN / DUR! / TEHLIKE) ve LED bar simülasyonu gösterilir. Klasik ve öğretici bir proje — HC-SR04 pulseIn, digital multi-output, buzzer P

0.0(0)

HC-SR04'ün ses dalgasıyla mesafeyi nasıl ölçtüğünü, Arduino'ya bağlanmasını, mesafe formülünü ve ölçümleri kararlı hale getirmeyi öğren.

HC-SR04 Mesafe Sensörü: Arduino ile Ultrasonik Mesafe Ölçme | BlueGrays