17 Aralık 2024 Yazarı yhackup 3

Arduino ile Kendi Park Senösürünü Kendin Yap :)

Merhabalar,

Belki hazırını daha ucuza mal edebilirsiniz , Belki hazırlaır daha fonksiyonludur , Fakat kendi sensörünüzü kendinizin yapması ayrı zevk bir vereyecektir.

 

Ön park sensörü genelde park ederken önümden haberim olması için gerekli , tabi bir çok yeni nesil araçta adaptive Cruise Control için de bir görevi bulunuyor.

Elimdeki malzemeler alixpressten alınma çokta kaliteli olmayan ürünler , Arduino pro’yu 2 Dolara almıştım mesela ,

Zaten asıl çıkış amacım Adaptive Cruise Control nasıl yapabilirim di .

Kısaca ACC  , Cruise Controlü devreye aldığınızda şehir içi trafiğinde dahi kullanabilmeniz , aracınız öndeki aracınızla aradaki mesafeyi ölçerek Aracı durdurup devam eder (Otomatik viteslerde olur.)

Bunu bize uyarlarsak otobanda önümüze araba geldiğinde , frene basıp cruise controlü devreden çıkarmak yerine , otomatik olarak araç Cruise Control hızını hızlı hızlı düşürüp motor freni ile yavaşlarmak , sollamaya çktığınızda aracın önü boşaldığında ise kaldığı hıza geri dönmek , bu işlem çok da zor değil.

Fakat bunun için öndeki sensörlerin çok kaliteli ve 100 – 200 metreleri bulan bir mesafeyi ölçebilmesi gerekli.. henüz bu sensörler çok pahalı ucuzladığında inşallah onu da yapacağım…

 

Şimdilik park sensörü ile yetinelim 🙂

Montaj ve silikon kaplama öncesi fotoğrafları ,

Malzemeler,

  • Arduino Pro Mini 2$
  • Hc-sr04 Ultrasonik Mesafe Sensörü  6 TL
  • LM7805 5 TL

Çalışma videosu , Buzzer aracın içinde olduğu için biraz az duyuluyor .

 

Arduino Kodları,

Ben kod tarafında 100cm’e kadar duyarlı olması için ayarladım daha fazlasına gerek yok , Siz isterseniz aşağıdaki kodlardan düzeltebilirsiniz.

 

Kodda anlamadığınz noktalar olur ise sorun…

int trigPin = 8;
int echoPin = 7;
long sure;
long uzaklik;
int buzzerPin = 12;
int notaSayisi = 8;
int C = 262;
int D = 294;
int E = 330;
int F = 349;
int G = 392;
int A = 440;
int B = 494;
int C_ = 523;
int notalar[] = {C, D, E, F, G, A, B, C_};

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
void loop()
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  sure = pulseIn(echoPin, HIGH);
  uzaklik = sure / 29.1 / 2;
  if (uzaklik > 200) {
    uzaklik = 200;
  }
  if ((uzaklik > 100) && (uzaklik < 60))  {
    tone(buzzerPin, notalar[1]);
    delay(250);
  } else if ((uzaklik < 60) && (uzaklik > 50))  {
    tone(buzzerPin, notalar[2]);
    delay(250);
  } else if ((uzaklik < 50) && (uzaklik > 40))  {
    tone(buzzerPin, notalar[3]);
    delay(250);
  } else if ((uzaklik < 40) && (uzaklik > 30))  {
    tone(buzzerPin, notalar[4]);
    delay(250);
  } else if ((uzaklik < 30) && (uzaklik > 20))  {
    tone(buzzerPin, notalar[5]);
    delay(250);
  } else if ((uzaklik < 20) && (uzaklik > 10))  {
    tone(buzzerPin, notalar[6]);
    delay(250);
  } else if (uzaklik < 10)  {
    tone(buzzerPin, notalar[7]);
    delay(250);
  } else{
    noTone(buzzerPin);
  }
}