Arduino ile park sensörü

Park sensörünün cisimleri algılayabilmesi için daha önce “Uzaklık Ölçer” uygulamasında kullandığımız HC-SR04 Ultrasonic Mesafe Sensörünü kullandık. H
Devre Şeması:

Arduino Programı:

/* "HC-SR04 Ultrasonik Mesafe Sensörü kullanarak Park Sensörü" 
    Arduino ile HC-SR04 kullanarak cisimle olan mesafeye göre
    BUZZER ve LEDleri çalıştıran park sensörü programı.
    diyot.net */

const int trig = 2;  // değişkenler tanımla.
const int echo = 3;
int mesafe;
int zaman;

const int buzzer = 4;
const int kirmizi = 5;
const int sari = 6;
const int yesil = 7;
const int mavi = 8;

void setup() {
  pinMode(trig,OUTPUT); // trig pini çıkış olsun.
  pinMode(echo,INPUT);  // echo pini giriş olsun.
  
  pinMode(buzzer,OUTPUT); // buzzer pini çıkış olsun.
  pinMode(kirmizi,OUTPUT); // LED bağlı pinler çıkış olsun.
  pinMode(sari,OUTPUT);
  pinMode(yesil,OUTPUT);
  pinMode(mavi,OUTPUT);
  Serial.begin(9600);  // seri haberleşme başlat.
}

void loop() {
  digitalWrite(trig,HIGH);
  delay(1);
  digitalWrite(trig,LOW);
  // 1 msn aralıklarla trig pinini HIGH yap.
  
  zaman=pulseIn(echo,HIGH);
  mesafe=(zaman/2)/28.9;
  // sıcaklık 25 derece için katsayı=28,9

Serial.println("UZAKLIK =");
Serial.print(mesafe);
Serial.println("cm"); 
Serial.println("--------------------------"); 

if ((mesafe >= 0) && (mesafe <= 10)){
  //mesafe 0 ile 10cm arasındaysa...
  digitalWrite(kirmizi,HIGH);
  digitalWrite(buzzer,HIGH);
  delay(50);
  digitalWrite(kirmizi,LOW);
  digitalWrite(buzzer,LOW);
  delay(250);
}
else if ((mesafe >= 10) && (mesafe <= 30)){
  //mesafe 10cm-30cm arasındaysa...
  digitalWrite(sari,HIGH);
  digitalWrite(buzzer,HIGH);
  delay(50);
  digitalWrite(sari,LOW);
  digitalWrite(buzzer,LOW);
  delay(500);
}
else if ((mesafe >= 30) && (mesafe <= 50)){
  //mesafe 30cm-50cm arasındaysa...
  digitalWrite(yesil,HIGH);
  digitalWrite(buzzer,HIGH);
  delay(50);
  digitalWrite(yesil,LOW);
  digitalWrite(buzzer,LOW);
  delay(750);
}  
else if(mesafe >= 50){
  //mesafe 50cm'den büyükse...
  digitalWrite(mavi,HIGH);
  delay(50);
  digitalWrite(mavi,LOW);
  delay(1000);
}  
else if(mesafe <= 0){
  //mesafe 0'dan küçükse...
  digitalWrite(buzzer,LOW);
  digitalWrite(kirmizi,LOW);
  digitalWrite(sari,LOW);
  digitalWrite(yesil,LOW);
  digitalWrite(mavi,LOW);
} 
}

Arduino Programında HC-SR04 sensörü ile önündeki cisim arasındaki mesafeyi Arduinonun hesaplamasını sağladık. Cisme olan uzaklığa göre BUZZER ve LED’lerin çalışmasını sağladık.

Mesafe hesaplandıktan sonra Serial.println komutuyla seri port ekranından mesafe değerini yazdırdık. if-else komutları ile hesaplanan “mesafe” değerine bağlı olarak yapılacak işlemleri belirledik.

  • Eğer “mesafe” 0 ile 10cm arasındaysa; Kırmızı LED ve BUZZER 50msn çalışıp 250msn duracak. Kırmızı LED çok hızlı yanıp sönerken, BUZZER’da kırmızı LED’e çıkardığı sesle eşlik edecek.
  • Eğer “mesafe” 10cm ile 30cm arasındaysa; Sarı LED ve BUZZER 50msn çalışıp 500msn duracak. Sarı LED kırmızı LED’e göre daha yavaş yanıp sönerken, BUZZER’da sarı LED’e çıkardığı sesle eşlik edecek.
  • Eğer “mesafe” 30cm ile 50cm arasındaysa; yeşil LED ve BUZZER 50msn çalışıp 750msn duracak. Yeşil LED sarı LED’e göre daha yavaş yanıp sönerken, BUZZER’da yeşil LED’e çıkardığı sesle eşlik edecek.
  • Eğer “mesafe” 50cm’den büyükse; sadece mavi LED sürekli olarak 50msn yanıp 1sn sönük kalacak. Mavi LED 1sn aralıklı olarak yanıp sönecek.
  • Eğer hesaplanan “mesafe” değeri 0’dan küçük çıktıysa; BUZZER ve tüm LED’lerin enerjisi kesilecek.


Seri Port Ekranına tıklayarak sensör ile cisim arasındaki mesafeyi eş zamanlı olarak ekrandan görebilirsiniz.

YAZAR : Admin

Elektronik Mühendisi / E.Üni. Kalibrasyon Lab. Sorumlusu / Biyomedikal Kalibrasyon Laboratuvarı Sorumlu Müdürü (Sağ.Bak.) / X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) / Ultrason-Doppler Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) - Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Arduino ile BD135 – BD136 transistörlerini kullanarak DC Motor kontrolü

Çeşitli robot projelerinde kullanılan DC motorları Arduinoya doğrudan bağlayıp çalıştıramayız. Çünkü Arduinonun giriş-çıkış pinleri en …

Bir cevap yazın