Ir al contenido

2.12 Joystick

Los joysticks analógicos son una forma bárbara de sumar control a tus proyectos. En este tutorial vamos a aprender cómo usar el módulo de joystick analógico con tu placa ESP32. Descripción general El módulo tiene 5 pines: VCC, Ground, X, Y …

Los joysticks analógicos son una forma bárbara de sumar control a tus proyectos. En este tutorial vamos a aprender cómo usar el módulo de joystick analógico con tu placa ESP32.

Descripción general

El módulo tiene 5 pines: VCC, Ground, X, Y y Key. Tené en cuenta que las etiquetas en el tuyo pueden ser un poco distintas según el fabricante. El stick es analógico y te va a dar lecturas mucho más precisas que los joysticks direccionales simples que usan botones o interruptores mecánicos. Además, podés presionar el joystick hacia abajo para activar un pulsador de selección.

Componentes requeridos

(1) x Elegoo ESP32
(1) x Módulo Joystick
(2) x Protoboard de 400 puntos
(5) x Cables DuPont Hembra-Macho

Introducción al componente

Tenemos que usar pines analógicos de la placa para leer los datos de los ejes X e Y, y un pin digital para el botón. El pin Key se conecta a tierra cuando presionás el joystick y queda "flotando" cuando no lo hacés. Para obtener lecturas estables, usamos las resistencias pull-up integradas en los pines digitales, configurándolos como entradas.

Esquema de conexión y cableado

Necesitamos 5 conexiones para el joystick: Key, Y, X, Voltaje y Tierra. Los ejes Y y X son señales analógicas, mientras que Key es digital. Si no necesitás usar el interruptor, podés conectar solamente 4 pines.

Código

Podés hacer clic en el enlace para descargar el programa a tu equipo. Antes de abrirlo, asegurate de tener instalado el Arduino IDE y los controladores correspondientes para la placa ESP32. Si tenés dudas sobre este proceso, fijate en el capítulo "Parte 1" de la documentación.

📥 DESCARGAR analog_joystick.ino

Con este código, el ESP32 leerá el estado del switch y la posición de los ejes, mostrando los resultados en el monitor serie. No te olvides de configurar la velocidad a 9600 baudios para ver los datos correctamente.

Configuración de pines y funciones

En el código, definimos los pines 34 y 35 para las entradas analógicas de los ejes y el pin 18 para el switch digital. Usar constantes ayuda a que el programa ocupe menos memoria y sea más claro.

La función setup() inicializa el sistema, configura el pin del switch como entrada y activa la resistencia pull-up interna. También inicia la comunicación serie. Por otro lado, la función loop() se encarga de leer continuamente los valores: digitalRead() nos dice si el botón está presionado (0) o suelto (1), mientras que analogRead() nos da la posición de los potenciómetros (un valor entre 0 y 4095 para el ESP32).

Entrada digital con pull-up

Al configurar el pin con la resistencia pull-up interna, simplificamos el cableado porque no necesitás agregar resistencias externas. Cuando el switch no está presionado, el pin lee un estado ALTO (1), y cuando lo apretás, cambia a un estado BAJO (0).

Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.

Fuente: Adaptado al español desde el wiki oficial (licencia CC BY-SA). Revisión técnica por equipo Breva.
25%
Tecnología real Impresión 3D en Rosario FilAr fabricado por nosotros Probá antes de comprar Soporte técnico local Academia Mini Makers Robótica y electrónica Showroom tecnológico Empresas y escuelas Asesoramiento real No somos marketplace Somos makers Kits para empezar Repuestos y mantenimiento Envío a todo el país Factura A para empresas Demos los sábados Tu proyecto empieza acá Tecnología real Impresión 3D en Rosario FilAr fabricado por nosotros Probá antes de comprar Soporte técnico local Academia Mini Makers Robótica y electrónica Showroom tecnológico Empresas y escuelas Asesoramiento real No somos marketplace Somos makers Kits para empezar Repuestos y mantenimiento Envío a todo el país Factura A para empresas Demos los sábados Tu proyecto empieza acá