HC-SR04 Ultrasonik Mesafe Sensörü
2 cm ile 400 cm arasında temassız ultrasonik ses dalgalarıyla mesafe ölçen, engelden kaçan robotların vazgeçilmez sensörüdür.
Önemli Güvenlik ve Teknik Sınırlama Bilgisi
Ses dalgaları yumuşak kumaş, sünger veya kürk kaplı yüzeylerden zayıf yansıyabilir. Su geçirmez değildir; dış ortam için JSN-SR04T tercih edilmelidir.
Teknik Özellikler ve Elektriksel Parametreler
Pin Bağlantıları ve Görevleri (Pinout)
| Pin # | Pin Adı | Sinyal Türü | Görev & Açıklama |
|---|---|---|---|
| 1 | VCC | Güç Girişi | +5V DC regüle güç hattı |
| 2 | TRIG | Dijital Giriş | Tetikleme pini (Mikrodenetleyiciden 10 µs HIGH darbesi alır) |
| 3 | ECHO | Dijital Çıkış | Yankı pini (Sesin gidiş-dönüş süresi boyunca HIGH kalır) |
| 4 | GND | Toprak (0V) | Ortak toprak bağlantı pini |
Geliştirme Kartı Uyumluluk Durumu
Doğrudan bağlantı ve yerleşik 5V desteği.
Sensör 5V çıkış veriyorsa ESP32 GPIO pini için 1k/2k voltaj bölücü direnç gereklidir.
MicroPython veya C/C++ SDK ile desteklenir.
MakeCode blokları veya MicroPython ile uyumlu.
5V tolerant GPIO pinleri doğrudan bağlanabilir.
Örnek Kaynak Kod Kütüphanesi
Kütüphanesiz Hassas Mesafe Ölçümü Kodu
Harici kütüphane gerektirmez (Standart SDK)// RobotKodla.com - HC-SR04 Ultrasonik Mesafe Ölçüm Kodu
const int trigPin = 9;
const int echoPin = 10;
long duration;
float distanceCm;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.println("HC-SR04 Mesafe Sensörü Başlatıldı...");
}
void loop() {
// Temiz bir sinyal için TRIG pinini 2 mikrosaniye LOW yap
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// 10 mikrosaniyelik tetikleme darbesi gönder
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// ECHO pininden yankı süresini mikrosaniye cinsinden oku
duration = pulseIn(echoPin, HIGH, 30000); // 30ms timeout
// Ses hızı: 0.0343 cm/us -> Gidiş-Dönüş / 2
distanceCm = (duration * 0.0343) / 2;
if (duration == 0 || distanceCm > 400 || distanceCm < 2) {
Serial.println("Menzil Dışı / Engel Algılanamadı");
} else {
Serial.print("Ölçülen Mesafe: ");
Serial.print(distanceCm, 1);
Serial.println(" cm");
}
delay(100); // Ölçümler arasında 100ms bekle
} HC-SR04 Mesafe Sensörü Başlatıldı... Ölçülen Mesafe: 28.4 cm Ölçülen Mesafe: 28.5 cm Ölçülen Mesafe: 14.2 cm
Çalışma Mantığı ve Fiziksel İlkeler
HC-SR04 Çalışma Prensibi
HC-SR04 ultrasonik sensörü, yarasaların yön bulma prensibine (ekolokasyon) dayalı olarak çalışır. Modül üzerinde iki adet metal silindirik transdüser (dönüştürücü) bulunur:
Mesafe Hesaplama Formülü
Sesin 20°C oda sıcaklığındaki havadaki yayılma hızı yaklaşık 343 m/s (0.0343 cm/µs) dir. Ses sinyali hedefe gidip geri döndüğü için geçen sürenin yarısı alınır:
$$\text{Mesafe (cm)} = \frac{\text{Süre (mikrosaniye)} \times 0.0343}{2}$$
ESP32 ve 3.3V Dikkat Edilmesi Gerekenler
HC-SR04 standart olarak 5V besleme ile çalışır ve ECHO pininden 5V lojik sinyal üretir. ESP32 ve Raspberry Pi Pico GPIO pinleri 3.3V toleranslıdır. 5V sinyal doğrudan bağlanırsa mikrodenetleyici pinini yakabilir. Bu nedenle ECHO pini ile ESP32 arasına 1 kΩ ve 2 kΩ voltaj bölücü direnç bağlanmalıdır.
Artıları ve Sınırlamaları
Sık Karşılaşılan Sorunlar ve Çözümleri
Alternatif ve Benzer Sensörler
VL53L1X Time-of-Flight (ToF) 4 Metre Lazer Mesafe Sensörü
STMicroelectronics'in patentli FlightSense teknolojisiyle 4 metreye kadar milimetrik doğrulukta lazer mesafe ölçümü yapan I2C sensörüdür.
TCRT5000TCRT5000 Kızılötesi Çizgi ve Engel Algılama Sensörü
Çizgi izleyen robotların siyah/beyaz zemin ayrımında ve masa kenarından düşmeyi önleyen robotlarda kullanılan optik yansıma sensörü.
QTR-8APololu QTR-8A 8'li Yansıma Çizgi Sensörü Dizisi
Hızlı çizgi izleyen robotlarda 8 adet optik kızılötesi sensör çiftiyle beyaz/siyah çizgi konumunu analog voltaj olarak sunan profesyonel sensör barıdır.