Arduino ile araç içinden bilgi almak?

tolstoy

Üye
Katılım
1 Kas 2018
Mesajlar
34
Tepkime puanı
0
Puanları
6
Konum
Adana
Öncelikle sorumun uzun olacağını şimdiden belirteyim, uzun zamandır üzerinde çalışıyorum ama sorunu çözemedim. Yeni nesil araçların obd sistemleriyle yakından ilgiliyim. Amacım arduino ile lcd ekranda araçla ilgili belli bilgileri göstermek. Başlangıç olarak şu an sadece hız ve devir bilgisini görmek istiyorum.

Sorun 1 Rpm yazan yerde devir, Speed yazan yerde aracın hızının görünmesi gerek. Videoda görüldüğü üzere iki yerde de aynı bilgi benim isteğime bağlı olamadan değişiyor, bunun yanında sıcaklık vs gibi ihtiyacım olamayan şeyler de görünüyor. (Yine iki yerde de aynı bilgi var)

Sorun 2 Rpm ve Speed yazısının sabit kalıp sadece değerlerin yenilenmesini istiyorum. Her yarım saniyede dalgalanma oluyor ekranda.
Kullandığım kodların ve kütüphanelerin ilgili bölümleri bunlar;

Kod:
void loop(){

Canbus.ecu_req(ENGINE_RPM,buffer); //Motor devrini istiyor
EngineRPM = buffer; // buffer'dan motor devrini alacak
lcd.clear(); //lcd temizle
lcd.setCursor(0,0); //imleç taşı
lcd.print("Rpm: "); //Ekrana RPM yaz
lcd.print(buffer); //Bufferdaki bilgiyi ekrana bas

Canbus.ecu_req(VEHICLE_SPEED,buffer); //Hızı istiyor
Speed = buffer; //buffer'daki hız bilgisini alacak
lcd.setCursor(0,1); //imleç taşı
lcd.print("Speed: "); //Ekrana Speed yaz
lcd.print(buffer); // bufferdaki bilgiyi ekrana bas
delay(500); // yarım saniyede tekrarla
}
Arabadan bilgi çeken kütüphane şu: sparkfun/SparkFun_CAN-Bus_Arduino_Library

src/canbus.cpp içinde 130. satırdan sonra arabadan hangi bilgilerin çekileceği var. 6 ayrı tür bilgiyi çektikten sonra bunları buffer'da biriktiriyor. Speed yada RPM kısmında göstermek için buffer'dan SADECE İHTİYACIM OLAN veriyi nasıl çekebilirim? canbus.cpp bana çok karışık geldi (Arduino'da başlangıç seviyesindeyim)

Herkese teşekkürler.
 

deadache

Üye
Katılım
26 Eki 2018
Mesajlar
80
Tepkime puanı
5
Puanları
8
Konum
Bursa
Mobildeyim kopyalamiyorum. Çözüm basit.

1. lcd.print(buffer) yazan yere lcd.print(EngineRPM) yazın.
2. lcd.print(buffer) yazan yere lcd.print(Speed) yazın.
 

djsevgilim

Üye
Katılım
26 Eki 2018
Mesajlar
50
Tepkime puanı
3
Puanları
8
Konum
Bilecik
lcd.clear kullanma. Onu bir kez setup içinde kullan. arkasından rpm ve speed kelimelerini de setup içinde yazdırın. diğerleri loop içinde olsun.
 

doctor

Yeni üye
Katılım
26 Eki 2018
Mesajlar
24
Tepkime puanı
1
Puanları
3
Konum
Çanakkale
En kolayı bluetooth obd ile verileri almak bunun içinde bluetooth özelliği olan bir Elm327 obd cihazı alıp verileri ESP8266 ile okuyabilirsiniz. Geçen hafta benzer bir projeyi bitirdik. OBD den aldığımız verileri googledrive da bir spreadsheet e log luyor bizim projemiz. Sizinki daha kolay.
 
Üst