Saturday, June 3, 2017

Arduino + Joystick

Materiales
-1 Joystick
-1 Arduino
-5 cables macho-hembra
Proceso
El módulo Joystick tiene 5 pines: Key, Y, X, VCC y GND. Cada uno de estos pines deben ser conectados al arduino. X y Y a entradas analógicas: X a A0 y Y a A1. Key debe ser conectado a un pin digital: 2. VCC a 5v y GND a GND.

 Luego de conectar todos los pines hay que conectar el arduino a la computadora y escribir el siguiente programa:
int xPin = A1;
int yPin = A0;
int buttonPin = 2;

int xPosition = 0;
int yPosition = 0;
int buttonState = 0;

void setup() {
  // inicializar las comunicaciones en serie a 9600 bps:
  Serial.begin(9600); 
  
  pinMode(xPin, INPUT);
  pinMode(yPin, INPUT);

  //activar resistencia pull-up en el pin pulsador 
  pinMode(buttonPin, INPUT_PULLUP); 
   
}

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); // añadir un poco de retraso entre lecturas
}
Se lo manda a correr y se abre el monitor serie para observar las lecturas que tiene el arduino acerca del movimiento del joystick.
Resultados
Gracias al monitor serie se pudo observar que:
-Cuando el valor X es 523 y Y es 516, se encuentra neutro.
-Cuando X<0 se mueve hacia la izquierda
-Cuando Y<0 se mueve hacia abajo
-Cuando X>0 se mueve a la derecha
-Cuando Y>0 se mueve hacia arriba
-Punto máximo de X y Y es 1023
-Si se presiona el botón el valor cambia de 1 a 0
Reflexión
El joystick es analógico y debe proporcionar lecturas más precisas que las simples palancas direccionales. Además, puede pulsar el joystick hacia abajo para activar un pulsador.
Para obtener lecturas precisas hay que usar el comando INPUT_PULLUP.

No comments:

Post a Comment