HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
Ultrasonik Park Sensörü: Arduino ile Kendi Akıllı Yardımcınızı Yapın!

Ultrasonik Park Sensörü: Arduino ile Kendi Akıllı Yardımcınızı Yapın!

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!

Gerekli Malzemeler

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.

  • Arduino Uno R3: Projemizin beyni, sensörden gelen veriyi işleyecek ve sesli uyarıyı yönetecek.
  • Ultrasonik sensör (HC-SR04): Ses dalgaları yayarak mesafeyi ölçen ana sensörümüz.
  • Piezo hoparlör (mini) veya aktif buzzer: Yaklaşan engellere karşı sesli uyarı verecek bileşenimiz.
  • (Opsiyonel) LED (farklı renklerde) x 1-3 adet: Mesafe durumuna göre farklı görsel uyarılar vermek için kullanılabilir (örn. yeşil: güvenli, sarı: dikkat, kırmızı: çok yakın).
  • (Opsiyonel) 220Ω direnç x (LED sayısı): Her bir LED için akım sınırlayıcı direnç.
  • Küçük breadboard: Devre elemanlarını lehim yapmadan kolayca bağlamak için.
  • Jumper kablolar: Bileşenleri birbirine ve Arduino'ya bağlamak için.
  • USB kablosu: Arduino'yu bilgisayara bağlamak, kod yüklemek ve enerji vermek için.

Devre Bağlantı Şeması

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ı:

  • VCC pinini Arduino'nun 5V pinine bağlayın.
  • GND pinini Arduino'nun GND pinine bağlayın.
  • Trig pinini Arduino'nun D9 pinine bağlayın.
  • Echo pinini Arduino'nun D10 pinine bağlayın.

2. Piezo Hoparlör/Buzzer Bağlantısı:

  • Piezo hoparlörün uzun bacağını (+) Arduino'nun D7 pinine bağlayın.
  • Piezo hoparlörün kısa bacağını (-) Arduino'nun GND pinine bağlayın.

3. (Opsiyonel) LED Bağlantıları (Örnek: Tek bir LED için):

  • LED'in uzun bacağını (anot) 220Ω direncin bir ucuna bağlayın.
  • Direncin diğer ucunu Arduino'nun D5 pinine bağlayın.
  • LED'in kısa bacağını (katot) Arduino'nun GND pinine bağlayın.

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ı:

  • Arduino'yu bilgisayarınıza USB kablosu ile bağlayın.

Arduino Kodları

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;
}

Projenin Çalışma Mantığı ve Geliştirme Fikirleri

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:

  • Farklı Ses Tonları: Daha melodik veya karmaşık uyarı sesleri için farklı tone() frekansları ve süreleri deneyebilirsiniz.
  • LCD Ekran: Mesafeyi santimetre cinsinden gösteren bir LCD ekran ekleyerek görsel geri bildirimi daha detaylı hale getirebilirsiniz.
  • Analog Çıkış: Bir potansiyometre veya analog sensör ile mesafe duyarlılığını veya ses seviyesini ayarlayabilirsiniz.
  • Robotik Uygulamalar: Bu sensör sistemini bir robot arabaya entegre ederek otomatik engel kaçınma özelliği kazandırabilirsiniz.

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!