Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 //------------------------------------------------------------------- 00002 // Projeto 2020-06-15_APS3 00003 // Arquivo: main.cpp 00004 // descrição: Programa APS3 - OBD 00005 // autor: Roberto 00006 //------------------------------------------------------------------ 00007 00008 #include "mbed.h" 00009 #include <TextLCD.h> 00010 00011 Serial pc(USBTX, USBRX); // tx, rx 00012 Serial sparkfun(PB_9, PB_8); // tx, rx 00013 00014 TextLCD lcd(D8, D9, D4, D5, D6, D7); 00015 DigitalOut LCD(LED1); 00016 00017 char resposta[20]; //com folga e carater vazio 00018 int i = 0; 00019 int y = 0; 00020 char bat[3]; 00021 char rpm[4]; // 4 bytes finais 00022 int resposta_bat; 00023 int resposta_rpm; 00024 00025 int resposta_temp; 00026 char vel[2]; // 2 bytes finais 00027 int resposta_vel; 00028 00029 void bateria() { 00030 00031 i = 0; 00032 00033 memset(resposta,NULL,20); 00034 00035 pc.printf("atrv \r"); // valor bat 00036 00037 00038 while(pc.readable() == 0) { //trocar para sparkfun 00039 } 00040 00041 while(resposta[i-1] != '\r') { // ' caracter com caracter 00042 00043 resposta[i] = pc.getc(); 00044 i ++; 00045 } 00046 00047 lcd.locate (0,0); 00048 lcd.printf("B"); 00049 00050 lcd.locate (2,0); 00051 lcd.printf(resposta); 00052 00053 lcd.locate (7,0); 00054 lcd.printf(" "); 00055 00056 pc.printf(resposta); 00057 pc.printf("\r"); 00058 } 00059 00060 void rotacao() { 00061 00062 i = 0; 00063 00064 memset(resposta,NULL,20); 00065 00066 pc.printf("010c\r"); // valor rpm 00067 00068 while(pc.readable() == 0) { //trocar para sparkfun 00069 } 00070 00071 while(resposta[i-1] != '\r') { // ' caracter com caracter 00072 00073 resposta[i] = pc.getc(); 00074 i ++; 00075 } 00076 00077 rpm[0] = resposta[i-6]; 00078 rpm[1] = resposta[i-5]; 00079 rpm[2] = resposta[i-3]; 00080 rpm[3] = resposta[i-2]; // \r conta como um caracter e i conta um a mais (ofset =2) 00081 00082 resposta_rpm = strtol(rpm,NULL,16)/4; //string to int em decimal| nao precisa da logica e A e B pq os bytes estao conjuntos 00083 00084 lcd.locate (8,0); 00085 lcd.printf("RPM %d",resposta_rpm); 00086 00087 pc.printf(" RPM: %d \r ",resposta_rpm); 00088 } 00089 00090 void temperatura() { 00091 00092 i = 0; 00093 resposta_temp = 0; 00094 00095 memset(resposta,NULL,20); 00096 00097 pc.printf("0105\r"); // valor temp 00098 00099 while(pc.readable() == 0) { //trocar para sparkfun 00100 } 00101 00102 while(resposta[i-1] != '\r') { // ' caracter com caracter 00103 00104 resposta[i] = pc.getc(); 00105 //pc.putc(resposta[i]); 00106 i ++; 00107 } 00108 00109 char temp[2]; // 2 bytes finais 00110 //memset(temp,NULL,2); 00111 00112 temp[0] = resposta[i-3]; 00113 temp[1] = resposta[i-2]; // \r conta como um caracter e i conta um a mais (ofset =2) 00114 00115 pc.printf(" TEMP: %c%c \r ",temp[0], temp[1]); 00116 00117 resposta_temp = strtol(temp,NULL,16)-40 ; //string to int | nao precisa da logica e A e B pq os bytes estao conjuntos 00118 00119 //resposta_temp = resposta_temp - 40; 00120 00121 lcd.locate (0,1); 00122 lcd.printf("TEMP %d",resposta_temp); 00123 00124 pc.printf(" TEMP: %d \r ",resposta_temp); 00125 } 00126 00127 void velocidade(){ 00128 00129 i = 0; 00130 00131 memset(resposta,NULL,20); 00132 00133 pc.printf("010D\r"); // valor vel 00134 00135 while(pc.readable() == 0) { //trocar para sparkfun 00136 } 00137 00138 while(resposta[i-1] != '\r') { // ' caracter com caracter 00139 00140 resposta[i] = pc.getc(); 00141 //pc.putc(resposta[i]); 00142 i ++; 00143 } 00144 00145 vel[0] = resposta[i-3]; 00146 vel[1] = resposta[i-2]; // \r conta como um caracter e i conta um a mais (ofset =2) 00147 00148 resposta_vel = strtol(vel,NULL,16); //string to int | nao precisa da logica e A e B pq os bytes estao conjuntos 00149 00150 lcd.locate (8,1); 00151 lcd.printf("VEL %d",resposta_vel); 00152 00153 pc.printf(" VEL %d \r ",resposta_vel); 00154 } 00155 00156 int main() { 00157 00158 while(y != 10){ 00159 00160 bateria(); 00161 00162 wait(1); 00163 00164 rotacao(); 00165 00166 wait(1); 00167 00168 temperatura(); 00169 00170 wait(1); 00171 00172 velocidade(); 00173 00174 wait(1); 00175 00176 ++y; 00177 } 00178 } 00179 00180 00181 00182 00183 00184 00185
Generated on Tue Aug 23 2022 19:40:11 by
1.7.2