HC-SR04, robotik ve hobi elektroniği projelerinde en yaygın kullanılan ultrasonik mesafe sensörüdür. Görevi çok basittir: karşısındaki bir nesne (engel) ile arasındaki mesafeyi, insan kulağının duyamayacağı ses dalgalarını (ultrasonik) kullanarak ölçmek.
Çalışma prensibi, yarasaların veya yunusların yönlerini bulmak için kullandığı Ekolokasyon (Echolocation) veya gemilerdeki SONAR sistemi ile birebir aynıdır. Bir ses dalgası gönderir, bu dalganın bir engele çarpıp geri dönmesini bekler ve aradaki süreyi hesaplayarak mesafeyi bulur.
HC-SR04 Nasıl Çalışır? (Trig ve Echo)
HC-SR04 sensörünün üzerinde iki adet metal silindir bulunur. Bunlar bir verici (Transmitter) ve bir alıcıdır (Receiver). Sensörün 4 adet pini vardır:
- VCC: 5V Güç girişi
- Trig (Trigger – Tetikleyici): Sensörün ses dalgasını göndermesi için tetik sinyalinin verildiği pin (Giriş).
- Echo (Echo – Yankı): Ses dalgası geri döndüğünde, mesafeyi hesaplamamız için bize sinyal üreten pin (Çıkış).
- GND: Toprak (Şase)
Ölçüm Adımları:
- Tetikleme (Trigger): Mikrokontrolcü (Arduino vb.),
Trigpinine 10 mikrosaniye (µs) süren kısa bir ‘YÜKSEK’ (HIGH) sinyal gönderir. - Ses Gönderme: Bu sinyali alan sensör, 40 kHz frekansında 8 çevrimlik bir ultrasonik ses dalgası patlamasını vericisinden (Transmitter) gönderir.
- Yankı Bekleme: Ses dalgasını gönderdiği anda, sensör
Echopinini ‘YÜKSEK’ (HIGH) seviyeye çeker. - Yankı Alma: Gönderilen ses dalgası bir engele çarpar ve geri yansır. Yansıyan dalga, sensörün alıcısına (Receiver) ulaştığı anda, sensör
Echopinini ‘DÜŞÜK’ (LOW) seviyeye çeker. - Süre Ölçümü: Bizim görevimiz,
Echopininin ne kadar süre ‘YÜKSEK’ (HIGH) kaldığını mikrosaniye cinsinden ölçmektir. Bu süre, sesin engele gidip geri dönmesi için geçen toplam uçuş süresidir.

Mesafe Nasıl Hesaplanır?
Fizik burada devreye giriyor. İhtiyacımız olan iki bilgi var:
- Sesin Hızı: Yaklaşık 340 m/s (saniyede 340 metre).
- Echo Süresi:
Echopininin YÜKSEK kaldığı süre (mikrosaniye cinsinden).
Hesaplamayı basitleştirelim:
- Ses hızı = 340 m/s=34000 cm/s
- Mikrosaniye cinsinden (saniyenin milyonda biri): 34000 cm/1.000.000 µs=0.034 cm/µs. (Yani ses, 1 mikrosaniyede 0.034 cm yol alır.)
Formülümüz: Mesafe = (Geçen Süre * Ses Hızı) / 2
Neden 2’ye Bölüyoruz? Çünkü ölçtüğümüz süre, sesin engele gidip geri dönmesi için geçen süredir. Bize sadece gidiş (tek yön) mesafesi lazım.
Arduino Kodu için Pratik Formül: Mesafe (cm) = (ölçülen_süre_mikrosaniye * 0.034) / 2
Bu formül, matematikte genellikle şu şekilde daha basit kullanılır: Mesafe (cm) = ölçülen_süre_mikrosaniye / 58.8 (Çünkü 1/0.034/2≈58.8)

#define trigPin 4
#define echoPin 2
void setup () {
Serial.begin(9600);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop () {
int sure,mesafe;
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
sure = pulseIn (echoPin,HIGH);
mesafe = sure/58;
if (mesafe >=200 && mesafe <=0){
Serial.print("Güvenli mesafe");
}
else {
Serial.print("Uzaklık: ");
Serial.print(mesafe);
Serial.println(" cm");
}
delay (500);
}
