arduino ile hız sabitleme

mahmud389

Yeni Üye
Katılım
17 Ocak 2024
Mesajlar
3
linea 1,3 dizel e direksiyondaki ses açma-ses kapatma-mute tuşlarıyla kontrol edelibilen bir hız sabitleme sistemi yapacağım .Arduino ile tetikleyeceğim 4 kanallı röle ile beyine 12v göndereceğim. Aracın sistemi, beyinin belli pinlerine 12v göndererek çalışıyor .röleye 12 v diğerine de aracın ecu ünitesine giden kabloları bağlayacağım. direksiyondaki 3 tuş tek bir data kablosu ile veriyi iletiyor. bunuda dirençler vasıtasıyla yapıyor. ben 4 çıkış alacağım için (hız sabitleme sistemi için 4 tuş gerekli. on/off- hız artı-hız eksi-hafıza) mute tuşundan gelen değer 2.5 sn olursa 4. pini açacak yani mute tuşuna basılı tutacağım bıraktığımda röleyi tetiklemiş olacak. hız sabitleme devrede kalabilmesi içinde tekrar basana kadar röleyi kapatmaması gerekiyor. Ve röye açık kaldığı müddetinde diğer tuşarın çalışması gerekiyor . artı ya bastığım kadar hızlanacak artı tuşuna basmayı bıraktığımda röle geri kapanacak. Birde mute tuşuna uzun bastıktan sonra mute tuşunu hafıza olarak kullanmam gerek. Yani frene bastığımda mute tuşuna bir kez bastığımda eski hızı getirecek . Aracın beyini zaten bu sistemi destekliyor. Sadece düşük paket olduğu için tesisat ve kontrol tuışları yok. PSA grubu kolu ile yazılım olmadan yapılıyor ama benim pek hoşuma gitmedi.
59b514174bffe4a-3.jpg
06728c7e7f08349-304x608.jpg
3bebfdb570fc9b9-468x608.jpg

direksiyondan gelen verileri daha okumadım. örnek olarak bir değer girerek kod yazdım. Ama bilgim biraz az olduğu için emin olamadım kodu kontrol edebilir misiniz

C++:
const int analogPin = A0;     // Analog pin
const int relay2Pin = 2;      // Dijital pin 2
const int relay3Pin = 3;      // Dijital pin 3
const int relay4Pin = 4;      // Dijital pin 4
const int relay5Pin = 5;      // Dijital pin 5

void setup() {
  pinMode(relay2Pin, OUTPUT);
  pinMode(relay3Pin, OUTPUT);
  pinMode(relay4Pin, OUTPUT);
  pinMode(relay5Pin, OUTPUT);

  digitalWrite(relay2Pin, LOW);
  digitalWrite(relay3Pin, LOW);
  digitalWrite(relay4Pin, LOW);
  digitalWrite(relay5Pin, LOW);
}

void loop() {
  int okunandeğerValue = analogRead(analogPin);

  if (okunandeğerValue >= 600 && okunandeğerValue <= 650) {
    delay(2500);  //
    if (okunandeğerValue >= 600 && okunandeğerValue <= 650) {
      digitalWrite(relay2Pin, HIGH);
      while (okunandeğerValue >= 600 && okunandeğerValue <= 650) {
        okunandeğerValue = analogRead(analogPin);
        delay(50);
      }
      digitalWrite(relay2Pin, LOW);
    }
  } else if (okunandeğerValue >= 550 && okunandeğerValue <= 590) {
    digitalWrite(relay4Pin, HIGH);
    delay(350);  //
    if (okunandeğerValue >= 550 && okunandeğerValue <= 590) {
      digitalWrite(relay3Pin, HIGH);
      while (okunandeğerValue >= 550 && okunandeğerValue <= 590) {
        okunandeğerValue = analogRead(analogPin);
        delay(50);
      }
      digitalWrite(relay3Pin, LOW);
      digitalWrite(relay4Pin, LOW);
    }
  } else if (okunandeğerValue >= 470 && okunandeğerValue <= 530) {
    digitalWrite(relay5Pin, HIGH);
    delay(350);  //
    if (okunandeğerValue >= 470 && okunandeğerValue <= 530) {
      digitalWrite(relay3Pin, HIGH);
      digitalWrite(relay4Pin, HIGH);
      while (okunandeğerValue >= 470 && okunandeğerValue <= 530) {
        okunandeğerValue = analogRead(analogPin);
        delay(50);
      }
      digitalWrite(relay3Pin, LOW);
      digitalWrite(relay4Pin, LOW);
      digitalWrite(relay5Pin, LOW);
    }
  }
}
 
Last edited by a moderator:
Yani arabanın beyni zaten hız sabitleme özelliğini destekliyor, sen sadece hız sabitleme kolu yerine direksiyondaki ses açma kapama ve yön tuşlarıyla mı çalıştırmak istiyorsun?
 
Programı inline kod olarak ekledim. Sen de sonrasında öyle yap.

Programın yapısı ile ilgili bariz bir sorun görünmüyor. sadece 24. satırda gereksiz bir if var.

Programın mantığının doğru olup olmadığını biz bilemeyiz. Hangi pini nereye bağladığını, hangi rölenin beyinde neyi kontrol ettiğini sen biliyorsun.
 
Programı inline kod olarak ekledim. Sen de sonrasında öyle yap.

Programın yapısı ile ilgili bariz bir sorun görünmüyor. sadece 24. satırda gereksiz bir if var.

Programın mantığının doğru olup olmadığını biz bilemeyiz. Hangi pini nereye bağladığını, hangi rölenin beyinde neyi kontrol ettiğini sen biliyorsun.
Yani üstteki kodlar anlattigim mantığa göre doğru değil mi ?
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,841
Mesajlar
99,623
Üyeler
2,480
Son üye
mozcelikors

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top