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 //inclui as bibliotecas 00002 #include "mbed.h" 00003 #include "TextLCD.h" 00004 00005 00006 TextLCD lcd(D8, D9, D4, D5, D6, D7); //declara uso do display lcd 00007 Serial pc(USBTX, USBRX); //declara serial 00008 CAN can1(PB_8, PB_9); //declara CAN 00009 AnalogIn EX(A2); //declara entrada eixo x do joystick 00010 AnalogIn EY(A3); //declara entrada eixo y do joystick 00011 00012 static char info[5] = {0x55, 0x54, 0x53, 0x52, 0x51}; //vetor para as 5 msgs 00013 00014 int main() 00015 { 00016 //cria mensagens que serão utilizadas 00017 CANMessage cima(5, &info[0], 8, CANData, CANStandard); 00018 CANMessage baixo(5, &info[1], 8, CANData, CANStandard); 00019 CANMessage esquerda(5, &info[2], 8, CANData, CANStandard); 00020 CANMessage direita(5, &info[3], 8, CANData, CANStandard); 00021 CANMessage recebida(5, &info[4], 8, CANData, CANStandard); 00022 pc.printf("Ola!\n"); 00023 int x; //cria variavel inteira x 00024 int y; ////cria variavel inteira x 00025 00026 while(1) 00027 { 00028 x = EX.read()*1000; //atribui à variável x o valor da leitura no pino vezes 1000 00029 y = EY.read()*1000; //atribui à variável y o valor da leitura no pino vezes 1000 00030 00031 //escreve as mensagens certas para as condições de valor do joystick 00032 if (x<100) 00033 { 00034 if(can1.write(esquerda)) 00035 { 00036 pc.printf("Esquerda"); 00037 } 00038 else 00039 { 00040 pc.printf("mensagem NAO enviada\n"); 00041 } 00042 } 00043 00044 if (x>900) 00045 { 00046 if(can1.write(direita)) 00047 { 00048 pc.printf("Direita"); 00049 } 00050 else 00051 { 00052 pc.printf("mensagem NAO enviada\n"); 00053 } 00054 } 00055 00056 if (y<100) 00057 { 00058 if(can1.write(baixo)) 00059 { 00060 pc.printf("Baixo"); 00061 } 00062 else 00063 { 00064 pc.printf("mensagem NAO enviada\n"); 00065 } 00066 } 00067 00068 if (y>900) 00069 { 00070 if(can1.write(cima)) 00071 { 00072 pc.printf("Cima"); 00073 } 00074 else 00075 { 00076 pc.printf("mensagem NAO enviada\n"); 00077 } 00078 } 00079 00080 //faz a comparação da msg escrevida com as msgs criadas. quando for igual, ou seja, qndo o valor de uma msg for igual ao de cima, baixo, esq e dir, printa no LCD 00081 00082 if (can1.read(recebida)) 00083 { 00084 pc.printf("mensagem recebida %x\n", recebida.data[0]); 00085 } 00086 00087 if (recebida.data[0] == 0x55) 00088 { 00089 lcd.locate(0,0); 00090 lcd.printf("Cima "); 00091 } 00092 00093 if (recebida.data[0] == 0x54) 00094 { 00095 lcd.locate(0,0); 00096 lcd.printf("Baixo "); 00097 } 00098 00099 if (recebida.data[0] == 0x53) 00100 { 00101 lcd.locate(0,0); 00102 lcd.printf("Esquerda "); 00103 } 00104 00105 if (recebida.data[0] == 0x52) 00106 { 00107 lcd.locate(0,0); 00108 lcd.printf("Direita "); 00109 } 00110 recebida.data[0] = 0; //limpa as variaveis 00111 00112 00113 } 00114 00115 } 00116 00117
Generated on Wed Aug 31 2022 21:05:34 by
1.7.2