// Definición de pines para los LEDs (según tu nueva solicitud)
const int pinLED_Der = 25; // Derecha
const int pinLED_Izq = 26; // Izquierda
const int pinLED_Arr = 27; // Arriba
const int pinLED_Aba = 14; // Abajo
// Definición de pines para el Joystick
const int pinX = 34;
const int pinY = 35;
const int pinSW = 13; // Botón
void setup() {
pinMode(pinLED_Der, OUTPUT);
pinMode(pinLED_Izq, OUTPUT);
pinMode(pinLED_Arr, OUTPUT);
pinMode(pinLED_Aba, OUTPUT);
pinMode(pinSW, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
// Lógica del botón: Enciende todos si se presiona
if (digitalRead(pinSW) == LOW) {
digitalWrite(pinLED_Der, HIGH);
digitalWrite(pinLED_Izq, HIGH);
digitalWrite(pinLED_Arr, HIGH);
digitalWrite(pinLED_Aba, HIGH);
} else {
// Apagamos todo antes de verificar el movimiento
digitalWrite(pinLED_Der, LOW);
digitalWrite(pinLED_Izq, LOW);
digitalWrite(pinLED_Arr, LOW);
digitalWrite(pinLED_Aba, LOW);
int valX = analogRead(pinX);
int valY = analogRead(pinY);
// Lógica de movimiento:
if (valX > 3000) digitalWrite(pinLED_Der, HIGH); // Derecha
if (valX < 1000) digitalWrite(pinLED_Izq, HIGH); // Izquierda
if (valY > 3000) digitalWrite(pinLED_Arr, HIGH); // Arriba
if (valY < 1000) digitalWrite(pinLED_Aba, HIGH); // Abajo
}
delay(50);
}