28 Mart 2024 Yazarı yhackup 63

Otomatik Far Sensörü ve Gündüz Ledi Uygulaması Nasıl Yapılır?

Merhaba Sevgili Dostlar,

Yine aracımızın en üst donanımında olan orta ve alt donanımlarda olmayan bir özelliği aracımıza kavuşturuyoruz.

Sıradaki projemiz başlığından anlaşılacağı üzere otomatik far sensöru, bu sistem ile aracımız park ve farlarını otomatik açacak ve kapatacak.

Sistem nasıl çalışacak,

Hava hafif kararmaya başladığında önce stopları açacak, biraz daha karardığında kısa farları açacak. , aynı orjinalinde olduğu gibi..

Hava ölçümü LDR aracılığı ile şu şekilde çalışıyor, en güneşli hava 1023 birim, zifiri karanlık (ay ışığı bile yok) 0 birim,

Hava aydınlığı 300 birim altına düşünce parklar, 150 birim altına düşünce kısa farlar yanacak, arduino kodumu buna göre ayarladım, siz isterseniz bu değeri değiştirebilir veya, 1k Pot kullanarak istediğiniz zaman ayarlayabilir hale getirebilirsiniz

Gündüz  tünele veya yeraltı geçidine girdikten yarım saniye sonra stopları açar, yarım saniye sonra da kısa farları açar.

Tünelden çıkıldığında ise emin olmak için 6 saniye kadar daha kısalar yanmaya devam eder sonrasında kısalar ve parklar kapatılır.

Ancak Arduino kodlarından anlamayanlar için detay belirteyim sistem Saniyede iki defa (500 mili saniyede bir)  ışık ölçer 12 ölçüm de ard arda eğer ışık 300birim üzerine çıkarsa farlar kapanırbu teknik ile , sokak lambalarının altından geçerlen sokak lambaları veya yüksek ışık kaynakları far sensörümüzü şaşırtmaz en yüksek doğrulukla çalışmasına olanak sağlar.

Maliyeti düşük hatta daha da düşürülebilir.

Malzemeler,

  • Arduino (marka model farketmez alayı aynı)
  • LM7805 Regülator (Arduino’yu beslemek için 12voltu 5volta düşürür)
  • LDR (Light Dependent Resistor) Işığa bağımlı direnç bir diğer adı Foto direnç
  • BC547 NPN Transistor (2 Adet)
  • 1K direnç (3 Adet)
  • 330ohm direnç (1 Adet)
  • Yeteri kadar kablo, makaron vs vs.

Bu malzemeler ortalama 25 –30 TL, aslında tek para eden Arduino diğerleri 10 kuruş 50 kuruş, Ben Yazılım Geliştiricisi olduğum için Arduino bana çok kolay geliyor Elektronik bilgim çok iyi değil, istenirse bu sistem arduino olmadan da yapılabilir, eğer iyi bir elektronikçi iseniz çok daha düşük maliyete getirebilirsiniz.

Ben LM7805 yerine, elimde ayarlı regülatör vardı doğrudan onu kullandım, burada amaç arduinonun zarar görmemesi, arduino çok çok az akım çeker 5v 040ma gibi komik bir enerji tüketimi var 9v pille bile çok üzün süre kullanılır, aslında 12v ile de beslenebilir ama aracımız çalışırken 14,5v elektrik üretmektedir. Bu arduinoya zarar verir.

Dirençleri 1/4w kullanmanız yeterlidir, sadece sinyal verecek üzerinden aşırı akım geçmeyecek.

Mantığı Anlamak,

Sinyal Ünitesi H005’in 3 nolu pininden Body Computerin M001 – A soketinin 2 nolu pinine negatif sinyal gitmektedir.
Aracımızın parklarını açtığınızda bu üniteden, 2.Nolu pine 330ohmluk bir NEGATİF sinyali gitmektedir.
Kısaları açtığınızda ise 330ohmluk direnç ortadan tamamen kalkar, 2.nolu sokete doğrudan NEGATİF sinyal gider bizde arduino ile aynen bunu yapacağız.

