Arduino ile Mesafe Sensörü Kullanımı: HC-SR04 Rehberi
Robotik projelerinde bir robotun "gözleri" olmadan çevresini algılaması ve otonom hareket etmesi imkansızdır. Bir robotun önündeki engelleri fark etmesini, duvara olan uzaklığını ölçmesini veya bir park sensörü gibi sesli uyarı vermesini sağlayan en popüler ve ekonomik donanım **HC-SR04 Ultrasonik Mesafe Sensörü**dür.
Peki HC-SR04 sensörü nasıl çalışır? İki küçük hoparlöre benzeyen gözleri ne işe yarar? Ses hızı formülü koda nasıl dökülür ve Arduino bağlantıları nasıl yapılır? Bu kapsamlı rehberde, HC-SR04 ultrasonik sensörünü sıfırdan uzmanlık seviyesine kadar inceliyoruz.
---
1. HC-SR04 Sensörünün Çalışma Prensibi: Yarasaların Doğadaki Radarı
HC-SR04 sensörünün çalışma mantığı, yarasaların doğada yön bulmak için kullandığı **"Ekolokasyon" (Yankı ile Konum Belirleme)** prensibine dayanır.
Sensörün ön yüzünde iki adet metal silindir transdüser bulunur:
1. **Trigger (Tetikleyici - Verici):** Havaya insan kulağının duyamayacağı **40.000 Hz (40 kHz)** frekansında 8 darbeli ultrasonik bir ses patlaması gönderir.
2. **Echo (Yankı - Alıcı):** Gönderilen ses dalgası havadaki bir cisme çarpıp geri döndüğünde bu yankıyı yakalar.
Mesafe Matematiksel Olarak Nasıl Hesaplanır?
---
2. HC-SR04 Teknik Özellikler Tablosu
| Özellik | Değer |
|---|---|
| **Çalışma Gerilimi** | 5V DC |
| **Çektiği Akım** | ~15 mA |
| **Çalışma Frekansı** | 40 kHz |
| **Ölçüm Mesafesi Aralığı** | 2 cm ile 400 cm (4 Metre) arası |
| **Ölçüm Hassasiyeti** | Yaklaşık 0.3 cm (3 mm) |
| **Ölçüm Açısı** | Yaklaşık 15 Derece Konik Alan |
| **Tetikleme Giriş Sinyali** | 10 mikrosaniyelik TTL HIGH darbesi |
---
3. Devre Şeması ve Pin Bağlantı Tablosu
| Sensör Pini | Arduino Pini | Kablo Rengi (Öneri) |
|---|---|---|
| **VCC** | 5V Pini | Kırmızı |
| **Trig** | Dijital Pin 9 | Sarı |
| **Echo** | Dijital Pin 8 | Yeşil |
| **GND** | GND Pini | Siyah |
---
4. Tam ve Çalışan Arduino C++ Kodları
/*
* RobotKodla.com - Sensör Kılavuzları
* Proje: HC-SR04 ile Mesafe Ölçümü
*/
const int trigPin = 9;
const int echoPin = 8;
long sure;
int mesafeCm;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
Serial.println("HC-SR04 Mesafe Sensörü Başlatıldı...");
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
mesafeCm = sure * 0.034 / 2;
if (mesafeCm > 400 || mesafeCm < 2) {
Serial.println("Menzil Disi!");
} else {
Serial.print("Olculen Mesafe: ");
Serial.print(mesafeCm);
Serial.println(" cm");
}
delay(200);
}
---
5. HC-SR04 İçin NewPing Kütüphanesi ve Filtreleme Algoritmaları
Standart `pulseIn()` fonksiyonu, sensörden yankı gelmediğinde işlemciyi 1 saniyeye kadar bekleterek kod akışını yavaşlatabilir. Profesyonel robotik projelerinde bunun önüne geçmek için **NewPing** kütüphanesi kullanılır:
---
6. HC-SR04 Kullanırken Dikkat Edilmesi Gereken Sınırlar
---
7. Bu Sensörle Yapılabilecek 5 Popüler Proje
1. **Sesli Araç Park Sensörü:** Mesafeye göre aralıkları hızlanan buzzer ekleyin.
2. **Engelden Kaçan Otonom Robot:** Önündeki engel 20 cm altına indiğinde durup geri giden robot araba yapın.
3. **Temassız Akıllı Çöp Kutusu:** El yaklaştığında kapağı açan servo motorlu hijyen kovası.
4. **Dijital LCD Metre:** Ölçülen mesafeyi 16x2 ekranda cetvel gibi gösteren el tipi ölçüm cihazı.
5. **Sosyal Mesafe Uyarı Cihazı:** 1.5 metreden fazla yaklaşıldığında kırmızı ışık yakan taşınabilir cihaz.
---
---
8. HC-SR04 Sensöründe NewPing Kütüphanesi ve Filtreleme Teknikleri
Standart `pulseIn()` fonksiyonu, ses dalgası bir engele çarpmayıp geri dönmediğinde işlemciyi 1 saniye boyunca bekletebilir. Bu durum özellikle hızlı hareket eden robot arabalarda gecikmelere ve kazalara yol açar.
Profesyonel projelerde bu sorunu aşmak için **NewPing** kütüphanesi tercih edilir:
---
9. Ultrasonik Sensör ile İlgili Sıkça Sorulan Sorular
Sensör su geçirmez midir, açık alanda yağmurda çalışır mı?
Standart mavi HC-SR04 sensörü su geçirmez değildir; transdüserlerin içine su girerse kısa devre yapar. Açık hava, araba geri görüş veya su deposu projelerinde su geçirmez proba sahip **JSN-SR04T** ultrasonik sensör modeli kullanılmalıdır.
İki ultrasonik sensör yan yana kullanılırsa birbirini bozar mı?
Eğer iki sensör aynı anda aynı frekansta (40 kHz) ses fırlatırsa birinin sesi diğerine çarparak yanlış ölçüm yapabilir. Çözüm, sensörleri aynı anda değil aralarında 30-50 milisaniye gecikme koyarak sırayla tetiklemektir.
---
---
10. Kapsamlı Sıkça Sorulan Sorular (SSS)
HC-SR04 sensörü cam veya şeffaf nesneleri algılayabilir mi?
Evet! Ultrasonik sensörler ışık değil ses dalgası kullandığı için kızılötesi veya lazer sensörlerin aksine şeffaf camı, şeffaf plastik şişeleri ve pleksi yüzeyleri kusursuz şekilde algılarlar. Bu özellikleri sayesinde şeffaf engelleri fark etmede en güvenilir sensördür.
Sensör neden bazen sürekli 0 veya 1100 cm değeri üretir?
Bu durum iki nedenden kaynaklanır: Birincisi Trig ve Echo kablolarının breadboard üzerinde yer değiştirmesidir. İkincisi ise ses dalgasının hiçbir yankı almadan uzayda kaybolması (zaman aşımı) durumunda `pulseIn()` fonksiyonunun 0 döndürmesidir.
Sensör ile mesafe ölçümünde sıcaklık kalibrasyonu nasıl yapılır?
Ses hızı formülü `V = 331.3 + (0.606 * T)` şeklindedir (T ortam sıcaklığıdır). Devrenize bir DHT11 sıcaklık sensörü ekleyerek anlık sıcaklığa göre ses hızını dinamik güncellerseniz milimetrik doğrulukta bir hassasiyet elde edebilirsiniz.
---
Sonuç
HC-SR04, robotik dünyasının en ekonomik ve vazgeçilmez duyu organıdır. Bu sensörle yapacağınız uygulamalı projelerin devre şemaları ve kodları için sitemizin [Projeler](/projeler) sekmesini ziyaret edebilirsiniz!