![](/media/cache/group/Display_Nokia_Insper_v01.jpg.50x50_q85.jpg)
obd + elm327 + lcd1602
Diff: main.cpp
- Revision:
- 1:7fa61b250083
- Parent:
- 0:81f7d0ea45b6
- Child:
- 2:17d61cc5f0c0
--- a/main.cpp Mon Jun 01 20:26:10 2020 +0000 +++ b/main.cpp Mon Jun 01 23:15:05 2020 +0000 @@ -4,7 +4,7 @@ DigitalOut myled(LED1); -Serial pc(USBTX,USBRX); +//Serial pc(USBTX,USBRX); Serial device(PA_11, PA_12); @@ -46,23 +46,23 @@ int main() { flipper.attach(&flip, 1.0); - pc.baud(115200); + //pc.baud(115200); - lcd.speed (SSD1306::Medium); // set working frequency + lcd.speed (SSD1306::Fast); // set working frequency lcd.init(); // initialize SSD1306 lcd.set_contrast(255); lcd.cls(); // clear frame buffer lcd.locate (3,2); // set text cursor to line 3, column 1 lcd.printf ("Starting up"); // print to frame buffer - pc.printf("OBD STM32 v1.1.002"); - pc.printf("\r\n"); + //pc.printf("OBD STM32 v1.1.002"); + //pc.printf("\r\n"); - device.baud(38400); + device.baud(57600); OBDInit(); - pc.printf("OBD Inicializado"); - pc.printf("\r\n"); + //pc.printf("OBD Inicializado"); + //pc.printf("\r\n"); lcd.cls(); lcd.locate(3,0); @@ -73,39 +73,45 @@ lcd.cls(); lcd.redraw(); - int FREQ = 600; + int FREQ = 80; while(1) { ask_intake_pressure_absolute(); - wait_ms(FREQ); - ask_engine_rpm(); + lcd.locate(0,0); + lcd.printf("%+03.2f bar",INTAKE_PRESSURE_ABSOLUTE); wait_ms(FREQ); - //ask_vehile_speed(); - //wait_ms(FREQ); - ask_intake_air_temperature(); - wait_ms(FREQ); - ask_throttle_position(); - wait_ms(FREQ); - ask_oxygen_sensor(); - wait_ms(FREQ); - ask_fuel_rail_pressure(); + + ask_engine_rpm(); + lcd.locate(1,0); + lcd.printf("%04i RPM",ENGINE_RPM); wait_ms(FREQ); - lcd.locate(0,0); - lcd.printf("%03.2f bar",INTAKE_PRESSURE_ABSOLUTE); - lcd.locate(1,0); - lcd.printf("%04i RPM",ENGINE_RPM); + //ask_vehile_speed(); lcd.locate(2,0); lcd.printf("%03i Km/h",VEHILE_SPEED); + //wait_ms(FREQ); + + ask_intake_air_temperature(); lcd.locate(3,0); lcd.printf("%03i C",INTAKE_AIR_TEMPERATURE); + wait_ms(FREQ); + + ask_throttle_position(); lcd.locate(4,0); lcd.printf("%05.2f pc",THROTTLE_POSITION); + wait_ms(FREQ); + + ask_oxygen_sensor(); lcd.locate(5,0); lcd.printf("%04.3f mV",OXYGEN_SENSOR); + wait_ms(FREQ); + + ask_fuel_rail_pressure(); lcd.locate(6,0); lcd.printf("%06.2f bar",FUEL_RAIL_PRESSURE); + wait_ms(FREQ); + lcd.redraw(); //lcd.cls(); @@ -146,12 +152,12 @@ INTAKE_PRESSURE_ABSOLUTE = (VAL_A * 0.01f) - 1.0f; - pc.printf("pressao %i\r",INTAKE_AIR_TEMPERATURE); + //pc.printf("pressao %i\r",INTAKE_AIR_TEMPERATURE); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_INTAKE_PRESSURE_ABSOLUTE[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_INTAKE_PRESSURE_ABSOLUTE[j]); + //} } void ask_engine_rpm() @@ -186,12 +192,12 @@ ENGINE_RPM = ((VAL_A * 256) + VAL_B) / 4; - pc.printf("rpm %i\r",ENGINE_RPM); + //pc.printf("rpm %i\r",ENGINE_RPM); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_ENGINE_RPM[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_ENGINE_RPM[j]); + //} } void ask_vehile_speed() @@ -221,12 +227,12 @@ VEHILE_SPEED = VAL_A; - pc.printf("%i kmh\r",VEHILE_SPEED); + //pc.printf("%i kmh\r",VEHILE_SPEED); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_VEHILE_SPEED[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_VEHILE_SPEED[j]); + //} } void ask_intake_air_temperature() @@ -256,12 +262,12 @@ INTAKE_AIR_TEMPERATURE = VAL_A - 40;; - pc.printf("temp ar %i\r",INTAKE_AIR_TEMPERATURE); + //pc.printf("temp ar %i\r",INTAKE_AIR_TEMPERATURE); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_INTAKE_AIR_TEMPERATURE[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_INTAKE_AIR_TEMPERATURE[j]); + //} } void ask_throttle_position() @@ -292,12 +298,12 @@ THROTTLE_POSITION = 100.0f/255.0f; THROTTLE_POSITION = THROTTLE_POSITION * VAL_A; - pc.printf("tbi %.2f\r",THROTTLE_POSITION); + //pc.printf("tbi %.2f\r",THROTTLE_POSITION); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_THROTTLE_POSITION[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_THROTTLE_POSITION[j]); + //} } void ask_oxygen_sensor() @@ -334,13 +340,13 @@ SHORT_TERM_FUEL_TRIM = ((100.0f / 128.0f) * VAL_B) - 100.0f; - pc.printf("sonda %f\r",OXYGEN_SENSOR); - pc.printf("trim %f\r",SHORT_TERM_FUEL_TRIM); + //pc.printf("sonda %f\r",OXYGEN_SENSOR); + //pc.printf("trim %f\r",SHORT_TERM_FUEL_TRIM); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_OXYGEN_SENSOR[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_OXYGEN_SENSOR[j]); + //} } void ask_fuel_rail_pressure() @@ -374,12 +380,12 @@ FUEL_RAIL_PRESSURE = ((VAL_A * 256) + VAL_B) * 0.1f; - pc.printf("alta %f\r",FUEL_RAIL_PRESSURE); + //pc.printf("alta %f\r",FUEL_RAIL_PRESSURE); - for(int j = 0; j < i; j++) - { - pc.printf("%c",RESPONSE_FUEL_RAIL_PRESSURE[j]); - } + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",RESPONSE_FUEL_RAIL_PRESSURE[j]); + //} } void read_serial() @@ -393,11 +399,10 @@ //pc.printf("%c",c[i]); i++; } - for(int j = 0; j < i; j++) - { - pc.printf("%c",c[j]); - } - i=0; //zeramos o contador de posicao + //for(int j = 0; j < i; j++) + //{ + //pc.printf("%c",c[j]); + //} } void OBDInit() @@ -407,90 +412,99 @@ lcd.redraw(); device.printf(SET_ALL_TO_DEFAULT); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,1); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,2); lcd.printf ("."); lcd.redraw(); device.printf(RESET_ALL); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,3); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,4); lcd.printf ("."); lcd.redraw(); device.printf(LINEFEED_OFF); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,5); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,6); lcd.printf ("."); lcd.redraw(); device.printf(PRINTING_SPACES_OFF); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,7); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,8); lcd.printf ("."); lcd.redraw(); device.printf(MEMORY_OFF); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,9); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,10); lcd.printf ("."); lcd.redraw(); device.printf(SET_TIMEOUT_256); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,11); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,12); lcd.printf ("."); lcd.redraw(); device.printf(TRY_PROTOCOL_0); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,13); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); lcd.locate (4,14); lcd.printf ("."); lcd.redraw(); device.printf(ECHO_OFF); device.printf(CR); - wait_ms(500); + wait_ms(200); lcd.locate (4,15); lcd.printf ("."); lcd.redraw(); - wait_ms(500); + wait_ms(200); - device.printf("ATLP"); - device.printf(CR); - wait_ms(500); + //device.printf("ATPP0CSV45"); + //device.printf("ATBRD45"); + //device.printf(CR); + //wait_ms(200); + //device.baud(57600); + //device.printf("ATPP0CON"); + //device.printf(CR); + //wait_ms(200); + + //device.printf("ATLP"); + //device.printf(CR); + //wait_ms(200); } \ No newline at end of file