Neste artigo veremos:
O que você vai precisar
1 Modulo Joystick de 2 eixos – KY-023.
1 resistor de 10K (opcional
Fios (jumpers)
A Conexão
Este modelo possui 2 eixos e um push button (botão táctil), neste caso você deverá ligar da seguinte forma:
Vcc – 5v do Arduino
Gnd – Gns do Arduino
VRX (eixo X) – em algum pino Analógico (para se ter a leitura de 0 – 1023)
VRY (eixo Y) – em algum pino Analógico (para se ter a leitura de 0 – 1023)
SW (switch) – em algum pino digital (em pull up ou pull down – com resistores de 10K) ou usar a função INPUT_PULLUP do Arduino.
A programação
/*
Examplo criado para o modelo KY-023 (com 2 eixos e um push button)
Created: by Edson Sidnei Sobreira for HackEduca, 2017.
ASCII table: http://www.ascii-code.net/
*/
//Pinos do Arduino
#define joystick_button_pino 6
#define joystick_x_pino A0
#define joystick_y_pino A1
void setup() {
Serial.begin(9600);
pinMode(joystick_button_pino, INPUT_PULLUP); // Se houver resistor não declarar como Input_Pullup
}
void loop() {
int Eixo_X = analogRead(joystick_x_pino);
int Eixo_Y = analogRead(joystick_y_pino);
Eixo_Y = map(Eixo_Y, 0, 1023, 1023, 0); // inverte o lado do botão para X e Y marcarem 0 e 1023 na mesma direção.
int ValorButton = digitalRead(joystick_button_pino);
ValorButton = map(ValorButton, 0, 1, 1, 0); // inverte o valor recebido para que fique 1 quando pressionado
Serial.print("Bot"); Serial.write(227); Serial.print("o: ");
Serial.print(ValorButton);
Serial.print(" Eixo_X: ");
Serial.print(Eixo_X);
Serial.print(" Eixo_Y: ");
Serial.println(Eixo_Y);
delay(100); // atraso entre uma leitura e outra
}
Mixly










No Comments