HC-SR04 Ultrasonik Mesafe Sensörü: Nedir, Nasıl Çalışır?

HC-SR04 Nedir?
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)
Arduino ile Kullanımı
Bağlantı:
- VCC -> Arduino 5V
- GND -> Arduino GND
- Trig -> Arduino Dijital Pin (örn: 9)
- Echo -> Arduino Dijital Pin (örn: 10)
Örnek Kod:
//muratdonmez.com.tr
#define trigPin 9
#define echoPin 10
long duration;
float distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
// 1. Trig sinyalini gönder
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // 10µs tetikleme
digitalWrite(trigPin, LOW);
// 2. Echo pininin YÜKSEK kalma süresini ölç
// pulseIn() fonksiyonu bu işi otomatik yapar
duration = pulseIn(echoPin, HIGH);
// 3. Mesafeyi hesapla
distance = duration / 58.8; // Veya (duration * 0.034) / 2
// 4. Ekrana yazdır
Serial.print("Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
delay(100); // Yeni ölçüm için kısa bir bekleme
}
Kullanım Alanları ve Limitleri
- Kullanım Alanları:
- Engel algılama (Park sensörleri)
- Engel’den kaçan robotlar
- Sıvı seviyesi ölçümü (Depodaki suya olan mesafeyi ölçerek)
- Otomatik kapılar
- Güvenlik sistemleri
- Dezavantajları:
- Algılama Açısı: Yaklaşık 15 derecelik bir koni içinde algılama yapar. Lazer sensörler gibi noktasal değildir.
- Yumuşak Yüzeyler: Kumaş, sünger, kar gibi yumuşak ve sesi emen yüzeyleri algılamakta zorlanır.
- Eğimli Yüzeyler: Ses dalgası çok eğimli bir yüzeye çarparsa, yankı farklı bir yöne seker ve sensöre geri dönmez, bu da ölçüm hatasına neden olur.
ESP32 (Arduino IDE) Örnek Kodu
Gerekli Kütüphane: “NewPing by Tim Eckel”
//muratdonmez.com.tr
#include <NewPing.h>
#define TRIG_PIN 5
#define ECHO_PIN 18 // Voltaj bölücü ile bağlı!
#define MAX_DISTANCE 400 // Maksimum ölçüm mesafesi (cm)
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(115200);
Serial.println("HC-SR04 Mesafe Sensörü Testi");
Serial.println("UYARI: Echo pini için voltaj bölücü kullandığınızdan emin olun!");
}
void loop() {
delay(50); // Okumalar arası bekle
int distance = sonar.ping_cm();
Serial.print("Mesafe: ");
if (distance == 0) {
Serial.println("Menzil dışında.");
} else {
Serial.print(distance);
Serial.println(" cm");
}
}
Eğer akıllı ev, IOT projeleri ile ilgili sorularınız veya yapmak istediğiniz bir projeniz varsa, yedek alma ve yedekten dönme planınız veya felaket kurtarma planınız yoksa, işletmeniz için nasıl bir Sunucu, Bilgisayar veya Kesintisiz Güç Kaynağı seçmeniz gerektiğini bilmiyorsanız danışmanlık hizmetlerimden faydalanmak isterseniz bana WhatsApp üzerinden ulaşabilirsiniz.
İlgili Yazılar
- DS18B20 (Dijital Sıcaklık Sensörü)
- DHT11 / DHT22: Doğru Sıcaklık ve Nem Sensörünü Seçme Rehberi
- BME280: 3’ü 1 Arada Yüksek Hassasiyetli Ortam Sensörü
- BME680: Evinizdeki Havayı Kapsamlı Analiz Edin
- BMP388 ve BMP180: İrtifa ve Basınç Sensör Rehberi
- BH1750 Dijital Işık Sensörü: Lüx (Lux) Ölçer Rehberi
- TDS Sensörü: Su Kalitesi ve PPM Ölçer Rehberi
- Anemometre: Rüzgar Hızı Sensörü Nedir, Nasıl Çalışır?
Sık Sorulan Sorular
- HC-SR04 ultrasonik sensör nedir?
HC-SR04, bir engele olan mesafeyi ölçmek için insan kulağının duyamadığı ses dalgalarını (ultrasonik) kullanan bir elektronik sensördür. - Trig (Tetikleyici) ve Echo (Yankı) pinleri ne işe yarar?
Trigpini, sensöre “ses dalgasını şimdi gönder” komutunu vermek için kullanılır (tetikleyici).Echopini ise, sesin gidip geri dönmesi süresince ‘YÜKSEK’ (HIGH) sinyal üreten, bizim süreyi ölçtüğümüz pindir (yankı). - Mesafe formülünde neden süre 2’ye bölünür?
Çünkü sensörünEchopini ile ölçtüğü süre, sesin hem engele gidişi hem de engelden dönüşü için geçen toplam süredir. Bize sadece tek yön (gidiş) mesafesi gerektiği için bu toplam süreyi 2’ye böleriz. - HC-SR04 her engeli algılayabilir mi?
Hayır. Ses dalgalarını emen yumuşak yüzeyleri (sünger, yün, kumaş) veya sesi farklı bir yöne yansıtan çok eğimli/keskin yüzeyleri algılamakta zorlanabilir. - HC-SR04 sensörünün algılama mesafesi nedir?
Sensörün etkili algılama aralığı genellikle 2 santimetre ile 400 santimetre (4 metre) arasıdır.




Henüz yorum yapılmamış.