Arduino ile stop lambalarının kontrolü

bolubeyi

Profesyonel Üye
Katılım
27 Eyl 2008
Mesajlar
1,666
Puanları
421
Yaş
54
Konum
Trabzon

arduino88.png


arduino89.jpg


arduino90.jpg


arduino91.jpg


arduino92.jpg


arduino93.jpg


Bu proje Akçaabat İMKB Anadolu Lisesi Coğrafya Dersi Öğretmeni Ömer AYGÜN ve öğrencileri tarafından düşünülmüş ve uygulamaya konulmuştur. Projeye Trabzon ve Mesleki Teknik Anadolu Lisesi Elektronik Öğretmeni Hasan ERTÜRK teknik destek vermiş ve sistemin prototip maketi hazırlanmıştır.

Araç kullanırken fren yapmak gerektiğinde durumu algılayıp ayağımızı gazdan çekip frene basana kadar 0,7 saniye kadar zaman geçer. Bu durumda saatte 100 km ile giden bir aracı kullanan bir sürücü fren yapana kadar araç yaklaşık 20 metre daha yol alır. O halde aracın 20 metre önünde bir engel varsa daha frene basmaya bile fırsat kalmadan araç engele çarpacaktır. Yani burada saniyeler hatta milisaniyeler bile çok önem arz etmekte.
Burada ortaya çıkan bir sorun var. O da şu:

Vites değişirken gazdan ayağımızı çektiğimizde stop lambalarının yanmaması gerek. Bu nedenle tasarım yaparken debriyaj pedalının pozisyonunu da dikkate almak gerekecek.
Şimdi gelelim konumuza. Bu gibi durumlarda arkadan gelen araçlar bizim fren yaptığımızı aracımızın stop lambalarının yanmasından fark etmekte. Özellikle ani duruşlarda arkadan gelen araç sürücülerini daha çabuk uyarabilmek için ayağımızı gazdan çektiğimiz anda daha frene henüz basamamışken uyarabilirsek hem onlar hem de bizim için çok önemli olabilecek milisaniyeleri kazanmış oluruz.
Sistemimiz ayağımızı frenden çektiğimiz anda stop lambalarının yanmasını sağlayacak. Şimdi tasarım aşamasına geçelim. Öncelikle aşağıdaki tabloda görüldüğü gibi debriyaj, fren ve gaz pedallarının alması muhtemel 8 senaryo için stop lambası, tekerlek ve fren tertibatının göstereceği tepkileri belirleyelim.

arduino94.png


Kontrol devremizi arduino ile yapacağız. Şimdi sıra geldi yukarıdaki senaryolara uygun olarak ardiuno programını yazmaya.

Arduino kodlarımız:
Kod:
int gaz_pedali=A5;  // A5 GİRİŞİNE FREN PEDALI İSMİ VERİLDİ
int fren_pedali=A0;  // A0 GİRİŞİNE FREN PEDALI ADI VERİLDİ
int debriyaj=A4;  // A4 GİRİŞİNE DEBRİYAJ ADI VERİLDİ
int stop_lambasi=0;  // D0 ÇIKIŞINA STOP LAMBASI ADI VERİLDİ
int motor=5;  // MOTORA DİJİTAL 5 PİNİNDEN ENERJİ VERİLECEK
int hiz;  // HIZ TANIMLAMASI
int fren_pedali_durum=0;
#include <Servo.h>  // SERVO KÜTÜPHANESİ EKLENDİ
const int pot=A0;  // SERVO KONTROL PİNİ
Servo tekerlek;  // SERVONUN ADI
int potdurum=0; 
int pos = 0; 

void setup()
{
pinMode(fren_pedali, INPUT);  // A0 PİNİ GİRİŞ YAPILDI
pinMode(gaz_pedali, INPUT);  // A5 PİNİ GİRİŞ YAPILDI
pinMode(debriyaj, INPUT);  // A4 PİNİ GİRİŞ YAPILDI
pinMode(stop_lambasi, OUTPUT);  // D0 PİNİ ÇIKIŞ YAPILDI
tekerlek.attach(13);  // SERVONUN BAĞLANACAĞI PİN
}

void loop()
{
  // MOTOR HIZI AYARI BURADA BAŞLADI
  hiz= analogRead(gaz_pedali);  // GAZ PEDALINDAKİ VOLTAJI OKU
  hiz= map(hiz, 0, 550, 255, 0);  // OKUNAN 5 VOLT İLE 0 VOLT ARASINDAKİ VOLTAJI HIZA DÖNÜŞTÜR
  analogWrite(motor, hiz);  // HESAPLANAN HIZI MOTORA AKTAR
  delay(10);  // 10 ms BEKLE
  // MOTOR HIZI AYARI BURADA BİTTİ

  // STOP LAMBASI PEDALI KOMUTLARI BURADA BAŞLADI
  fren_pedali_durum= digitalRead(A0);  // A0 GİRİŞİNDEKİ LOJİK SEVİYEYİ OKU
  digitalWrite(0, !fren_pedali_durum);  // OKUNAN LOJİK SEVİYENİN TERSİNİ D0 ÇIKIŞINA AKTAR (DEVRE ONA GÖRE DİZAYN EDİLDİ)
  // STOP LAMBASI PEDALI KOMUTLARI BURADA BİTTİ

  // DEBRİYAJ, GAZ VE FREN PEDALLARI BASILI DEĞİLSE FREN LAMBASINI FLASH YAP BURADA BAŞLADI
  if (digitalRead(fren_pedali) == HIGH  && digitalRead(gaz_pedali) == HIGH  && digitalRead(debriyaj) == HIGH  )
  {
  digitalWrite(0, HIGH);
  delay(20);
  digitalWrite(0, LOW);
  delay(20);
  }
  // DEBRİYAJ, GAZ VE FREN FREN PEDALLARI BASILI DEĞİLSE FREN LAMBASINI FLASH YAP BURADA BİTTİ


  // FREN TERTİBATI KODLARI BAŞLADI
  potdurum=analogRead(pot);
  pos= map(potdurum,1023,0,180,55);  // FREN PEDALINDAN DEĞER OKUYUP DÖNME AÇISINI ORANLADIK
  {
  tekerlek.write(pos);  // YUKARIDA ORANLADIĞIMIZ DEĞERİ SERVOYA GÖNDERDİK
  }
  // FREN TERTİBATI KODLARI BİTTİ
}

İhtiyaç duyulması halinde projeye ait dosyaları orjinal konu ekinden(üyelik gerektirir) indirebilirsiniz.

Proje istek halinde her marka vemodel araca 1000 TL ücretle tasarımcı tarafından uygulanmaktadır.
 
Son düzenleme:

Forum istatistikleri

Konular
127,954
Mesajlar
913,893
Kullanıcılar
449,605
Son üye
osaricicek

Yeni konular

Geri
Üst