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

Kod:
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 ?
 

Forum istatistikleri

Konular
7,233
Mesajlar
122,408
Üyeler
2,922
Son üye
Spacetr

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top