Módulo joystick KY-023: guía completa

La construcción Módulo de joystick KY-023 es un palanca de mando analógica similar a los que se usan en los controladores de juegos. Tiene Dos potenciómetros (ejes X e Y) y un interruptor pulsadorEste módulo se utiliza comúnmente con Arduino, Raspberry Pi y otros microcontroladores Para aplicaciones de control de movimiento, robótica y juegos.


🔹 1. Módulo de joystick KY-023 Pinout

La construcción Módulo KY-023 tiene 5 pins:

PinEtiquetaFunción
VCCEnergía Se conecta a 5V (o 3.3V)
GNDPolo a TierraTierra común para el circuito
VRXEje XProduce un Señal analoga (0-1023 en Arduino)
LIBREEje YProduce un Señal analoga (0-1023 en Arduino)
SWInterruptorResultados BAJO (0 V) cuando se presiona, ALTO (5 V) cuando se suelta

📌 Nota:

  • VRX y VRY es salidas analógicas y debe estar conectado a entrada analogica pina (A0, A1, etc.) en un Arduino.
  • SW es un salida digital y se puede conectar a cualquier entrada digital pin.

🔹 2. Cómo funciona el joystick KY-023

✅ Eje X e Y (salida analógica)

  • Dentro del joystick se encuentran dos potenciómetros, uno para cada eje.
  • Moviendo el joystick izquierda derecha or arriba abajo cambia la resistencia, generando una voltaje analógico.
PosiciónValor VRXValor VRY
Central~ 512~ 512
Izquierdo0~ 512
Derecho1023~ 512
Up~ 5120
Plumón~ 5121023

✅ Pulsador (Salida Digital)

  • Presionando el joystick cierra el interruptor (SW pin).
  • Se lee BAJO (0 V) Cuando se presiona y ALTA (5 V) cuando lanzado.

🔹 3. Conectando el KY-023 a Arduino

🛠 Componentes necesarios

  • 1x placa Arduino (Uno, Mega, Nano, etc.)
  • 1x Módulo de joystick KY-023
  • cables de puente

Diagrama de cableado

KY-023 PinArduino Pin
VCC5V
GNDGND
VRXA0
LIBREA1
SWD2

🔹 4. Código Arduino para leer valores del joystick

Este código dice Valores de los ejes X e Y y detecta pulsaciones de botones, mostrando los datos en el Monitor Serial.

#define VRX_PIN A0  // X-axis
#define VRY_PIN A1  // Y-axis
#define SW_PIN 2    // Switch button

void setup() {
    Serial.begin(9600);  // Start Serial Monitor
    pinMode(SW_PIN, INPUT_PULLUP); // Enable internal pull-up resistor
}

void loop() {
    int xValue = analogRead(VRX_PIN);  // Read X-axis
    int yValue = analogRead(VRY_PIN);  // Read Y-axis
    int buttonState = digitalRead(SW_PIN); // Read button state

    Serial.print("X: "); Serial.print(xValue);
    Serial.print(" | Y: "); Serial.print(yValue);
    Serial.print(" | Button: "); Serial.println(buttonState == LOW ? "Pressed" : "Released");

    delay(100);  // Small delay to avoid spamming Serial Monitor
}

📌 Explicación:

  • Lee VRX y VRY como valores analógicos (0-1023).
  • Lee SW como entrada digital (BAJO cuando se presiona).
  • Muestra valores en Monitor en serie.

🔹 5. Uso del KY-023 como controlador de juegos simple

Puedes usar el joystick para controlar un servo, un LED o incluso un robot.

Ejemplo: mover un servo con joystick

#include <Servo.h>

Servo myServo;
#define VRX_PIN A0  // X-axis for servo control

void setup() {
    myServo.attach(9);  // Servo on pin 9
}

void loop() {
    int xValue = analogRead(VRX_PIN); // Read joystick X-axis
    int servoAngle = map(xValue, 0, 1023, 0, 180); // Convert to servo angle
    myServo.write(servoAngle); // Move servo
    delay(10);
}

🔹 6. Aplicaciones del joystick KY-023

Robótica – Controlar robots mediante gestos con las manos.
Dispositivos de juego – Joystick DIY para juegos.
Control de movimiento horizontal y vertical de la cámara – Mueva los servos para un Gimbal de cámara.
Vehículos de control remoto - control motores y direccion.


🔹 7. Consejos para solucionar problemas

  • Si los valores saltar al azarverificar conexiones sueltas.
  • Si El botón no funciona, Trate de usando INPUT_PULLUP in pinMode(SW_PIN, INPUT_PULLUP);.
  • If Los valores X o Y están bloqueados, comprobar si el joystick vuelve al centro.

🎯 Cierre

La construcción Módulo de joystick KY-023 es un dispositivo de entrada versátil que funciona con Arduino, Raspberry Pi y otros microcontroladores. Proporciona control de movimiento analógico y botón incorporado, haciéndolo perfecto para Robótica, juegos y proyectos interactivos.

📡Transmite la señal: amplifica la conexión.

Deje un comentario