HC-SR04 Nedir? Nasıl Çalışır? Arduino ile Ultrasonik Mesafe Sensörü Kullanımı
HC-SR04, ses dalgalarını kullanarak önündeki engellerle olan mesafeyi santimetre cinsinden ölçebilen, elektronik dünyasının en popüler ultrasonik mesafe sensörüdür. Robotik projelerde, engel tanıyan otonom araçlarda, park sensörü simülasyonlarında ve temassız sıvı seviye ölçüm sistemlerinde çok sık tercih edilir.
Arduino projelerinde fiziksel dünyadaki nesnelerin uzaklığını algılamak, otonom hareket eden sistemlerin temelini oluşturur. HC-SR04, hem ekonomik olması hem de 2 cm ile 400 cm arasında oldukça kararlı sonuçlar vermesi nedeniyle her kitleye hitap eder. Bu yazıda HC-SR04’ün ne olduğunu, çalışma mantığını, bacak yapısını ve Arduino ile mesafe ölçüm uygulamasını adım adım inceleyeceğiz.
HC-SR04 Nedir ve Nasıl Çalışır?
HC-SR04, yarasaların yön bulma tekniği ve sonar (ses navigasyonu) sistemleriyle benzer bir mantıkla çalışan modüler bir sensördür. Üzerinde göz gibi duran iki adet silindirik kapsül bulunur: bunlardan biri yüksek frekanslı ses dalgası fırlatır (Transmitter / Verici), diğeri ise engelden geri dönen dalgayı yakalar (Receiver / Alıcı).
Sensörün çalışma prensibi tamamen ses hızı denklemine dayanır ve süreç şu şekilde işler:
- Sensörün Trig pinine Arduino tarafından 10 mikrosaniyelik bir lojik HIGH (tetikleme) sinyali gönderilir.
- Sensör otomatik olarak insan kulağının duyamayacağı 40 kHz frekansında 8 adet ses dalgası üretir ve havaya fırlatır.
- Ses dalgaları havada ilerlerken bir engele çarpar ve yansıyarak geri döner.
- Geri dönen ses dalgalarını alan sensör, Echo pinini HIGH konumuna getirir. Sinyalin havada gidiş-dönüş süresi boyunca bu pin HIGH kalır.
- Arduino, Echo pinindeki bu süreyi mikrosaniye cinsinden ölçer ve ses hızını (340 m/s) hesaba katarak mesafeyi santimetreye çevirir.
Proje Uygulama Videosu
Bu sensörün mesafe sınırlarını, nesnelerin boyutuna göre değişen okuma kararlılığını ve seri monitör çıktılarını aşağıdaki uygulama videomuzdan detaylıca izleyebilirsiniz:
HC-SR04 Bacak Yapısı ve Görevleri
HC-SR04 üzerinde devre kurulumunu kolaylaştıran standart 4 adet bağlantı pini bulunur:
| Sensör Pini | Görevi | Arduino Bağlantısı |
|---|---|---|
| VCC | Sensörün besleme ucudur. Sabit 5V ile çalışır. | Arduino 5V Pinine |
| Trig (Trigger) | Ses dalgasının fırlatılmasını tetikleyen giriş ucudur. | Herhangi bir Dijital Pine (Örn: D9) |
| Echo | Yansıyan dalganın geri gelme süresini Arduino'ya aktaran çıkış ucudur. | Herhangi bir Dijital Pine (Örn: D8) |
| GND | Topraklama ucudur. | Arduino GND Pinine |
Arduino ile HC-SR04 Kullanımı İçin Gerekli Malzemeler
| Gerekli Malzeme | Ürün Linki |
|---|---|
| Arduino Uno | Arduino Uno R3 Klon + USB Kablo |
| HC-SR04 Mesafe Sensörü | HC-SR04 Ultrasonik Mesafe Sensörü |
| Breadboard | Breadboard |
| Jumper Kablo | Jumper Kablo |
Arduino HC-SR04 Kod Örneği
Aşağıdaki kod, herhangi bir harici kütüphaneye ihtiyaç duymadan Arduino'nun yerleşik pulseIn() fonksiyonu ile Echo pininin yüksek kalma süresini hesaplar ve mesafeyi santimetre olarak Seri Monitör'e yazdırır.
// Pin tanımlamaları
const int trigPin = 9;
const int echoPin = 8;
// Zaman ve mesafe değişkenleri
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT); // Trig pini çıkış yapıldı
pinMode(echoPin, INPUT); // Echo pini giriş yapıldı
Serial.begin(9600); // Seri haberleşme başlatıldı
}
void loop() {
// Sinyal öncesi Trig pinini temizle
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Ses dalgası üretmek için Trig pinini 10 mikrosaniye HIGH yap
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Geri dönen dalganın süresini mikrosaniye cinsinden oku
duration = pulseIn(echoPin, HIGH);
// Mesafeyi santimetre cinsinden hesapla (Ses hızı formülüyle)
// Süre * Ses Hızı (0.034 cm/us) / 2 (Gidiş-Dönüş Yolu)
distance = duration * 0.034 / 2;
// Hesaplanan mesafeyi Seri Monitör'e yazdır
Serial.print("Ölçülen Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
delay(200); // Ölçümler arası 200 ms bekleme
}
Arduino Engelden Kaçan Robot ve Radar Projeleri Kaynak Kodları
HC-SR04 sensörünün servo motor üzerine monte edilerek 180 derece tarama yapan radar yazılımları, Processing arayüz grafik kodları, motor sürücü (L298N) entegreli otonom araç şemaları ve kütüphanesiz NewPing optimizasyon taslaklarının tamamına projemizin GitHub deposundan erişebilirsiniz.
Mesafe Sensörü Kullanırken Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
- Ses Emici Yüzeyler: Sensörün tam önünde ses dalgalarını emebilecek pamuklu, peluş, süngerimsi veya çok eğimli yüzeyler olması durumunda dalgalar yansımayacağı için sensör anlamsız ya da sıfır değerleri döndürebilir.
- Gecikme Süresini Unutmak: Koda ekleyeceğiniz okuma döngüleri arasına en az 60-100 ms civarında bir bekleme (delay) süresi eklemelisiniz. Aksi takdirde sensörden fırlatılan eski ses dalgaları havadan kaybolmadan yeni dalgalar üretilir ve sinyaller birbirine karışır.
- Ölçüm Limitleri Dışı Alanlar: 2 cm'den yakın cisimlerde Echo pini doğru tetiklenemez. Aynı şekilde 400 cm'den uzak veya sensörün 15 derecelik konik görme açısının dışındaki cisimlerde de hatalı veri okunur.
Robomer’de Bulabileceğiniz Mesafe Sensörü Çeşitleri
HC-SR04 Ultrasonik Mesafe Sensörü
5V ile çalışan, robotik projelerin en klasik, kararlı ve ekonomik 4 pinli ultrasonik mesafe sensörü modeli.
Ürünü İncele
HC-SR04 Ultrasonik Mesafe Sensörü Tutucu
Mesafe sensörünü çizgi izleyen veya engel tanıyan robot gövdelerine ve şasilerine şık, sağlam bir şekilde sabitlemeyi sağlayan akrilik aparat.
Ürünü İnceleSonuç
HC-SR04 Ultrasonik Mesafe Sensörü, otonom robotların dış dünyadaki engelleri anlamlandırmasında en çok başvurulan göz görevidir. Devre kurulumu ve kod mimarisi oldukça basit olduğu için algoritma becerilerinizi geliştirmek adına harika bir temel yapı taşıdır. İhtiyacınız olan tüm sensör modüllerine ve robotik şasi parçalarına Robomer kalitesiyle hızlıca ulaşabilirsiniz.
Otomasyon ve Akıllı Ev Projelerinizi Kurun
Geliştirme kartları, LCD / OLED ekranlar, röle modülleri ve projenizin ihtiyacı olan tüm kablolama elemanları Robomer güvencesiyle kapınızda.
Robomer Sensör Kategorisini İncele