Arduino Park Sensörü Yapımı

Bu eğitimimizde Arduino Uno üzerinde Ultrasonik Mesafe Sensörü (HC-SR04) ve Buzzer kullanarak bir araçlarda bulunan park sensörüne benzer bir yapıda çalışma yapacağız.

Ultrasonik Mesafe Sensörü (HC-SR04) çalışma mantığı ses dalgaları göndererek karşısındaki nesneye evya duvara çarpan bu dalgaların geri dönüş süresini ölçer.

Bu projemizde Buzzer belirlenene mesafe aralıklarına göre farklı ses çıkaracaktır.

  • 10 cm’den yakın ise Sürekli uyarı verecek.
  • 10-20 cm arasında kısa kısa bip sesi
  • 20-30 cm arasında daha uzun aralıklı bip sesi
  • 30 cm’den uzak mesafede ise hiç ses veya uyarı vermeyecek.

NOT: GND ve 5V BreadBoard üzerinde + ve – ‘ye bağladığınızda kimi zaman enerji yetersizliğinden dolayı çalışmayabilir. Bunları direkt olarak Arduino üzerine bağlayıp deneyebilirsiniz.

#define trigPin 9
#define echoPin 10
#define buzzer 6

void setup() {
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    pinMode(buzzer, OUTPUT);
    Serial.begin(9600);
}

void loop() {
    long sure;
    int mesafe;

    // Ultrasonik sensörden mesafeyi al
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);

    sure = pulseIn(echoPin, HIGH);
    mesafe = sure * 0.034 / 2; // cm cinsinden mesafe hesaplama

    Serial.print("Mesafe: ");
    Serial.print(mesafe);
    Serial.println(" cm");

    // Mesafeye göre buzzer çaldır
    if (mesafe > 0 && mesafe <= 10) {  
        tone(buzzer, 1000);  // Yakın mesafe (10 cm'den az) - Sürekli ses
    } 
    else if (mesafe > 10 && mesafe <= 20) {  
        tone(buzzer, 1000, 300); // Orta mesafe (10-20 cm) - Kısa bip sesi
        delay(500);
    } 
    else if (mesafe > 20 && mesafe <= 30) {  
        tone(buzzer, 1000, 100); // Uzak mesafe (20-30 cm) - Daha aralıklı bip sesi
        delay(1000);
    } 
    else {
        noTone(buzzer);  // Uzaksa buzzer kapalı
    }

    delay(200);
}

  • pulseIn() fonksiyonu, bir pinin ne kadar süre HIGH veya LOW durumda kaldığını takip eder ve geçen süreyi mikrosaniye cinsinden döndürür.

Bu projede, HC-SR04 ultrasonik mesafe sensörü kullanarak araçlardaki park sensörü sisteminin basit bir prototipini oluşturacağız. Sensörün ölçtüğü mesafeye göre:

  • LED’ler (yeşil/sarı/kırmızı) ile görsel uyarı
  • Buzzer ile sesli uyarı vereceğiz.

Öğrenecekleriniz:
✔ HC-SR04 sensörü kullanımı
✔ Mesafe ölçme prensibi
✔ Çoklu LED kontrolü
✔ PWM ile buzzer kontrolü


Gerekli Malzemeler

MalzemeAdetAçıklama
Arduino Uno1Temel kontrol kartı
HC-SR04 Ultrasonik Sensör1Mesafe ölçümü için
Kırmızı LED120cm’den yakın mesafe
Sarı LED120-50cm arası
Yeşil LED150cm’den uzak
220Ω Direnç3LED koruma direnci
Buzzer (Pasif)1Sesli uyarı için
Breadboard1Devre kurulum alanı
Jumper Kablolar10-12Bağlantı için

Devre Bağlantısı

Adım Adım Bağlantı Kılavuzu

  1. HC-SR04 Bağlantısı:
    • VCC → Arduino 5V
    • Trig → D12
    • Echo → D11
    • GND → GND
  2. LED Bağlantıları:
    • Yeşil LED (+) → D9 → 220Ω → GND
    • Sarı LED (+) → D8 → 220Ω → GND
    • Kırmızı LED (+) → D7 → 220Ω → GND
  3. Buzzer Bağlantısı:
    • (+) → D6
    • (-) → GND

Devre Şeması:

5V → HC-SR04(VCC)
GND → HC-SR04(GND) → LED'ler(-) → Buzzer(-)
D12 → HC-SR04(Trig)
D11 → HC-SR04(Echo)
D9 → Yeşil LED
D8 → Sarı LED
D7 → Kırmızı LED
D6 → Buzzer(+)

Arduino Programı

// Pin tanımlamaları
const int trigPin = 12;
const int echoPin = 11;
const int buzzerPin = 6;
const int yesilLed = 9;
const int sariLed = 8;
const int kirmiziLed = 7;

// Mesafe eşik değerleri (cm)
const int UZAK_MESAFE = 50;
const int ORTA_MESAFE = 20;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(yesilLed, OUTPUT);
  pinMode(sariLed, OUTPUT);
  pinMode(kirmiziLed, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // Mesafe ölçümü
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; // cm cinsinden mesafe
  
  Serial.print("Mesafe: ");
  Serial.print(distance);
  Serial.println(" cm");

  // LED ve buzzer kontrolü
  if (distance > UZAK_MESAFE) {
    digitalWrite(yesilLed, HIGH);
    digitalWrite(sariLed, LOW);
    digitalWrite(kirmiziLed, LOW);
    noTone(buzzerPin);
  } 
  else if (distance > ORTA_MESAFE &amp;&amp; distance &lt;= UZAK_MESAFE) {
    digitalWrite(yesilLed, LOW);
    digitalWrite(sariLed, HIGH);
    digitalWrite(kirmiziLed, LOW);
    tone(buzzerPin, 1000, 200); // Aralıklı bip
    delay(300);
  } 
  else {
    digitalWrite(yesilLed, LOW);
    digitalWrite(sariLed, LOW);
    digitalWrite(kirmiziLed, HIGH);
    tone(buzzerPin, 2000); // Sürekli yüksek ses
  }
  
  delay(100);
}

Çalışma Prensibi

  1. Mesafe Ölçümü:
    • Trig pini 10μs HIGH sinyali gönderir
    • Sensör ultrasonik dalga yayar
    • Echo pini dalganın geri dönüş süresini ölçer
    • distance = (süre × ses hızı) / 2 formülüyle mesafe hesaplanır
  2. Uyarı Sistemi:
    • >50cm: Yeşil LED (Güvenli)
    • 20-50cm: Sarı LED + Aralıklı bip (Dikkat)
    • <20cm: Kırmızı LED + Sürekli bip (Tehlike)

Sık Karşılaşılan Sorunlar

SorunÇözüm
Sensör tutarsız ölçüm yapıyorGürültülü ortamdan uzaklaştırın
Buzzer çalışmıyorPasif buzzer kullandığınızdan emin olun
LED’ler yanmıyorBacak bağlantılarını ve dirençleri kontrol edin

Gerçek Hayat Uygulamaları

  • Araç park sensörleri
  • Robotik engel algılama
  • Akıllı garaj kapısı sistemleri

Sonuç

Bu projeyle Arduino’da:
✔ Gerçek dünya uygulaması geliştirmeyi
✔ Sensör verisi işlemeyi
✔ Çoklu çıkış kontrolünü
✔ Sesli-görsel uyarı sistemini öğrendik. 

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments