Read in English · Leer en español
Proje ne yapıyor?
Arabalardaki park sensörlerinin küçük bir benzerini Arduino ile yapıyoruz. Ultrasonik sensör önündeki cismin uzaklığını ölçer. Cisim yaklaştıkça LED’ler yeşilden sarıya, sonra kırmızıya döner. Buzzer da gittikçe hızlanarak öter. Cisim çok yaklaştığında buzzer sürekli öter.
- Yaş grubu: 10 yaş ve üzeri (ortaokul ve lise)
- Seviye: Orta
- Süre: Yaklaşık 45–60 dakika
- Bu projede öğrenecekleriniz: Ultrasonik sensörle mesafe ölçmek,
if–elseile karar vermek, buzzer ile ses çıkarmak
Malzeme listesi
| Malzeme | Adet |
|---|---|
| Arduino Uno (veya muadili) | 1 |
| HC-SR04 ultrasonik mesafe sensörü | 1 |
| Pasif buzzer | 1 |
| LED (yeşil, sarı, kırmızı) | 3 |
| 220 Ω direnç | 3 |
| Breadboard | 1 |
| Erkek-erkek jumper kablo | ~12 |
| USB kablo | 1 |
Devre bağlantıları

| Bileşen | Bileşen pini | Arduino pini |
|---|---|---|
| HC-SR04 | VCC | 5V |
| HC-SR04 | Trig | D9 |
| HC-SR04 | Echo | D10 |
| HC-SR04 | GND | GND |
| Buzzer | + (uzun bacak) | D8 |
| Buzzer | – | GND |
| Yeşil LED | Uzun bacak (220 Ω üzerinden) | D5 |
| Sarı LED | Uzun bacak (220 Ω üzerinden) | D6 |
| Kırmızı LED | Uzun bacak (220 Ω üzerinden) | D7 |
| LED’ler | Kısa bacaklar | GND |
Kodlar
// Arduino Park Sensörü - ozandamci.com
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 8;
const int yesilLed = 5;
const int sariLed = 6;
const int kirmiziLed = 7;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(yesilLed, OUTPUT);
pinMode(sariLed, OUTPUT);
pinMode(kirmiziLed, OUTPUT);
Serial.begin(9600);
}
int mesafeOlc() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long sure = pulseIn(echoPin, HIGH, 30000); // en fazla ~5 metre bekle
if (sure == 0) return -1; // cisim yok
return sure * 0.034 / 2; // santimetre
}
void ledleriAyarla(bool yesil, bool sari, bool kirmizi) {
digitalWrite(yesilLed, yesil);
digitalWrite(sariLed, sari);
digitalWrite(kirmiziLed, kirmizi);
}
void loop() {
int mesafe = mesafeOlc();
Serial.print("Mesafe: ");
Serial.print(mesafe);
Serial.println(" cm");
if (mesafe == -1 || mesafe > 50) {
// Güvenli: sadece yeşil, ses yok
ledleriAyarla(HIGH, LOW, LOW);
noTone(buzzerPin);
delay(200);
} else if (mesafe > 20) {
// Dikkat: sarı, yavaş bip
ledleriAyarla(LOW, HIGH, LOW);
tone(buzzerPin, 1000, 80);
delay(map(mesafe, 20, 50, 150, 500));
} else if (mesafe > 5) {
// Yakın: kırmızı, hızlı bip
ledleriAyarla(LOW, LOW, HIGH);
tone(buzzerPin, 1500, 50);
delay(map(mesafe, 5, 20, 60, 150));
} else {
// Çok yakın: kırmızı, sürekli ses
ledleriAyarla(LOW, LOW, HIGH);
tone(buzzerPin, 2000);
delay(100);
}
}
Adım adım yapılışı
- Sensörü yerleştirin. HC-SR04’ü breadboard’un kenarına, “gözleri” dışarı bakacak şekilde takın.
- Güç hatlarını bağlayın. Arduino’nun 5V pinini breadboard’un + hattına, GND pinini – hattına bağlayın.
- Sensörü bağlayın. VCC’yi + hattına, GND’yi – hattına, Trig’i D9’a, Echo’yu D10’a bağlayın.
- LED’leri takın. Her LED’in uzun bacağına 220 Ω direnç bağlayıp yeşili D5’e, sarıyı D6’ya, kırmızıyı D7’ye götürün. Kısa bacakları – hattına bağlayın.
- Buzzer’ı bağlayın. Uzun bacağını D8’e, kısa bacağını – hattına bağlayın.
- Kodu yükleyin. Arduino IDE’yi açın, kodu yapıştırın. Araçlar → Kart menüsünden Arduino Uno‘yu seçin, doğru portu seçip Yükle‘ye basın.
- Test edin. Elinizi sensöre yavaşça yaklaştırın. LED’lerin renk değiştirdiğini ve bip sesinin hızlandığını görmelisiniz. Araçlar → Seri Port Ekranı menüsünden ölçülen mesafeyi santimetre olarak takip edebilirsiniz.
Sorun giderme
- Ses hiç değişmiyor, sürekli ötüyor: Elinizdeki buzzer aktif buzzer olabilir. Pasif buzzer kullanın ya da aktif buzzer için
tone()yerinedigitalWrite(buzzerPin, HIGH/LOW)kullanın. - Mesafe hep 0 veya -1 görünüyor: Trig ve Echo kablolarının yer değiştirmediğinden emin olun.
- LED yanmıyor: LED’in bacakları ters takılmış olabilir. Uzun bacak Arduino pinine gitmeli.
Kendiniz deneyin
- Mesafe sınırlarını (50, 20, 5 cm) değiştirerek sensörü farklı durumlara uyarlayın.
- Bir 16×2 LCD ekran ekleyip mesafeyi ekranda gösterin.
- Projeyi oyuncak bir arabanın arkasına monte edin.
Videolu anlatım
Projenin yapılışını adım adım videodan da izleyebilirsiniz. Diğer projeler için Arduino Projeleri oynatma listesine göz atın, yeni videolardan haberdar olmak için YouTube kanalıma abone olabilirsiniz.
Bir önceki proje: Arduino ile "Beni Sula" Diyen Bitki Uyarıcı – Toprak Nem Sensörü
Daha fazla proje için: Bu ve benzeri projeleri adım adım anlattığım Arduino Projeleri kitabıma göz atabilirsiniz.

“Arduino ile Park Sensörü Yapımı (Malzemeler, Devre ve Kodlar)” için 2 yorum