Merhaba,
Önceki videolarda Arduino ve CAN Bus Shield kullanarak aracın CAN hattını okuyup yorumlama işlemini gerçekleştirmiştik. Bu videoda ise CAN protokolü üzerine inşa edilen OBD2 standardının çalışma mantığını öğreniyoruz. Hepimizin elinde olan ve araçlarımıza bağlanıp anlık veri okumamıza, arıza kayıtlarını silmemize yaran OBD2 sisteminin temellerine iniyoruz. Videoda kullandığım Arduino kodlarını aşağıda bulabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
#include <Canbus.h> #include <defaults.h> #include <global.h> #include <mcp2515.h> #include <mcp2515_defs.h> void setup() { Serial.begin(115200); Serial.println("CAN Read - Testing receival of CAN Bus message"); delay(1000); if(Canbus.init(CANSPEED_500)) Serial.println("CAN Init ok"); else Serial.println("Can't init CAN"); delay(1000); } //********************************Main Loop*********************************// void loop() { obd2Request(); obd2Reply(); } void obd2Request() { tCAN message; message.id = 0x7DF; message.header.rtr = 0; message.header.length = 8; message.data[0] = 0x02; message.data[1] = 0x01; message.data[2] = 0x0D; message.data[3] = 0x55; message.data[4] = 0x55; message.data[5] = 0x55; message.data[6] = 0x55; message.data[7] = 0x55; mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0); mcp2515_send_message(&message); delay(2); } void obd2Reply() { tCAN message; if (mcp2515_check_message()) { if (mcp2515_get_message(&message)) { if(message.id == 0x7E8) { Serial.print("ID: "); Serial.print(message.id,HEX); Serial.print(" "); Serial.print("Data: "); Serial.print(message.header.length,DEC); Serial.print(" "); for(int i=0;i<message.header.length;i++) { Serial.print(message.data[i],HEX); Serial.print(" "); } int rpm = ((message.data[3]* 256)+ message.data[4])/4; Serial.println(rpm); Serial.println(""); } } } } |
Merhaba Buğra hocam,
can bus ile aracın kilometresini alabilme imkanımız var mı?
sabit kilometreyi
hız ve devir ile ilgili bir çok örnek var ama
sabit kilometre okuma ile ilgili hiç bir bilgi yok
ddt4all data hatası veriyor .
ddt2000 database olarak intenette çokca siteye baktim ama ne yazık ki doğru bir link bulamadım yardımcı olursanız sevinirim youtube videolarınızı merakla takip ediyorum gerçekten çok faydalı ama ddt4all la ilgili videolar eğer yardımcı olmazsanız hiç bir işime yaramaz .
şimdiden teşekürler
Merhaba.
Tabletten pos makinesi. Perakende satış konsolu yapnayı düşünüyorum. Tablete yazıcı barkod okuyucu
Nakit çekmecesi ve yeni nesil pos yazar kasa bağlamak istiyorum. Tabletten bu yapılırmı? Yapılırsa nasıl yapılır.
Teşekkür ederim
merhaba ,yine çok güzel bir anlatım olmuş elinize sağlık, bu arada sanırım 36.satırda 0D değilde, rpm için olan 0C olacaktı sanırım?
Buğra hocam ücreti karşılığında proje yapıyormusunuz?
Merhaba,
İlginiz için teşekkür ederim. Harici proje yapacak vaktim yok maalesef.
Merhaba Üstad,
2020 Honda civic ten bir türli can mesajlarını okuyamadım. Yanlış birşeymi yapıyorum diye deneyecek başka araç ta yok. Acaba honda okumaya izin vermiyor mu yoksa farklı bir can teknolojisimi kullanıyor
Merhaba Müslüm Bey,
Honda araçların altyapısı hakkında bilgi sahibi değilim maalesef. Günümüz araçlarında FlexCAN adı verilen daha gelişmiş bir CAN mimarisi kullanılmaya başlandı, aracınızda da bu yapı olabilir. Ek olarak yine bazı üreticiler aracın ilgili ECU’larının önünde Gateway adını verdikleri ve mesajları yönlendiren üniteler kullanılıyor. Gateway için gerekli komutları göndermeden aracın geri kalanı ile veya “Free Frames” adı verilen sistemden akan tüm mesajları görmeyi engelliyor.
merhaba 2006 punto nun RPM ini okuyamıyorum yardımcı olurmusunuz..