Los joysticks analógicos están bárbaros para sumar un control preciso a tus proyectos de electrónica. En este tutorial vamos a aprender cómo conectar y usar el módulo de joystick analógico con tu placa Elegoo de forma súper simple.
Componentes necesarios
(1) x Elegoo Mega 2560 R3
(1) x Módulo de joystick
(5) x Cables H-M (hembra a macho)
Introducción al componente
El módulo tiene 5 pines: VCC, Ground (tierra), X, Y y Key. Ojo que las etiquetas en tu módulo pueden ser un poco distintas según el fabricante, pero la lógica es la misma. La palanca es analógica y te va a dar lecturas mucho más exactas que los joysticks direccionales comunes que usan botones mecánicos. Además, podés presionar la palanca hacia abajo (en el mío hay que darle con ganas) para usarla como un botón de selección.
Para captar el movimiento, usamos los pines analógicos de la placa que leen la data de los ejes X e Y, mientras que para el botón usamos un pin digital. El pin Key se conecta a tierra cuando lo apretás. Para que no tire valores locos, el pin del botón tiene que estar conectado a VCC mediante una resistencia pull-up; lo bueno es que podés usar las que ya vienen integradas en los pines de la placa.
Esquema de conexión y diagrama de cableado
Fijate bien en el manual el orden de los cables para no mandar fruta. Conectá cada pin a su entrada correspondiente en la 2560 asegurándote de que los cables DuPont queden bien firmes.
Código
Hacé clic en el link de abajo para bajarte el programa a tu compu y dale doble clic para abrirlo una vez que termine la descarga. Antes de abrir el archivo, asegurate de tener instalado el IDE de Arduino y los drivers de la placa 2560. Si tenés alguna duda con esto, mirá la "parte 1" de la guía para ver el paso a paso.
📥 DESCARGAR analog_joystick.ZIP
Con este código, la placa va a leer la data del joystick (ejes y botón) y te va a mostrar todo en el monitor serie del IDE de Arduino. Una vez que cargues el código, abrí el monitor serie para ver los resultados en tiempo real. Si no sabés cómo usarlo, fijate en el tutorial 4 de la parte 2.
Configuración de pines
const int SW_pin = 2: Define el pin digital D2 para el switch del joystick.
const int X_pin = 0: Define el pin analógico A0 para el eje X.
const int Y_pin = 1: Define el pin analógico A1 para el eje Y.
Usamos const int para que estos valores queden fijos y no nos gasten memoria al divino botón.
Función setup()
Acá es donde arranca todo. Con pinMode(SW_pin, INPUT_PULLUP) activamos la resistencia interna para el botón. Con Serial.begin(9600) iniciamos la comunicación con la compu para poder ver la data en pantalla.
Función loop()
Es el bucle que lee los datos sin parar. digitalRead chequea si el botón está apretado (da 0) o suelto (da 1). analogRead mide la posición de los ejes en un rango de 0 a 1023. Le pusimos un delay(1000) para que las lecturas se actualicen cada un segundo y no te marees con tantos números pasando rápido.
Entrada digital con resistencia pull-up
Configuramos el pin del switch en modo INPUT con el pull-up activado. Esto significa que cuando el botón está suelto, lee HIGH (1), y cuando lo apretás, lee LOW (0). Está bárbaro porque te ahorrás de andar soldando resistencias externas y el circuito queda mucho más limpio.
DigitalWrite vs AnalogWrite
Estas son dos funciones clave en Arduino: digitalWrite() se usa para poner un pin en HIGH (5V) o LOW (0V), ideal para prender LEDs o activar relés. Por otro lado, analogWrite() sirve para generar una señal PWM (Modulación por Ancho de Pulso).
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.