Controla tus proyectos con Arduino y Joystick analógico


arduino-joystick

¿Qué es un joystick analógico?

Un joystick analógico es un sencillo controlador que podemos añadir a nuestros proyectos de electrónica y Arduino, que tiene la ventaja de proporcionar una cantidad de información superior a la que podríamos obtener simplemente con pulsadores.

Estos joystick son similares a las palancas de analógicas que tienen muchos mandos de videoconsolas u ordenadores, como el mando de Playstation 2, o Xbox, que se emplean cuando se necesita un control más suave y preciso del que es posible con los mandos digitales.

Si queréis aprender a usar Arduino con el mando de la Playstation 2 podéis consultar esta entrada

Anuncio:

Internamente los joystick están formados por un sistema de balancín con dos ejes ortogonales acoplados a dos potenciómetros. Estos potenciómetros realizan la medición de la posición de la palanca en ambos ejes.

Por otro lado, uno de los ejes está apoyado en un microrruptor, lo que permite detectar la pulsación de la palanca.

arduino-joystick-funcionamiento

Por tanto, los joystick facilitan una señal analógica para la posición de cada eje, más una señal digital para la detección de la pulsación del mando. Al disponer de la entrada en los ejes X e Y en forma analógica, podemos programar controles mucho más ricas y precisas de las que podríamos conseguir con un control digital todo/nada.

Por ejemplo, podemos aumentar la velocidad de movimiento de un brazo robótico cuanto mayor sea el valor de la medición, o hacer que un vehículo gire más o menos rápido. Si hiciéramos esto simplemente con pulsadores, sería imposible conseguir movimientos suaves, y el robot se movería “a saltos”.

Este tipo de joystick son dispositivos sencillos y cómodos de usar, y nos permiten añadir un control a nuestros proyectos. Por ejemplo, podemos usarlo para controlar un servo, un brazo robótico, una torreta con un laser, o incluso vehículos y robots completos.

Precio

Este tipo de Joystick analógicos son dispositivos baratos. Podemos encontrarlos por 0,75€ en vendedores internacionales de Ebay y Aliexpress.

arduino-joystick-componente

Esquema de montaje

El montaje de este tipo de dispositivos es sencillo. En primer lugar, alimentamos el módulo conectando Vcc y GND, respectivamente, a 5V y GND de Arduino.

Para la medida analógica en ambos ejes, conectamos las salidas VRx y VRy a dos entradas analógicas de Arduino.

Finalmente, si también queremos la señal digital del pulsador, conectamos la salida SW a una entrada digital de Arduino. Vamos a usas las resistencias de Pull-Up internas de Arduino, por lo que no es necesario resistencias adicionales.

El esquema de montaje del joystick quedaría de la siguiente forma

arduino-joystick-conexion

Mientras que el montaje, visto desde Arduino, sería el siguiente.

arduino-joystick-esquema

Ejemplos de código

El código para hacer funcionar el joystick es igualmente sencillo. Por un lado, leemos la posición de ambos potenciómetros mediante mediante las entradas analógicas.

Respecto al pulsador, usamos una entrada digital para leer el su estado.

Finalmente, mostramos la lectura por puerto serie. En un ejemplo real, en esta parte ejecutaríamos las acciones oportunas, como mover un servo, o un robot.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous Medir campos magnéticos con Arduino y sensor Hall lineal 49E
Next Reproducir sonidos con Arduino y un buzzer pasivo o altavoz
1000
3 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
newest oldest
weeberp

Me gusta mucho tu web y gracias por la licencia para compartir y trabajar con el material. Dicho lo anterior, creo que tienes mal el código cuando activa la resistencia pull-up, se lo estás activando al LED en vez de al botón del joystick.
Saludos.

luisllamas

¡Cierto! Arreglado. ¡Gracias por el aviso!

Miguel

Una pregunta de novato que tengo sobre la conexión del joystick.
La entrada de sw siempre tiene que ser a el pin digital numero nueve o lo puedo poner en el resto de pines?

cesar

pregunta, y si lo quiero hacer con motores esque ando buscando algo que me explique como mover un coche de cuatro ruedas con el joystick que debería hacer?