Joystick Arduino

Introducción al Joystick para Arduino

Principio de funcionamiento

El joystick para Arduino es un mando analógico similar a los que posee el Dualshock de la Play Station, este dispositivo nos permite tres entradas, dos variables analógicas que controlan la posición en X y en Y y una digital al pulsar el botón. Las aplicaciones pueden ser tantas como imaginemos desde controlar cualquier robot, incluso crear música o como driver para pantallas LCDs.

Aquí mostraremos un pequeño programa para configurar y obtener los valores de dicho dispositivo.

Joystick Arduino
Joystick analogico para Arduino

 

Conexionado del Joystick

Dispone de cinco pines dos de alimentación y tres que serán las salidas.

  • GND: Al GND de Arduino.
  • +5V: Alimentación, cinco 5V Arduino.
  • VRx: Salida Analógica del eje X 0-5V, estando en 2,5V cuando se encuentra centrado
  • VRy: Salida analógica del eje Y, similar a la anterior.
  • SW: (Switch) 0 generalmente y 1 al pulsar el botón central.

Características del Joystick Analógico

Tensión de Trabajo5V DC
Dimensiones4.0 cm x 2.6 cm x 3.2 cm

 

Conexión del Joystick analógico para Arduino

Diseño de prototipado del Joystick con Arduino Mega

Prototipado del Joystick
Ejemplo de conexionado del Joystick Analógico para Arduino

Esquema eléctrico de Joystick con un Arduino Mega

Esquema eléctkrico para el Joystic
Esquema eléctrico del Joystick analógico para Arduino Mega

Programación del Joystick

Explicación Previa

Como podemos observar en el conexionado, alimentamos nuestro Joystick usando la salida +5V de Arduino y la GND, posteriormente conectamos los valores horizontal y vertical (o VRx y VRy según fabricante) a la entrada analógica 0 y 1 de nuestro Arduino Mega, hemos usado el pin digital 8 como entrada para el botón central.

Código

 /*
Lectura del Joystick analogico para Araduino
*/
int analogInputPinX   = 0; // Pin de entrada Analogica del eje X
int analogInputPinY   = 1; // Pin de entrada Analogica de la psoocion 
int digitalInputPin  = 8; // Pin de entrada pulsacion del boton central

int wait = 1000; 
long analogInputValX;
long analogInputValY;
int digitalInputVal;

void setup()
{
  pinMode(analogInputPinX,   INPUT);
  pinMode(analogInputPinY,   INPUT);
  pinMode(digitalInputPin,   INPUT);
    
  Serial.begin(9600);  
}

void loop()
{
  analogInputValX = analogRead(analogInputPinX);
  analogInputValY = analogRead(analogInputPinY);
  digitalInputVal = digitalRead(digitalInputPin);
  
      Serial.print("Boton central ");
      Serial.print(digitalInputVal);
      Serial.print(" eje X ");
      Serial.print(analogInputValX);    
      Serial.print(" eje Y ");
      Serial.print(analogInputValY);    
      Serial.println(" ");
   
  delay(wait); // Pausa para retormar el bucle
}


Una vez programado veremos los cambios en el monitor serial.

Vídeo de funcionamiento

Fuente: goodliffe

Entre otras cosas hago proyectos y doy cursos de Arduino.

 Comprar JoyPad para Arduino

¿Necesitas comprar un JoyPad para tus proyectos de Arduino? Pincha aquí para ver nuestra selección de productos.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>