Como utilizar el módulo Joystick con Arduino

Os presentamos un pequeño módulo de joystick para Arduino, muy similar a la de los sticks controladores analógicos de los pulgares de la PlayStation 2. El módulo es muy fácil de usar con un Arduino UNO y por muy poco dinero. Existen diferentes versiones disponibles en el mercado, pero básicamente funcionan de la misma manera.

Información general del módulo Joystick para Arduino




El módulo Joystick tiene 5 pines: Vcc, GND, VRX, VRYY Y SW. Tenga en cuenta que las etiquetas de otros modelos puede ser ligeramente diferente, dependiendo de dónde compró el módulo. 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.




Tenemos que usar pines analógicos de Arduino para leer los datos de los pines X / Y, y un pin digital para leer el botón SW. El pasador SW está conectado a tierra, cuando se pulsa el joystick hacia abajo. Para obtener lecturas estables necesita ser conectado a Vcc a través de una resistencia pull-up.

Comprar el módulo Joystick para Arduino

Puede encontrar el módulo Joystick para Arduino a un precio increíble en AliExpress. Pincha en el siguiente enlace para acceder.

aliexpress

Comprar motor paso a paso 28BYJ-48 en AliExpress

Demostración del módulo Joystick con Arduino

Diagrama de cableado con Arduino UNO

Diagrama de las conexiones del joystick a la placa Arduino
Diagrama de las conexiones del joystick
a la placa Arduino UNO

Código de ejemplo Arduino para el módulo Joystick

/*
 Código de ejemplo Arduino para el módulo Joystick
 Prototipo del taller www.web-robotica.com

 
 Este sketch es de dominio público.
 */
 
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); 
  
  // Para las versiones anteriores a 1.0.1 Arduino 
  // 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); // añadir un poco de retraso entre lecturas
}

.

Este post se publico originalmente en 42bots.

.

Deja un comentario

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