
HC-SR04 ultrasonik sensör ile mesafe ölçüp sonucu Serial Monitor'da cm cinsinden gösteren proje. Ses dalgası ile mesafe hesaplama prensibini öğretir.
Video
Devre Şeması

Kaynak Kodu
Arduino (C++)
1int echoPin = 6;
2int trigPin = 7;
3int maxDistance = 100;
4int minDistance = 3;
5
6void setup() {
7 pinMode(trigPin, OUTPUT);
8 pinMode(echoPin, INPUT);
9 Serial.begin(9600);
10}
11
12void loop() {
13 digitalWrite(trigPin, HIGH);
14 delayMicroseconds(10);
15 digitalWrite(trigPin, LOW);
16
17 unsigned long duration = pulseIn(echoPin, HIGH);
18 double totalPath = (double)duration * 0.034;
19 int distance = totalPath / 2;
20
21 if (distance > minDistance && distance < maxDistance) {
22 Serial.print("Distance: ");
23 Serial.print(distance);
24 Serial.println("cm");
25 }
26
27 delay(500);
28}Sıkça Sorulanlar
HC-SR04 mesafeyi nasıl ölçer?▾
Sensör 40 kHz'lik ses dalgası gönderir ve yankının dönme süresini ölçer. Ses havada yaklaşık 343 m/s hızla gider; mesafe = süre × 0,0343 / 2 formülüyle santimetreye çevrilir (2'ye bölme gidiş-dönüş içindir).
Ölçebileceği en kısa ve en uzun mesafe nedir?▾
Pratikte yaklaşık 2 cm ile 400 cm arası ölçer. 2 cm'den yakın ve çok uzak ya da ses yutan (kumaş, sünger) yüzeylerde ölçüm hatalı veya 0 çıkabilir.
Bazen 0 ya da çok büyük değerler okunuyor, neden?▾
Yankı dönmediğinde pulseIn zaman aşımına uğrar. Sensörün düz ve sert bir yüzeye baktığından emin ol, ölçümler arasında en az 60 ms bekle ve hatalı okumaları kodda filtrele.
ESP32 ile kullanabilir miyim?▾
HC-SR04 5 V ile çalışır ve ECHO pini 5 V çıkış verir. ESP32 3,3 V mantıkla çalıştığı için ECHO hattına gerilim bölücü (ör. 1 kΩ + 2 kΩ) koymalı ya da 3,3 V uyumlu HC-SR04P modeli kullanmalısın.
