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,446
Mesajlar
125,454
Üyeler
3,026
Son üye
hsng

Son kaynaklar

Son profil mesajları

Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
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ı
Back
Top