Arduino ve ultrasonik mesafe sensörünü kullanarak bir park sensörü projesi geliştirmek, gerçek hayat uygulamalarını öğrenmek için harika bir yöntemdir. Bu projede, mesafeye göre LED'ler ve bir buzzer yardımıyla araç mesafesini ve yaklaşma durumunu simüle edeceğiz.
Gerekli Malzemeler
- 1 x Arduino Uno (veya benzeri bir Arduino modeli)
- 1 x Ultrasonik Mesafe Sensörü (HC-SR04)
- 1 x Buzzer
- 3 x LED (Kırmızı, Sarı, Yeşil)
- 3 x 220 Ohm Direnç
- 1 x Breadboard
- Bağlantı Kabloları
Devre Bağlantıları

Ultrasonik Mesafe Sensörü
- VCC: Arduino'nun 5V pinine bağlayın.
- GND: Arduino'nun GND pinine bağlayın.
- Trig: Arduino'nun dijital pin 9'una bağlayın.
- Echo: Arduino'nun dijital pin 10'una bağlayın.
Buzzer
- Pozitif bacağı Arduino'nun dijital pin 8'ine bağlayın.
- Negatif bacağı GND'ye bağlayın.
LED'ler
- Kırmızı LED: Uzun bacak (anod) Arduino'nun dijital pin 11'ine, kısa bacak (katod) 220 Ohm direnç üzerinden GND'ye.
- Sarı LED: Uzun bacak Arduino'nun dijital pin 12'sine, kısa bacak 220 Ohm direnç üzerinden GND'ye.
- Yeşil LED: Uzun bacak Arduino'nun dijital pin 13'üne, kısa bacak 220 Ohm direnç üzerinden GND'ye.
Arduino Kodu
Aşağıdaki kod, mesafeye göre LED'leri kontrol eder ve farklı mesafe aralıklarında buzzer'dan farklı sıklıklarda ses çıkarır:
// Pin Tanımlamaları
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 8;
const int redLed = 11;
const int yellowLed = 12;
const int greenLed = 13;
// Değişkenler
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Ultrasonik sensörden mesafe ölçümü
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Mesafe hesaplama (cm)
distance = duration * 0.034 / 2;
// Mesafeye göre LED ve buzzer kontrolü
if (distance > 0 && distance <= 15) {
// Çok yakın: Kırmızı LED ve hızlı bip sesi
digitalWrite(redLed, HIGH);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
tone(buzzerPin, 1000); // 1 kHz ses
delay(100);
noTone(buzzerPin);
delay(100);
} else if (distance > 15 && distance <= 45) {
// Orta mesafe: Sarı LED ve orta sıklıkta bip sesi
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, HIGH);
digitalWrite(greenLed, LOW);
tone(buzzerPin, 1000); // 1 kHz ses
delay(300);
noTone(buzzerPin);
delay(300);
} else if (distance > 45) {
// Uzak mesafe: Yeşil LED ve aralıklı bip sesi
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, HIGH);
tone(buzzerPin, 1000); // 1 kHz ses
delay(800);
noTone(buzzerPin);
delay(800);
} else {
// Hiçbir şey algılanmazsa tüm LED'ler söner ve buzzer susar
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
noTone(buzzerPin);
}
// Mesafeyi seri monitöre yazdır
Serial.print("Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
delay(50); // Ölçüm için küçük bir gecikme
}
Kod Açıklamaları
Mesafe Hesaplama
- Sensör, Trig pini üzerinden bir ultrasonik dalga gönderir ve Echo pini ile dalganın geri dönüş süresini ölçer.
- Mesafe, dönüş süresi kullanılarak hesaplanır.
Mesafeye Göre LED ve Buzzer Kontrolü
- 0-15 cm: Kırmızı LED yanar ve buzzer hızlı bir şekilde bip sesi çıkarır.
- 15-45 cm: Sarı LED yanar ve buzzer orta sıklıkta bip sesi çıkarır.
- 45 cm üzeri: Yeşil LED yanar ve buzzer daha yavaş bip sesi çıkarır.
tone()
ve noTone()
tone(buzzerPin, 1000)
: Buzzer'a 1 kHz frekansında bir sinyal gönderir.noTone(buzzerPin)
: Buzzer'ın sesini kapatır.
Projenin Çalışma Prensibi
- Yaklaşma Durumu: Mesafe azaldıkça LED ve buzzer hızlı tepki verir.
- Uzaklaşma Durumu: Mesafe arttıkça LED ve buzzer daha az tepki verir.
- Seri Monitör: Mesafeyi anlık olarak gözlemlemek için kullanılabilir.
Projenin çalışan örneğini görmek için tıklayınız.
Bu kod ile park sensörü projenizde mesafeye göre farklı sıklıklarda bip sesi çıkarabilir ve LED'lerle durumu görsel olarak gösterebilirsiniz.
Sıkça Sorulan Sorular
Mesafe, ses dalgalarının gidip dönme süresine bağlıdır ve şu formülle hesaplanır:
Mesafe (cm) = (Süre x Ses Hızı) / 2
Arduino için bu hesaplama genellikle 29.1'e bölünerek yapılır.
Bu mantık kod ile programlanır ve mesafeye göre koşullu ifadelerle uygulanır.
Buzzer frekansı, delay()
fonksiyonu kullanılarak ayarlanır. Daha kısa delay()
değerleri sesi sıklaştırır, daha uzun delay()
değerleri sesi seyrekleştirir.
Evet, Tinkercad'de HC-SR04 sensör ve diğer bileşenleri kullanarak devrenizi oluşturabilir ve simülasyon ile çalıştırabilirsiniz.
Evet, bir hoparlör kullanabilirsiniz. Ancak hoparlörle ton üretebilmek için Arduino'nun tone()
fonksiyonu kullanılır.
Evet, farklı ultrasonik sensörler kullanılabilir. Ancak sensörün teknik özelliklerine ve Arduino ile uyumuna dikkat edilmelidir.
Bu Gönderiye Yorum Yapılmamış