Transistörlerimizin NPN (Negatif, Pozitif, Negatif) olması bu noktada çok önem arz ediyor.

Fiat Linea 1.3 Mjet Euro 4 serisinde yeri ve konumu bu şekilde , Body computer tüm fiatlarda aynıdır ancak Hangi soketinin kaçıncı pinini kullanacağınız marka modele göre değişebilir Elearn uygulamasından aracınıza uygun pini tespit edebilirsiniz.

diğer marka model araçlarda da mutlaka benzer sistem kullanılıyordur tespit edip kullanabilirsiniz.

Punto için ise, M001’daki D soketinin 38. pnini kullanabilirsiniz. Punto’daki tespiti için Sözer beye teşekkür ederim.

LDR’mizin dışına bu şekilde bir makaron geçirmemiz ve aynaya bakarak tamamen gökyüzüne baktırmamız önemli bir detay zira aksi halde önden arkadan gelen aracın farları sistemi etkileyecektir zaten birçok aracın orijinalinde de ya aynanın arkasında veya torpidonun en önünde cama yakın olarak durmaktadır

Ek olarak , Aracın kontağını açtıktan 5 saniye sonra devreye girecek şekilde ayarladım siz koddan bunu kaldırabilir veya azaltabilirsiniz, ben aracımı kontak açılır açılmaz çalıştırmıyorum bir süre bekliyorum özellikle kış aylarında ısıtma bujisi aracı ısıtırken farların yanmasını istemem.

Body Computerin M001 – A soketinin 2 nolu pini nerede ?

Arduino’muzun tetikleyeceği sinyal pinini bulmak, öncelikle aracınızın altındaki sigorta kapağını sökmelisiniz.


Akü Kutup başının şasi tarafını her ihtimale karşı çıkarın..!

Sonrasında Turuncu ile işaretlediğim soketleri yerinden çıkarın.

Daha sonra kırmızı ile işaretlediğim somunları yerinden çıkarın.


Body Computeri öne doğru çok çekmeyinarkasında da bu şekilde soketler var bizim işimiz sarı ile işaretlediğim A soketi ile , bunu elinizi arkadan dolandırarak yuvasından çıkarın.


Kullanmamız gereken pini turuncu ile işaretledim.


Yan kısmında siyah bir plastik kapak var elinizle aldıktan sonra, turuncu ile işaretlediğim yerde bir tırnak var o tırnağa basarak yeşil soketi yerinden çıkarın.


Pinimiz işte bu , soketi çıkarmak için uğraşmanıza gerek yok Kablo rengi Yeşil üzerine Siyah çizgi, dışarıdan bir jupmer da yapabilirsiniz

Önemli Uyarı
Direksiyon altındaki kablodan alacaksanız , o kablo demetinde Yeşil-Siyah renkte iki kablo var ikisini de bulun ve ince olan Yeşil-Siyah kabloya bağlayın.

Ben soketin iletken kısmına sıkı bir şekilde kablomu sardım.


Ve bağlantımı makaron ile sağlamlaştırdım.


Sinyal kablomdan sonra,arduinoyu besleyeceğim enerji içinde , Cruise Control için kullandığım F51 sigortasından + , Alt kısımdaki vidadan da şasi bağlandılarımı aldım


LDR soketimi de soketine taktım


Güzel bir plastik kutu alana dek alt plastik kısıma cırt cırt ile sabitledim.


LDR sensörümü ise, aynanın ardındaki boşluğa gökyüzüne bakacak şekilde sabitledim.

Devre Kartının hazırlanması

Öncelikle Arduino Kodunu aşağıdaki butondan bilgisayarınıza indirin, ve Arduinonuza doğrudan yükleyin.

eğer Arduino nasıl kurulur bilmiyorsanız buradaki konuda nasıl kurulacağı ile ilgili bilgi vermiştim göz atabilirsiniz.

