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
Publicar un comentario