Conecta un joystick analógico a Arduino en 3 simples pasos
- 2 minsEn este breve post, te compartiré cómo conectar un joystick analógico a tu placa Arduino UNO en tres simples pasos. Para esto, necesitaremos:
- 1x Arduino UNO (Link a Steren)
- 1x Joystick analógico para Arduino (Link a Steren)
- 5x Cables Dupont macho-hembra (Link a Steren)
1. Sobre el joystick
El joystick analógico es similar a dos potenciómetros conectados entre sí, uno para el movimiento vertical (eje Y) y otro para el movimiento horizontal (eje X); también tiene un switch de selección.
El Arduino UNO o cualquier otra placa Arduino que use ATmega328 como microcontrolador tiene una resolución ADC de 10 bits. Por lo tanto, los valores en cada canal analógico pueden variar de 0
a 1023
. Al conectar el VRx
a A0
y VRy
a A1
, las entradas analógicas deben mostrar los valores como se muestra en la siguiente imagen.
La posición inicial para el joystick es en (x, y) = (511, 511)
. Si el stick se mueve en el eje X de un extremo al otro, los valores de X
cambiarán de 0
a 1023
y sucederá algo similar cuando se mueva a lo largo del eje Y. De esta forma, se puede generar cualquier combinación de valores entre 0
y 1023
para cada coordenada.
2. Conectando el circuito
Ahora, sólo necesitaremos conectar el circuito como se muestra el siguiente diagrama:
Nota que las conexiones son como sigue a continuación:
Arduino | Joystick | |
---|---|---|
GND | ➡️ | GND |
5V | ➡️ | +5V |
A0 | ➡️ | VRx |
A1 | ➡️ | VRy |
2 | ➡️ | SW |
3. Verifica y sube el código a tu Arduino
Una vez conectado el circuito, podemos compilar el código utilizando nuestro IDE de Arduino.
El código es el siguiente:
Asegúrate de conectar tu Arduino y escoger el puerto correcto, con esto, puedes verificar que el código compile correctamente y posterior a ello subirlo a tu Arduino…
¡Listo!
Con esto podrás abrir la consola y verificar que se imprimen las posiciones (xPosition, yPosition)
después de ser mapeadas a (0, 255)
.
¿Notaste que no utilizamos el botón de switch? Como reto, ¿podrías definirlo en su respectivo puerto e imprimir su valor?
¡Cualquier cosa, te leo en los comentarios! 🤙🏼