// Definición de pines
const int buttonPin1 = 5;
const int buttonPin2 = 4;
const int buttonPin3 = 2;
const int ledPins[] = {26,27,14,12,13};
const int numLeds = 5;
void setup() {
// Configuración de pines de botones como entradas
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
// Configuración de pines de LEDs como salidas
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Leer el estado de los botones
int buttonState1 = digitalRead(buttonPin1);
int buttonState2 = digitalRead(buttonPin2);
int buttonState3 = digitalRead(buttonPin3);
// Secuencias de LEDs dependiendo del botón presionado
if (buttonState1 == HIGH) {
sequenceOne();
} else if (buttonState2 == HIGH) {
sequenceTwo();
} else if (buttonState3 == HIGH) {
sequenceThree();
} else {
// Apagar todos los LEDs si no se presiona ningún botón
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
}
}
void sequenceOne() {
// Secuencia 1: Encender y apagar los LEDs de abajo hacia arriba varias veces
for (int repeat = 0; repeat < 3; repeat++) { // Repetir 3 veces
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(250);
digitalWrite(ledPins[i], LOW);
}
}
}
void sequenceTwo() {
// Secuencia 2: Parpadeo rápido de todos los LEDs simultáneamente varias veces
for (int repeat = 0; repeat < 5; repeat++) { // Repetir 5 veces
for (int j = 0; j < numLeds; j++) {
digitalWrite(ledPins[j], HIGH);
}
delay(250);
for (int j = 0; j < numLeds; j++) {
digitalWrite(ledPins[j], LOW);
}
delay(200);
}
}
void sequenceThree() {
// Secuencia 3: Encender y apagar los LEDs de los extremos hacia el centro varias veces
for (int repeat = 0; repeat < 3; repeat++) { // Repetir 3 veces
for (int i = 0; i < (numLeds + 1) / 2; i++) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[numLeds - 1 - i], HIGH);
delay(250);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[numLeds - 1 - i], LOW);
}
}
}