Sizde kendi mesafe sensörünüzü yapmak isterseniz işte gerekenler, şema ve kodlar.
- Arduino Uno R3
- HC-SR04 Mesafe Sensörü
- Aktif Buzzer

ve kodlar (sadece Arduino Uno R3 içindir, mesafeleri değiştirebilirsiniz)
// HC-SR04 Sensör Pin Tanımlamaları
const int trigPin = 2;
const int echoPin = 3;
// Aktif Buzzer Pin Tanımlaması
const int buzzerPin = 8;
// Mesafe Hesaplaması için Değişkenler
long duration;
int distanceCm;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
Serial.println("Park Sensoru Modu Aktif.");
}
void loop() {
// 1. Ölçüm Başlatma
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 2. Süreyi Ölçme ve Mesafeyi Hesaplama
duration = pulseIn(echoPin, HIGH);
distanceCm = duration / 58; // cm cinsinden mesafe
// Seri Monitöre mesafeyi yazdır
Serial.print("Mesafe: ");
Serial.print(distanceCm);
Serial.println(" cm");
// 3. Buzzer Kontrolü (Kademeli Bipleme)
if (distanceCm > 30 || distanceCm <= 0) {
// 30 cm'den uzak veya hatalı okuma (0 cm)
digitalWrite(buzzerPin, LOW); // Buzzer KAPALI
} else if (distanceCm > 15 && distanceCm <= 30) {
// 30 - 15 cm arası: Hafif bip bip (Yavaş)
bipleme(150); // 150 ms bekleme (yavaş bip)
} else if (distanceCm > 10 && distanceCm <= 15) {
// 15 - 10 cm arası: Hızlı bip bip (Orta)
bipleme(75); // 75 ms bekleme (orta hızda bip)
} else if (distanceCm > 0 && distanceCm <= 10) {
// 10 - 0 cm arası: Çok hızlı bip bip (Çok Hızlı)
bipleme(30); // 30 ms bekleme (çok hızlı bip)
}
// Bir sonraki ölçümden önce genel bekleme
// Bipleme süresinin kontrolü `bipleme` fonksiyonu içinde yapıldığı için burada daha kısa bir bekleme yeterli.
delay(10);
}
/**
* Buzzer'ı kısa bir süre çalıştırıp sonra verilen süre kadar bekler.
* Bu, bip sesi efekti oluşturur.
* @param beklemeSuresi: Bip sesinden sonraki bekleme süresi (ms). Bu süre, bip hızını belirler.
*/
void bipleme(int beklemeSuresi) {
// Buzzer'ı kısa bir an için aç
digitalWrite(buzzerPin, HIGH);
delay(5); // Buzzer AÇIK kalma süresi (bip'in uzunluğu, sabit tutulabilir)
// Buzzer'ı kapat
digitalWrite(buzzerPin, LOW);
// Belirtilen süre kadar bekle (Bu süre, bipleme hızını belirler)
delay(beklemeSuresi);
}
