arduino

Joystick con Arduino: conexión y lectura

En este post te voy a mostrar cómo usar un joystick en Arduino para leer la dirección del joystick así como para saber si el botón que tiene es presionado o no.

Leeremos los dos ejes, calibraremos la posición del Arduino y sabremos hacia cuál lado está inclinado.

¿Cómo obtener los valores del joystick?

El joystick o palanca tiene dos ejes, el eje x y el eje y. Para saber la dirección de cada uno leemos su valor analógico con digitalRead.

Cuando el joystick está en su estado normal, el valor está en aproximadamente 500, en cambio, cuando está en su punto límite está en 0 o 1023.

En resumen, 0 es que está en el límite inferior (por ejemplo izquierda), 500 es que está sin moverse y 1023 es que está en el límite superior (por ejemplo, la derecha).

El botón

Por otro lado el botón es una lectura digital, ya que es un 0 o un 1. En mi caso, cuando el botón está presionado se lee un 0, es decir, está negado.

Circuito

Ahora que hemos visto cómo funciona de manera general vamos a conectar. Necesitamos conectar los ejes a una entrada analógica, normalmente vienen prefijados con la A, por ejemplo, A0.

Después, el botón es conectado a una entrada digital. No recomiendo el 0 ni el 1 pues ahí se usa para RX y TX, así que podemos usar el 2.

Un modelo del circuito para usar el Arduino con el joystick es:

Joystick Con Arduino

Lectura de valores – Código

Veamos nuestro primer acercamiento. Conectamos y colocamos el siguiente código:

See the gist on github.

Simplemente estamos depurando los valores. Abre el monitor serial y cuando todo esté normal podría mostrarse algo así:

Leyendo valores de joystick

Como lo dije, los valores normales están cerca de 500. Pero cuando uno de ellos se mueve, o se presiona el botón, la lectura cambia:

Moviendo ejes de Joystick y leyendo con Arduino

Izquierda, derecha, arriba y abajo

Ahora podemos establecer umbrales y calibrar el joystick como deseemos. Podemos hacer unas simples comparaciones para saber si es izquierda, derecha, arriba o abajo.

También podemos saber si el botón está pulsado. El código queda así:

See the gist on github.

Como ves, son simples comparaciones. En este caso si el valor es mayor que 1000 suponemos que está en determinada dirección (tenemos el umbral de 1000 a 1023) y si es menor que 200 lo mismo.

La salida es:

See the gist on github.

Aclaración sobre la calibración

En el código expuesto con anterioridad podrás ver que estoy utilizando el eje X para saber si es arriba o abajo, cuando sabemos que según el plano cartesiano, el eje X debería medir izquierda y derecha.

Pues bien, todo esto depende de cómo estará ubicado tu joystick y cómo se le será presentado al usuario.

Te invito a leer más sobre Arduino en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

3 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

3 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

3 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

4 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

2 semanas hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

2 semanas hace

Esta web usa cookies.