KY-023 Modulo de Joystick XY de doble Eje con Pulsador para ARduino

https://hifisac.com/web/image/product.template/1570/image_1920?unique=7112baa
(0 reseña)
SKU: KY023

S/ 4.50 4.5 PEN S/ 4.50 IGV Incluido

S/ 4.50 IGV Incluido

No está disponible para venta

    Esta combinación no existe.

    Disponible el: 11/12/2025
    Sin existencias.
    Correo electrónico inválido
    Te avisaremos cuando el producto vuelva a estar disponible.
    Agregado a su lista de deseos

    Términos y Condiciones
    Sobre Garantía y Devoluciones

    Funcionamiento Interno del KY-023

    El KY-023 está inspirado en los joysticks de los controles de PlayStation 2. Internamente, contiene:

    • Dos potenciómetros de 10kΩ colocados en ángulo recto para detectar el movimiento en los ejes X e Y.
    • Un interruptor mecánico que se activa al presionar el joystick hacia abajo (eje Z).
    • Un resorte central que devuelve el joystick a su posición neutral (centro).

    Cuando mueves el joystick:

    • Cambia la resistencia de los potenciómetros.
    • Esto genera una variación de voltaje analógico entre 0 y 5V (en Arduino, se traduce como valores entre 0 y 1023).
    • El botón (SW) genera una señal digital: LOW (0) cuando se presiona, HIGH (1) cuando está libre.
    Tabla Técnica
    Parámetro Valor / Descripción
    Modelo KY-023
    Tipo de señal Analógica (VRX, VRY) + Digital (SW)
    Rango de voltaje 3.3V – 5V
    Potenciómetros 2 × 10kΩ (eje X e Y)
    Botón pulsador Interruptor mecánico (eje Z)
    Pines VCC, GND, VRX, VRY, SW
    Dimensiones del módulo 2.6 cm × 3.4 cm
    Posición central ~512 en ambos ejes (VRX y VRY)
    Compatibilidad Arduino Uno, Mega, Nano, ESP32, Raspberry Pi, etc.
    Aplicaciones comunes Robótica, videojuegos, control de servos, navegación de interfaces, cámaras móviles
    Interpretación de Señales
    Movimiento del joystick Valor VRX Valor VRY
    Centro ~512 ~512
    Izquierda 0 ~512
    Derecha 1023 ~512
    Arriba ~512 0
    Abajo ~512 1023

    El botón SW se interpreta como:

    • LOW (0) → Presionado
    • HIGH (1) → No presionado
    Código Arduino
    #define VRX_PIN A0
    #define VRY_PIN A1
    #define SW_PIN 2
    
    void setup() {
      Serial.begin(9600);
      pinMode(SW_PIN, INPUT_PULLUP);
    }
    
    void loop() {
      int x = analogRead(VRX_PIN);
      int y = analogRead(VRY_PIN);
      bool pressed = digitalRead(SW_PIN) == LOW;
    
      Serial.print("X: "); Serial.print(x);
      Serial.print(" | Y: "); Serial.print(y);
      Serial.print(" | Botón: "); Serial.println(pressed ? "Presionado" : "Libre");
    
      // Ejemplo de acción: si se mueve hacia la derecha
      if (x > 800) {
        Serial.println("→ Movimiento hacia la derecha");
      }
    
      delay(100);
    }
    

    Este código no solo lee los valores, sino que también interpreta acciones específicas. Puedes expandirlo para controlar motores, LEDs o servos.

    Disclaimer

    La información técnica aquí presentada proviene de fuentes especializadas como Tricky Circuit, Arduino Maker Space y ArduinoModulesInfo. Aunque se ha verificado cuidadosamente, los valores pueden variar según el entorno, calidad del módulo y configuración del microcontrolador. Se recomienda realizar pruebas en tu propio circuito antes de integrarlo en proyectos finales.