Arduino

Arduino Ultrasonik Mesafe Sensörü ile Park Sensörü Projesi

Aykut AKMAN 7 ay önce Yorumlar (0) 5 Dakika Okuma
Arduino Ultrasonik Mesafe Sensörü ile Park Sensörü Projesi
E-Posta : 1.3k 1

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-sensör-ile-park-sensörü-devre-şeması

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

  • 1 x Arduino Uno
  • 1 x HC-SR04 ultrasonik mesafe sensörü
  • 3 x LED (kırmızı, sarı, yeşil)
  • 3 x 220 Ohm direnç
  • 1 x Buzzer
  • Breadboard
  • Bağlantı kabloları
  • Sensör, bir "Trigger" pini aracılığıyla ses dalgaları gönderir ve "Echo" pini üzerinden geri dönen dalgaları algılar. Bu süreyi kullanarak mesafe hesaplanır.

    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.

  • 0-15 cm: Kırmızı LED yanar ve buzzer hızlı şekilde bip sesi çıkarır.
  • 15-45 cm: Sarı LED yanar ve buzzer orta hızda bip sesi çıkarır.
  • 45 cm üzeri: Yeşil LED yanar ve buzzer aralıklı bip sesi çıkarı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.

  • HC-SR04'ün bağlantıları yanlış olabilir.
  • Trigger ve Echo pinlerinin doğru bağlandığından emin olun.
  • Sensörün önünde engel bulunmadığını kontrol edin.
  • Evet, farklı ultrasonik sensörler kullanılabilir. Ancak sensörün teknik özelliklerine ve Arduino ile uyumuna dikkat edilmelidir.

  • Araç park sensörleri
  • Robot projelerinde engel algılama
  • Akıllı ev sistemlerinde mesafe ölçümü
  • Güvenlik ve izleme sistemleri
  • Aykut AKMAN

    Aykut AKMAN

    Bilişim Öğretmeni

    Bu Gönderiye Yorum Yapılmamış

    Yorum Yap

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlendi.

    Diğer Yazılar