Alfredo Acerbi / Mbed 2 deprecated APS2_final

Dependencies:   mbed TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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