Sz_Insper / Mbed 2 deprecated Joystick-MH

Dependencies:   mbed

Committer:
afm76
Date:
Wed Apr 07 18:23:13 2021 +0000
Revision:
4:c35ebfe0669d
Parent:
3:3bcd9a1457fa
Joystick MH (VRX,VRY) to NUCLEO-F103RB (A0, A1), and SW to (PC_13)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
afm76 0:97c5ca9150c7 1 // O presente programa trabalha com as entradas analógicas (A0 e A1)
afm76 0:97c5ca9150c7 2 // dediccadas à leitura dos potênciometros do JOYSTICK modelo MH
afm76 1:a6f92e40a3f9 3 // (VRX = A0, VRY = A1, SW = PC_13, GND = GND, +5V = 3V3 NUCLEO)
afm76 0:97c5ca9150c7 4 // AFM 2021-04-07
afm76 0:97c5ca9150c7 5
afm76 0:97c5ca9150c7 6 #include "mbed.h"
afm76 0:97c5ca9150c7 7
afm76 0:97c5ca9150c7 8 DigitalIn SW(PC_13);
afm76 0:97c5ca9150c7 9
afm76 0:97c5ca9150c7 10 AnalogIn VRX(A0);
afm76 0:97c5ca9150c7 11 AnalogIn VRY(A1);
afm76 0:97c5ca9150c7 12
afm76 0:97c5ca9150c7 13 DigitalOut myled(LED1);
afm76 0:97c5ca9150c7 14
afm76 0:97c5ca9150c7 15 Serial pc(USBTX, USBRX);
afm76 0:97c5ca9150c7 16
afm76 0:97c5ca9150c7 17 int main() {
afm76 0:97c5ca9150c7 18
afm76 0:97c5ca9150c7 19 int i;
afm76 0:97c5ca9150c7 20 int x,y;
afm76 0:97c5ca9150c7 21 float xv,yv;
afm76 0:97c5ca9150c7 22
afm76 0:97c5ca9150c7 23 x,y,i = 0;
afm76 0:97c5ca9150c7 24
afm76 0:97c5ca9150c7 25 pc.baud(9600);
afm76 0:97c5ca9150c7 26
afm76 0:97c5ca9150c7 27 pc.printf("\e[H\e[2J");
afm76 0:97c5ca9150c7 28 //pc.printf("\33[H\33[2J");
afm76 0:97c5ca9150c7 29 //printf(“\e[1;1H\e[2J”);
afm76 0:97c5ca9150c7 30
afm76 1:a6f92e40a3f9 31 pc.printf("\t Hello World!!! - Здравствуйте Мир!!! - 大家好!!!\n\r");
afm76 2:d0fbced95564 32 pc.printf("\n\rWelcome to the world of ADC (A0 and A1) conected to the MH Joystick \n\r- Digital In (PC_13) to Joystick SWitch included\n\r");
afm76 4:c35ebfe0669d 33 pc.printf("\n\r\t\t\t\t!!!ATTENTION!!! \n\r=> Joystick +5V pin MUST be connected to NUCLEO-F103RB 3V3 pin to avoid damaging NUCLEOs ADC!!!\n\r");
afm76 3:3bcd9a1457fa 34 pc.printf("\n\r%s\t\t\t\t%s\t\t\t\t%s\n\r","Eixo X", "Eixo Y", "Tecla SW");
afm76 0:97c5ca9150c7 35
afm76 0:97c5ca9150c7 36 while(1) {
afm76 0:97c5ca9150c7 37
afm76 0:97c5ca9150c7 38 // pc.printf("Eixo X = %f \n", VRX.read_u16());
afm76 0:97c5ca9150c7 39 // pc.printf("VRX = %f \t", VRX.read());
afm76 0:97c5ca9150c7 40 // pc.printf("VRY = %f \t", VRY.read());
afm76 0:97c5ca9150c7 41
afm76 4:c35ebfe0669d 42 xv = VRX.read()*3.300; //lê valor da entrada analógica de 0,0 a 1,0 = full ADC conversion range
afm76 4:c35ebfe0669d 43 yv = VRY.read()*3.300; //e converte para faixa de 0,0 a 3,3V da alimentação
afm76 0:97c5ca9150c7 44
afm76 2:d0fbced95564 45 x = VRX.read()*255; //Converte uma leitura do ADC em float para formato int e armazena na variável x
afm76 2:d0fbced95564 46 y = VRY.read()*255; //Converte uma leitura do ADC em float para formato int e armazena na variável y
afm76 2:d0fbced95564 47
afm76 3:3bcd9a1457fa 48 pc.printf("VRX = %1.3fV (%03dd - 0x%02Xh)\t", xv, x, x);
afm76 3:3bcd9a1457fa 49 pc.printf("VRY = %1.3fV (%03dd - 0x%02Xh)\t", yv, y, y);
afm76 0:97c5ca9150c7 50
afm76 4:c35ebfe0669d 51 if (SW == 0) { // Botão usuário pressionado
afm76 4:c35ebfe0669d 52 myled = 1;
afm76 4:c35ebfe0669d 53 wait(0.1);
afm76 4:c35ebfe0669d 54 myled = 0;
afm76 0:97c5ca9150c7 55 i++; }
afm76 0:97c5ca9150c7 56
afm76 0:97c5ca9150c7 57 pc.printf("SW = %d\r",i);
afm76 0:97c5ca9150c7 58
afm76 4:c35ebfe0669d 59 wait(0.1);
afm76 0:97c5ca9150c7 60
afm76 0:97c5ca9150c7 61 }
afm76 0:97c5ca9150c7 62 }
afm76 0:97c5ca9150c7 63