OBD II see: https://os.mbed.com/users/okini3939/notebook/obd2-can-bus/

Dependencies:   OBD2 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "OBD2.h"
00003 
00004 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
00005 Serial pc(USBTX, USBRX);
00006 OBD2 obd(p30, p29);
00007 
00008 float readObd2 (int cmd) {
00009 
00010     if (obd.request(cmd)) {
00011         return -1;
00012     }
00013     return obd.read();
00014 }
00015 
00016 int main() {
00017     int i;
00018     float f;
00019 
00020     pc.baud(115200);
00021     pc.printf("--- OBD2\n\r");
00022     led1 = 1;
00023 
00024     for (;;) {
00025         if (pc.readable()) {
00026             i = 0;
00027             switch (pc.getc()) {
00028             case '1': i = ENGINE_LOAD; break;
00029             case '2': i = THROTTLE; break;
00030             case '3': i = FUEL_LEVEL; break;
00031             case '4': i = ENGINE_COOLANT_TEMP; break;
00032             case '5': i = INTAKE_TEMP; break;
00033             case '6': i = AMB_AIR_TEMP; break;
00034             case '7': i = INTAKE_PRESSURE; break;
00035             case '8': i = ENGINE_RPM; break;
00036             case '9': i = VEHICLE_SPEED; break;
00037             }
00038 
00039             if (i) {
00040                 f = readObd2(i);
00041                 pc.printf("PID=%02x, Result=%f\r\n", i, f);
00042             }
00043             led2 = !led2;
00044         }
00045     }
00046 }