Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@4:c35ebfe0669d, 2021-04-07 (annotated)
- 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?
User | Revision | Line number | New 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 |