Pot_LCD_Can

Dependencies:   Voltimetro_V2 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 //**************************Declara uso da serial*******************************
00004 Serial pc(USBTX, USBRX); // tx, rx
00005 
00006 //**************************Declara uso da CAN**********************************
00007 CAN can1(PB_8, PB_9);
00008 
00009 //**************Declara uso do LED nativo da placa*******************************
00010 DigitalOut LED(PA_5);
00011 
00012 //****************Declara uso do botao nativo da placa***************************
00013 DigitalIn SW(PC_13);
00014 //*******************Declaração dos Pinos LCD************************************
00015 TextLCD lcd(D8, D9, D4, D5, D6, D7); // rs, e, d4-d7
00016 
00017 //----------Pinos de entrada analogica (ADC)------
00018 AnalogIn   AXIS_X(A0);
00019 AnalogIn   AXIS_Y(A1);
00020 
00021 //***********Dado da mensagem chamada de info que sera usada********************
00022 static char righ =  0x55;
00023 static char left =  0x35;
00024 
00025 int main()
00026 {
00027 //*****construção da mensagem CAN (ID, dado, tamanho em bits, Tipo de dado, Modo CAN)****
00028     CANMessage msg_right(5, &righ, 8, CANData, CANStandard);
00029     CANMessage msg_left(5, &left, 8, CANData, CANStandard);
00030     //****************************************************************************
00031 
00032     //*******************pisca o led********************************************
00033     LED = 1;
00034     wait(0.5);
00035     LED = 0;
00036     wait(0.5);
00037 
00038 
00039 
00040     lcd.setAddress(0,0);                        // Informa a posição que a mensagem será exibida no display LCD
00041 
00042     lcd.printf("Potenciometro");
00043 
00044     float VAL_X = 0.0f, VAL_Y = 0.0f;
00045 
00046     while(1) {
00047 
00048 //*******************Leitura do joystick nos eixos X e Y ***********************
00049 
00050         VAL_X = AXIS_X.read();
00051         VAL_Y = AXIS_Y.read();
00052 
00053 //******************************************************************************
00054 
00055          pc.printf(" %1.2f VAL_Y %x\n\r", VAL_Y);
00056          wait(0.5);
00057          
00058 
00059         if(VAL_Y > 0.3f) {
00060             if(can1.write(msg_right)) {
00061                 lcd.setAddress(0,0);
00062                 lcd.printf("Direita ");
00063             }
00064 
00065             else {
00066                 lcd.printf("Direita NAO enviada\n");
00067             }
00068         }
00069 
00070         //----Envia mensagem para -Y -----
00071         if(VAL_Y < 0.3f) {
00072             //printf("\n\rLEFT");
00073             if(can1.write(msg_left)) {
00074                 lcd.setAddress(0,0);
00075                 lcd.printf("Esquerda enviada\n");
00076             }
00077 
00078             else {
00079                 //pc.printf("Esquerda NAO enviada\n");
00080             }
00081         }
00082 
00083         //msg.data[0] = 0x00;
00084 
00085     }
00086 
00087 }