Arabanızı park ederken veya dar alanlarda manevra yaparken mesafe algılamaya ihtiyaç duydunuz mu? Bu projede, bir ultrasonik sensör ve piezo hoparlör kullanarak kendi basit park sensörü sisteminizi yapacağız. Nesnelerin mesafesini algılayıp, yaklaşan engellere karşı sesli uyarı vererek size yardımcı olacak bir sistem oluşturacaksınız. Hem sensör okuma hem de sesli geri bildirim konularında deneyim kazanacaksınız!
Bu projeyi hayata geçirmek için ihtiyacınız olan tüm malzemeler aşağıda listelenmiştir. Çoğu bileşen elektronik hobi kitlerinde bulunur.
Devre bağlantılarını doğru yapmak, projenin başarılı bir şekilde çalışmasını sağlar. Aşağıdaki adımları dikkatlice takip edin.
1. Ultrasonik Sensör (HC-SR04) Bağlantıları:
2. Piezo Hoparlör/Buzzer Bağlantısı:
3. (Opsiyonel) LED Bağlantıları (Örnek: Tek bir LED için):
Eğer birden fazla LED kullanıyorsanız (örn. yeşil, sarı, kırmızı), her LED'i farklı bir dijital Arduino pinine (örneğin D5, D6, D8) ve kendi 220Ω direncine bağlayın.
4. Genel Güç Bağlantısı:
Devre bağlantılarını tamamladıktan sonra sıra projenin beynini oluşturan koda geldi. Arduino IDE'yi açın ve aşağıdaki kodları kopyalayıp yapıştırın. Bu kod, ultrasonik sensörden gelen mesafe bilgisini okuyacak ve bu mesafeye göre farklı frekanslarda veya sürelerde sesli uyarılar üretecektir.
C++
// Ultrasonik sensör pinleri
const int trigPin = 9;
const int echoPin = 10;
// Buzzer pini
const int buzzerPin = 7;
// (Opsiyonel) LED pinleri (eğer kullanılıyorsa)
const int greenLedPin = 5;
const int yellowLedPin = 6;
const int redLedPin = 8; // Farklı pinler kullanıldı varsayımıyla
long duration;
int distance;
void setup() {
// Pinleri giriş ve çıkış olarak ayarlıyoruz
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
// (Opsiyonel) LED pinlerini OUTPUT olarak ayarlıyoruz
pinMode(greenLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
Serial.begin(9600); // Seri monitörü başlatıyoruz
Serial.println("Ultrasonik Park Sensörü Hazır!");
}
void loop() {
// Mesafe ölçüm fonksiyonunu çağırıyoruz
distance = getDistance();
Serial.print("Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
// Mesafe eşiklerine göre sesli ve görsel uyarılar
// Tüm LED'leri kapat
digitalWrite(greenLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, LOW);
noTone(buzzerPin); // Buzzer'ı sustur
if (distance > 50 || distance <= 0) {
// 50 cm'den uzak veya geçersiz ölçüm: Herhangi bir uyarı yok
// Yeşil LED yanabilir (güvenli)
digitalWrite(greenLedPin, HIGH);
Serial.println("Güvenli Mesafe");
} else if (distance > 20 && distance <= 50) {
// 20-50 cm arası: Dikkatli ol
// Sarı LED yanabilir, yavaş bip sesleri
digitalWrite(yellowLedPin, HIGH);
tone(buzzerPin, 1000, 100); // 1000 Hz, 100ms
delay(300); // Bip aralığı
noTone(buzzerPin);
Serial.println("Dikkat: Orta Mesafe");
} else if (distance > 0 && distance <= 20) {
// 0-20 cm arası: Çok yakın!
// Kırmızı LED yanabilir, hızlı ve sürekli bip sesleri
digitalWrite(redLedPin, HIGH);
tone(buzzerPin, 2000, 100); // Daha yüksek frekans, 100ms
delay(150); // Daha kısa bip aralığı
noTone(buzzerPin);
Serial.println("TEHLİKE: Çok Yakın!");
}
delay(50); // Döngü beklemesi
}
// Mesafe ölçümü yapan fonksiyon
int getDistance() {
// Trig pinine kısa bir sinyal gönderiyoruz
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Echo pininden gelen sinyalin süresini ölçüyoruz
duration = pulseIn(echoPin, HIGH);
// Süreyi mesafeye çeviriyoruz (cm cinsinden)
// Ses hızı ~0.034 cm/mikrosaniye'dir
int dist = duration * 0.034 / 2;
return dist;
}
Bu projede, ultrasonik sensör ile nesnelerin mesafesini ölçerken, bu mesafeye göre farklı sesli (piezo hoparlör) ve görsel (LED'ler) uyarılar verdik. getDistance() fonksiyonu mesafeyi hesaplar. loop() fonksiyonu içinde ise bu mesafe değerleri belirli eşiklerle karşılaştırılır ve tone() fonksiyonu ile ses, digitalWrite() ile LED'ler kontrol edilir. Mesafe azaldıkça bip seslerinin frekansı ve sıklığı artar, böylece kullanıcıya yaklaşan tehlike hakkında bilgi verilir.
Bu projeyi daha da geliştirmek isterseniz:
Bu proje, sensörlerden veri almayı ve bu verilere göre çıkış cihazlarını (hoparlör, LED) kontrol etmeyi öğrenmek için harika bir temel oluşturuyor. Kendi akıllı park yardımcınızı geliştirmekten çekinmeyin!