Joystick con pantalla I2C




#include <Wire.h>
#include <LiquidCrystal_I2C.h>

const int vrxPin = A0; // Pin VRx del joystick
const int vryPin = A1; // Pin VRy del joystick
const int swPin = 2; // Pin SW del joystick
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C de la pantalla LCD

void setup() {
  pinMode(swPin, INPUT_PULLUP); // Configura el pin SW como entrada con resistencia pull-up
  lcd.begin(); // Inicia la pantalla LCD
  lcd.backlight(); // Enciende la luz de fondo de la pantalla LCD
  Serial.begin(9600); // Inicia la comunicación serial
}

void loop() {
  int xValue = analogRead(vrxPin); // Lee el valor del eje X del joystick
  int yValue = analogRead(vryPin); // Lee el valor del eje Y del joystick
  int swState = digitalRead(swPin); // Lee el estado del botón del joystick

  Serial.print("X: ");
  Serial.print(xValue); // Imprime el valor del eje X en el monitor serial
  Serial.print(" | Y: ");
  Serial.print(yValue); // Imprime el valor del eje Y en el monitor serial
  Serial.print(" | SW: ");
  Serial.println(swState); // Imprime el estado del botón en el monitor serial

  lcd.setCursor(0, 0); // Establece el cursor en la primera fila
  lcd.print("X: ");
  lcd.print(xValue); // Muestra el valor del eje X en la pantalla LCD
  lcd.print(" Y: ");
  lcd.print(yValue); // Muestra el valor del eje Y en la pantalla LCD

  lcd.setCursor(0, 1); // Establece el cursor en la segunda fila
  lcd.print("SW: ");
  lcd.print(swState == LOW ? "Pressed " : "Released"); // Muestra el estado del botón en la pantalla LCD

  delay(100); // Espera 100 ms antes de leer el joystick nuevamente
}

Comentarios

Entradas populares de este blog

Arduino sencillo