Ders Notları > Projeler

7. Arduino ile stop lambalarının kontrolü

(1/1)

Hasan ERTÜRK:














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.



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

Arduino kodlarımız:
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İ }
Projeye ait dosyaları konu ekinden indirebilirsiniz.

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

Navigasyon

[0] Mesajlar

There was an error while thanking
Thanking...
Tam sürüme git