Testa o Joystick Shield V2.4

Dependencies:   Terminal mbed

Committer:
afm76
Date:
Sun Mar 18 22:06:29 2018 +0000
Revision:
1:150923afdc8a
Parent:
0:e75be3142dd1
atualizado

Who changed what in which revision?

UserRevisionLine numberNew contents of line
afm76 0:e75be3142dd1 1 #include "mbed.h"
afm76 0:e75be3142dd1 2 //#include "terminal.h"
afm76 0:e75be3142dd1 3 /*------------------------------------------------------------------------------
afm76 0:e75be3142dd1 4 Before to use this example, ensure that you an hyperterminal installed on your
afm76 0:e75be3142dd1 5 computer. More info here: https://developer.mbed.org/handbook/Terminals
afm76 0:e75be3142dd1 6
afm76 0:e75be3142dd1 7 The default serial comm port uses the SERIAL_TX and SERIAL_RX pins (see their
afm76 0:e75be3142dd1 8 definition in the PinNames.h file).
afm76 0:e75be3142dd1 9
afm76 0:e75be3142dd1 10 The default serial configuration in this case is 9600 bauds, 8-bit data, no parity
afm76 0:e75be3142dd1 11
afm76 0:e75be3142dd1 12 If you want to change the baudrate for example, you have to redeclare the
afm76 0:e75be3142dd1 13 serial object in your code:
afm76 0:e75be3142dd1 14
afm76 0:e75be3142dd1 15 Serial pc(SERIAL_TX, SERIAL_RX);
afm76 0:e75be3142dd1 16
afm76 0:e75be3142dd1 17 Then, you can modify the baudrate and print like this:
afm76 0:e75be3142dd1 18
afm76 0:e75be3142dd1 19 pc.baud(115200);
afm76 0:e75be3142dd1 20 pc.printf("Hello World !\n");
afm76 0:e75be3142dd1 21 ------------------------------------------------------------------------------*/
afm76 0:e75be3142dd1 22
afm76 0:e75be3142dd1 23 DigitalIn botao_A(D2);
afm76 0:e75be3142dd1 24 DigitalIn botao_B(D3);
afm76 0:e75be3142dd1 25 DigitalIn botao_C(D4);
afm76 0:e75be3142dd1 26 DigitalIn botao_D(D5);
afm76 0:e75be3142dd1 27 DigitalIn botao_E(D6);
afm76 0:e75be3142dd1 28 DigitalIn botao_F(D7);
afm76 0:e75be3142dd1 29 DigitalIn botao_K(D8);
afm76 0:e75be3142dd1 30
afm76 0:e75be3142dd1 31 AnalogIn eixo_X(A0);
afm76 0:e75be3142dd1 32 AnalogIn eixo_Y(A1);
afm76 0:e75be3142dd1 33
afm76 0:e75be3142dd1 34 DigitalOut myled(LED1);
afm76 0:e75be3142dd1 35
afm76 0:e75be3142dd1 36 Serial pc(USBTX, USBRX);
afm76 0:e75be3142dd1 37
afm76 0:e75be3142dd1 38 int main() {
afm76 0:e75be3142dd1 39 int a,b,c,d,e,f,k;
afm76 0:e75be3142dd1 40 int i;
afm76 0:e75be3142dd1 41 int x,y;
afm76 0:e75be3142dd1 42 float u,w;
afm76 0:e75be3142dd1 43 pc.baud(9600);
afm76 0:e75be3142dd1 44
afm76 0:e75be3142dd1 45 a=b=c=d=e=f=k=0; //a=0,b=0,c=0,d=0,e=0,f=0,k=0;
afm76 0:e75be3142dd1 46
afm76 0:e75be3142dd1 47 //cls();
afm76 0:e75be3142dd1 48 pc.printf("\f\n\r\t\t\t\t\t\tHello Analog World!!!");
afm76 0:e75be3142dd1 49 pc.printf("\n\rStart\tA=%d,\tB=%d,\tC=%d,\tD=%d,\tE=%d,\tF=%d,\tK=%d,\tEixos<int>\tEixos<float>\tEixos<status>",a,b,c,d,e,f,k);
afm76 0:e75be3142dd1 50 pc.printf("\n\rBotao\tA\tB\tC\tD\tE\tF\tK\tx\ty\tX\tY\n");
afm76 0:e75be3142dd1 51
afm76 0:e75be3142dd1 52
afm76 0:e75be3142dd1 53 while(1) {
afm76 0:e75be3142dd1 54
afm76 0:e75be3142dd1 55 if (botao_A == 0) { // Botão usuário pressionado
afm76 0:e75be3142dd1 56 a++;
afm76 0:e75be3142dd1 57 }
afm76 0:e75be3142dd1 58 if (botao_B == 0) { // Botão externo pressionado
afm76 0:e75be3142dd1 59 b++;
afm76 0:e75be3142dd1 60 }
afm76 0:e75be3142dd1 61 if (botao_C == 0) { // Botão usuário pressionado
afm76 0:e75be3142dd1 62 c++;
afm76 0:e75be3142dd1 63 }
afm76 0:e75be3142dd1 64 if (botao_D == 0) { // Botão usuário pressionado
afm76 0:e75be3142dd1 65 d++;
afm76 0:e75be3142dd1 66 }
afm76 0:e75be3142dd1 67 if (botao_E == 0) { // Botão usuário pressionado
afm76 0:e75be3142dd1 68 e++;
afm76 0:e75be3142dd1 69 }
afm76 0:e75be3142dd1 70 if (botao_F == 0) { // Botão usuário pressionado
afm76 0:e75be3142dd1 71 f++;
afm76 0:e75be3142dd1 72 }
afm76 0:e75be3142dd1 73 if (botao_K == 0) { // Botão usuário pressionado
afm76 0:e75be3142dd1 74 k++;
afm76 0:e75be3142dd1 75 }
afm76 0:e75be3142dd1 76 //x=(int)eixo_X.read();
afm76 0:e75be3142dd1 77 u=eixo_X.read();
afm76 0:e75be3142dd1 78 //x=(int)u;
afm76 0:e75be3142dd1 79 x=eixo_X.read()*255; //Converte uma leitura do ADC em float para formato int e armazena na variável y.
afm76 0:e75be3142dd1 80
afm76 0:e75be3142dd1 81 w=eixo_Y.read();
afm76 0:e75be3142dd1 82 y=eixo_Y.read()*255; //Converte uma leitura do ADC em float para formato int e armazena na variável y.
afm76 0:e75be3142dd1 83
afm76 0:e75be3142dd1 84 pc.printf("\rValor\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%X \t%X \t%2.3f\t%2.3f",a,b,c,d,e,f,k,x,y,eixo_X.read(),eixo_Y.read());
afm76 0:e75be3142dd1 85 //Detecta a faixa em que o cursor do pot se encontra:
afm76 0:e75be3142dd1 86 if (u>0.505){pc.printf(" X FWD ");} //pot > 0.505V (comanda acionamento X proporcional para FRENTE);
afm76 0:e75be3142dd1 87 else{ if (u<0.495){pc.printf(" X BWD ");} //pot < 0.495V (comanda acionamento X proporcional para TRAS);
afm76 1:150923afdc8a 88 else pc.printf(" X STOP"); //0.495V < pot < 0.505V (comanda acionamento X para permanecer PARADO).
afm76 0:e75be3142dd1 89 };
afm76 0:e75be3142dd1 90 if (w>0.505){pc.printf(" Y FWD \r");} //pot > 0.505V (comanda acionamento Y proporcional para FRENTE);
afm76 0:e75be3142dd1 91 else{ if (w<0.491){pc.printf(" Y BWD \r");} //pot < 0.495V (comanda acionamento Y proporcional para TRAS);
afm76 1:150923afdc8a 92 else pc.printf(" Y STOP\r"); //0.495V < pot < 0.505V (comanda acionamento Y para permanecer PARADO).
afm76 0:e75be3142dd1 93 };
afm76 0:e75be3142dd1 94
afm76 0:e75be3142dd1 95 // for (i = 1; i < 1000000; i+=1){}
afm76 0:e75be3142dd1 96 wait(0.2);
afm76 0:e75be3142dd1 97 }
afm76 0:e75be3142dd1 98 }
afm76 0:e75be3142dd1 99