¿Qué es Módulo KY-023 Sensor JoyStick?
El Módulo KY-023 Sensor JoyStick es un dispositivo electromecánico consta de dos potenciómetros en un ángulo de 90 grados, lo que se requiere de 2 pines analógicos para realizar la interfaz con cualquier tarjeta de desarrollo: Arduino, ESP32, ESP8266, etc.
¿Para qué sirve?
Este elemento te permite controlar y manejar determinados aparatos electrónicos. Normalmente se utilizan para proyectos robóticos en el cual se necesitan para la movilidad analógica de las articulaciones de un brazo robótico. El Módulo Joystick, es más utilizado para proyectos de robótica y control de dispositivos RF(Radio Frecuencia)NRF24L01.
Características del módulo KY-023
Este módulo consta de dos potenciómetros de 10kΩ colocados perpendicularmente para controlar los ejes X e Y cambiando la resistencia con el movimiento del joystick. Un botón pulsador se activa cuando el joystick se empuja hacia abajo en el eje Z. Tiene 5 pines.
Especificaciones:
- Módulo: JoyStick biaxial XY (KY-023)
- Voltaje de alimentación: 3.3 V a 5V
- Salida: Analógica(X,Y) y Digital(Z)
- Número de potenciómetros: 2 de 10Kohm.
- Pulsador central normalmente abierto.
- Dimensiones: 40mm x 26mm x 32 mm
- Conectores: +5Vcc - GND - VRx - VRy - SW
- Peso: 14 g
Conexión del módulo KY-023 con Arduino
Usaremos un par de pines analógicos en el Arduino para leer los valores de los potenciómetros del joystick y un pin digital para leer los valores del interruptor.
Código
El siguiente código de Arduino leerá continuamente los valores del botón y los potenciómetros del joystick.
Mover el joystick hacia arriba/abajo aumentará/disminuirá los valores de X y mover el joystick hacia la izquierda/derecha aumentará/disminuirá los valores de Y, estos valores oscilan entre 0 y 1023. Empuje el joystick hacia abajo para activar el botón del eje Z.
int value = 0;
void setup(){
//pinMode(A0, INPUT);
//pinMode(A1, INPUT);
pinMode(7, INPUT_PULLUP);
Serial.begin(9600);
}
void loop(){
value = analogRead(A0);
Serial.print("X:");
Serial.print(value, DEC);
value = analogRead(A1);
Serial.print(" | Y:");
Serial.print(value, DEC);
value = digitalRead(7);
Serial.print(" | Button:");
Serial.println(value, DEC);
delay(100);
}