/////////////begin///////////////
////////Son Güncelleme Tarihi/////////////
////////////29.11.2020///////////////////
int Lamp1 = 5;
int Lamp2 = 6;
int ParkTimeOut = 30;
int KisaTimeOut = 30;
boolean Park = false;
boolean Kisa = false;
int ParkEsik = 400;
int KisaEsik = 170;
// gündüz ledi için pwm pini
int PWMpin = 11;
int PWMValue = 0;
void setup()
{
  pinMode(Lamp1, OUTPUT);
  pinMode(Lamp2, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  for (PWMValue = 0; PWMValue <= 255; PWMValue++) {
    analogWrite(PWMpin, PWMValue);
    delay(13);
  }
}
void loop()
{
  FarInttaligence();
}
int sVal() {
  int sensorValue = analogRead(A5);
  for (int i = 0; i < 4; i++) {
    delay(50);
    sensorValue =  sensorValue + analogRead(A5);
  }
  return sensorValue / 5;
}
void FarInttaligence() {
  int sensorValue = sVal();
  Serial.print(sensorValue);
  if (ParkTimeOut < 0) ParkTimeOut = 0;
  if (KisaTimeOut < 0) KisaTimeOut = 0;
  if (sensorValue < ParkEsik) {
    if (ParkTimeOut != 0) {
      ParkTimeOut = ParkTimeOut - 6;
    }
  } else {
    if (ParkTimeOut != 30) {
      ParkTimeOut++;
    }
  }
  if (sensorValue < KisaEsik) {
    if (KisaTimeOut != 0) {
      KisaTimeOut = KisaTimeOut - 3;
    }
  } else {
    if (KisaTimeOut != 30) {
      KisaTimeOut++;
    }
  }
  if (ParkTimeOut == 0) {
    Park = true;
  }
  else if (ParkTimeOut == 30) {
    Park = false;
  }
  if (KisaTimeOut == 0) {
    Kisa = true;
  }
  else if (KisaTimeOut == 30) {
    Kisa = false;
  }
  PWMValue = 255;
  if (Park) {
    digitalWrite(Lamp1, HIGH);
    PWMValue = 200;
  } else {
    digitalWrite(Lamp1, LOW);
  }
  if (Kisa) {
    digitalWrite(Lamp2, HIGH);
    digitalWrite(LED_BUILTIN, HIGH);
    PWMValue = 150;
  } else {
    digitalWrite(Lamp2, LOW);
    digitalWrite(LED_BUILTIN, LOW);
  }
  analogWrite(PWMpin, PWMValue);
  Serial.print(" - ");
  Serial.print(ParkTimeOut);
  Serial.print(" <> ");
  Serial.println(KisaTimeOut);
}
/////////////end///////////////

Devre Şeması

Meraklsı için Fritzing:  https://yadi.sk/d/kRe0R1xu906Ong  

Gündüz Ledi uygulaması yapmak istemiyor iseniz, devredeki aşağıdaki elemanları Kullanmayabiliriniz.

  • 2.2k 
  • TIP122

Punto için dirençlerde bu şekilde değişiklik yapılmalı

Kodu yükledikten sonra, yukarıdaki gibi çok basit bir devre hazırlayıp, A soketinin 2. pininden çektiğimiz kabloyu, Arduinonun 5. ve 6. bacaklarını ve şasiyi ilgili yerlere bağlıyorsunuz.

LDR bağlantısı ise bu şekilde , toplamda bir kibrit kutusu büyüklüğünde bir devre olmuş oluyor.

Bir başka takipçimizden gelen devre örneği 🙂

Sorularınızı aşağıdan yorum olarak sorabilirsiniz.

Çalışma videosu aşağıdaki gibidir, ileride daha detaylı bir video çekip yükleyeceğim kanalıma abone olmayı unutmayın bu gibi güzel projelerden uzak kalmayın…

Kalın Sağlıcakla..

https://www.youtube.com/embed/2tztZodM4eMhttps://www.youtube.com/embed/gJDIGd1YERs