#define LED_PIN_1 2
#define LED_PIN_2 4
#define LED_PIN_3 5
#define LED_PIN_4 18
// Definir pines para el joystick analógico
#define JOYSTICK_X_PIN 34
#define JOYSTICK_Y_PIN 35
// Definir umbrales para la detección del joystick
#define JOYSTICK_THRESHOLD 250
void setup() {
// Inicializar pines de LED como salida
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(LED_PIN_3, OUTPUT);
pinMode(LED_PIN_4, OUTPUT);
// Inicializar pines de joystick como entrada
pinMode(JOYSTICK_X_PIN, INPUT);
pinMode(JOYSTICK_Y_PIN, INPUT);
// Inicializar comunicación serial
Serial.begin(115200);
}
void loop() {
// Leer valores del joystick
int xValue = analogRead(JOYSTICK_X_PIN);
int yValue = analogRead(JOYSTICK_Y_PIN);
// Determinar la dirección del movimiento del joystick
if (xValue < JOYSTICK_THRESHOLD) {
digitalWrite(LED_PIN_1, HIGH);
digitalWrite(LED_PIN_2, LOW);
} else if (xValue > 4096 - JOYSTICK_THRESHOLD) {
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, HIGH);
} else {
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, LOW);
}
if (yValue < JOYSTICK_THRESHOLD) {
digitalWrite(LED_PIN_3, HIGH);
digitalWrite(LED_PIN_4, LOW);
} else if (yValue > 4096 - JOYSTICK_THRESHOLD) {
digitalWrite(LED_PIN_3, LOW);
digitalWrite(LED_PIN_4, HIGH);
} else {
digitalWrite(LED_PIN_3, LOW);
digitalWrite(LED_PIN_4, LOW);
}
// Esperar un breve momento antes de volver a leer el joystick
delay(50);
}