Revista Informática

23.- Joystick

Publicado el 13 diciembre 2013 por Practicandoarduino @PracticaArduino

En este tutorial vamos a tener nuestra primera toma de contacto con un Joystick en Arduino, lo único que haremos sera mostrar por el Serial monitor la coordenada (x,y) y el estado del pulsador.

Un joystick es un dispositivo que dispone de una pieza central que pivota sobre su base y permite informar del ángulo de inclicanción o desplazamiento lineal, normalmente la información que da se refiere a 2 ejes.
El pulsador es digital, pero el resto es analógico, por lo que al pivotar recibiremos un valor para el eje x y otro para el eje y, ambos oscilando entre 0 y 1023, si no tocamos el joystick este debería dar un valor medio cercano a 512, digo cercano porque depende de su calibración lo dará más o menos cercano.

Que necesitamos:

1 Placa Arduino Uno
1 Módulo Joystick
Cables para realizar las conexiones

No hay mucho que explicar aquí, los pines vienen marcados así que el de vcc va a 5V, tierra a GND, la patilla sw va al pin digital y las encargadas de los valores del eje X y eje Y van a dos pines analógicos, tal que así:

joystick1_bb

Código fuente:

const byte pinX = A0;
const byte pinY = A1;
const byte pinButton = 7;
void setup(){
  Serial.begin(9600);
  pinMode(pinButton,INPUT); 
  digitalWrite(pinButton,HIGH);
  pinMode(pinX,INPUT); 
  pinMode(pinY,INPUT); 
}
 
void loop (){
  int coordX = analogRead(pinX);
  int coordY = analogRead(pinY);
  boolean buttonState = digitalRead(pinButton);
  Serial.print("Coordenada X: ");
  Serial.print(coordX);
  Serial.print(" Coordenada Y: ");
  Serial.print(coordY);
  Serial.print(" Pulsador: ");
  Serial.print(buttonState);
  Serial.println(" ");
}

Lo primero que hacemos en el void setup() es declarar los pines que vamos a usar y abrir la comunicación serie y en el void loop() leemos los pines y mostramos su valor en el monitor serial, si no os gusta que muestre un valor de 0 a 1023 podeis mapearlo a vuestro gusto.



style="display:inline-block;width:728px;height:15px"
data-ad-client="ca-pub-3868159888315364"
data-ad-slot="7639712738">


Volver a la Portada de Logo Paperblog