LECCIÓN 15: JOYSTICK

Introducción

En esta lección aprenderemos a utilizar un módulo de joystick.

Componentes

{Product:2000}{Product:256}{Product:1436}{Product:536}{Product:542}

Principio 

El módulo tiene 5 pines: Vcc, Ground, X, Y, Key /Select.

Ten en cuenta que las etiquetas en el tuyo pueden ser ligeramente diferentes, dependiendo de dónde obtuviste el módulo.

Fundamentalmente el joystick consta de dos potenciómetros y un interruptor de botón.

El joystick es analógico y debe proporcionar lecturas más precisas que simples joysticks "direccionales" que utilizan algunos tipos de botones, o interruptores mecánicos. Además, puede presionar el joystick hacia abajo para activar el pulsador "pulsar para seleccionar".

Tenemos que utilizar pines analógicos Arduino para leer los datos de los pines X /Y, y un pin digital para leer el botón/interruptor Key. 

Para obtener lecturas estables desde el pin Key /Select, debe estar conectado a través de una resistencia pull-up. Se pueden utilizar las resistencias incorporadas en los pines digitales Arduino.

 

Procedimiento 

Paso 1: Conecta el circuito como se muestra en el siguiente diagrama (asegurate de que los pines estén conectados correctamente aunque los caracteres no se muestren correctamente):

Paso 2: Programa (consulta el código de ejemplo en el CD o sitio web oficial)

int xPin = A1;

int yPin = A0;

int buttonPin = 2;

int xPosition = 0;

int yPosition = 0;

int buttonState = 0;

void setup() {

  // initialize serial communications at 9600 bps:

  Serial.begin(9600); 

  

  pinMode(xPin, INPUT);

  pinMode(yPin, INPUT);

  //activate pull-up resistor on the push-button pin

  pinMode(buttonPin, INPUT_PULLUP); 

  

  // For versions prior to Arduino 1.0.1

  // pinMode(buttonPin, INPUT);

  // digitalWrite(buttonPin, HIGH);

  

}

void loop() {

  xPosition = analogRead(xPin);

  yPosition = analogRead(yPin);

  buttonState = digitalRead(buttonPin);

  

  Serial.print("X: ");

  Serial.print(xPosition);

  Serial.print(" | Y: ");

  Serial.print(yPosition);

  Serial.print(" | Button: ");

  Serial.println(buttonState);

  delay(100); // add some delay between reads

}

Paso 3: Compila el programa

Paso 4: Graba el programa en Uno placa

Paso 5: Abre "herramienta-monitor", para ver los datos.