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 ?
 

Forum istatistikleri

Konular
5,917
Mesajlar
100,995
Üyeler
2,502
Son üye
FURKAN1

Son kaynaklar

Son profil mesajları

Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
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.
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.
Back
Top