Módulo Joystick Analógico KY-023 para Arduino y ESP32
Añade control multidireccional preciso a tus proyectos de electrónica con el Módulo Joystick Analógico KY-023. Equipado con dos potenciómetros de 10kΩ (ejes X e Y) y un pulsador integrado (eje Z), es el componente ideal para controlar brazos robóticos, navegar por menús en pantallas LCD o crear tus propios mandos de videojuegos.
¿Cómo Funciona el KY-023?
El módulo contiene dos potenciómetros de 10kΩ montados en ángulo de 90° que detectan el movimiento en los ejes X e Y. Al mover la palanca, la resistencia interna varía proporcionalmente, produciendo variaciones de voltaje entre 0V y el voltaje de alimentación. El ADC del microcontrolador convierte estas señales en valores de 0 a 1023 (resolución de 10 bits). En reposo, la posición central entrega aproximadamente 512 en ambos ejes.
Especificaciones Técnicas
- Modelo: KY-023
- Voltaje de operación: 3.3V a 5V DC
- Salidas: 2 analógicas (ejes X, Y) + 1 digital (pulsador Z)
- Resistencia de potenciómetros: 10 kΩ
- Dimensiones: 34mm × 26mm × 32mm (aprox.)
Configuración de Pines
- GND: Tierra (ground)
- +5V (VCC): Alimentación (3.3V o 5V)
- VRx: Salida analógica eje X → Pin A0
- VRy: Salida analógica eje Y → Pin A1
- SW: Pulsador digital → Pin digital con INPUT_PULLUP
Código de Ejemplo
const int VRX = A0;
const int VRY = A1;
const int SW = 7;
void setup() {
Serial.begin(9600);
pinMode(SW, INPUT_PULLUP);
}
void loop() {
int x = analogRead(VRX); // 0-1023
int y = analogRead(VRY); // 0-1023
int btn = digitalRead(SW); // LOW cuando se presiona
Serial.print("X: "); Serial.print(x);
Serial.print(" | Y: "); Serial.print(y);
Serial.print(" | BTN: "); Serial.println(btn == LOW ? "PRESIONADO" : "libre");
delay(200);
}
Aplicaciones
- Control de brazos robóticos: Mapeo proporcional del movimiento a servomotores
- Sistemas Pan/Tilt: Control de cámaras de vigilancia en dos ejes
- Navegación de menús: Control de pantalla LCD I2C con selección por pulsador
- Vehículos RC y drones: Transmisión de control via WiFi con ESP32
- Retro gaming: Controles para juegos tipo Snake, Pong o Tetris en Arduino
Guías y proyectos con el joystick
- Brazo robótico con Arduino: contrólalo con este joystick
- Vehículo RC con Arduino
- ¿Qué necesito para hacer un robot?
Preguntas frecuentes
¿Cómo se lee en Arduino?
Los ejes X e Y entregan señal analógica (dos analogRead()) y el botón central es digital. En reposo lee ~512; los extremos son 0 y 1023.
¿Sirve para controlar servos?
Es su uso clásico: mapea el valor del eje al ángulo del servo con map() y tienes control proporcional de un brazo robótico o cámara pan-tilt.
¿Compatible con ESP32?
Sí — usa pines ADC1 (GPIO 32-39) si también usas WiFi.
💡 Combínalo con: un Arduino Uno y servos para tu primer brazo robótico.