Sz_Insper
/
Buttons_Shield
Testa o Joystick Shield V2.4
main.cpp@1:150923afdc8a, 2018-03-18 (annotated)
- Committer:
- afm76
- Date:
- Sun Mar 18 22:06:29 2018 +0000
- Revision:
- 1:150923afdc8a
- Parent:
- 0:e75be3142dd1
atualizado
Who changed what in which revision?
User | Revision | Line number | New 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 |