#define BTN_START 0 // Ajusta a tu pin de botón de inicio
#define BTN_STOP 8 // Ajusta a tu pin de botón de parada
// Pines de los LEDs configurados en forma de dado
int leds[] = {1, 2, 3, 4, 5, 6, 7}; // Ajusta los pines según tus conexiones
int numleds = 7; // Cantidad de LEDs
bool sequenceRunning = false; // Controla el estado de la secuencia
void setup() {
// Configura los pines de los LEDs como salidas
for(int i = 0; i < 7; i++) {
pinMode(leds[i], OUTPUT);
}
// Configurar los botones como entradas
pinMode(BTN_START, INPUT_PULLUP);
pinMode(BTN_STOP, INPUT_PULLUP);
}
void loop() {
// Leer el estado de los botones
if(digitalRead(BTN_START) == LOW) {
sequenceRunning = true; // Iniciar la secuencia si se presiona el botón de inicio
}
if(digitalRead(BTN_STOP) == LOW) {
sequenceRunning = false; // Detener la secuencia si se presiona el botón de parada
// Asegurarse de que todos los LEDs estén apagados
for(int i = 0; i < 7; i++) {
digitalWrite(leds[i], LOW);
}
}
// Manejar la secuencia de encendido de los LEDs cuando esté activa
if(sequenceRunning) {
digitalWrite(leds[3], HIGH); // Encender el LED
delay(250); // Espera un tiempo antes de seguir
digitalWrite(leds[3], LOW); // Apagar el LED
delay(1000);
botonapagado;
digitalWrite(leds[1], HIGH); // Encender el LED
digitalWrite(leds[5], HIGH); // Encender el LED
delay(250); // Espera un tiempo antes de seguir
digitalWrite(leds[1], LOW);
digitalWrite(leds[5], LOW);
delay(1000);
botonapagado;
digitalWrite(leds[0], HIGH); // Encender el LED
digitalWrite(leds[3], HIGH);
digitalWrite(leds[6], HIGH);
delay(250);
digitalWrite(leds[0], LOW); // Encender el LED
digitalWrite(leds[3], LOW);
digitalWrite(leds[6], LOW);
delay(1000);
botonapagado;
digitalWrite(leds[0], HIGH); // Encender el LED
digitalWrite(leds[2], HIGH);
digitalWrite(leds[4], HIGH);
digitalWrite(leds[6], HIGH);
delay(250);
digitalWrite(leds[0], LOW); // Encender el LED
digitalWrite(leds[2], LOW);
digitalWrite(leds[4], LOW);
digitalWrite(leds[6], LOW);
delay(1000);
botonapagado;
digitalWrite(leds[0], HIGH); // Encender el LED
digitalWrite(leds[2], HIGH);
digitalWrite(leds[3], HIGH);
digitalWrite(leds[4], HIGH);
digitalWrite(leds[6], HIGH);
delay(250);
digitalWrite(leds[0], LOW); // Encender el LED
digitalWrite(leds[2], LOW);
digitalWrite(leds[3], LOW);
digitalWrite(leds[4], LOW);
digitalWrite(leds[6], LOW);
delay(1000);
botonapagado;
digitalWrite(leds[0], HIGH); // Encender el LED
digitalWrite(leds[1], HIGH);
digitalWrite(leds[2], HIGH);
digitalWrite(leds[4], HIGH);
digitalWrite(leds[5], HIGH);
digitalWrite(leds[6], HIGH);
delay(250);
digitalWrite(leds[0], LOW); // Encender el LED
digitalWrite(leds[1], LOW);
digitalWrite(leds[2], LOW);
digitalWrite(leds[4], LOW);
digitalWrite(leds[5], LOW);
digitalWrite(leds[6], LOW);
delay(1000);
botonapagado;
// Apagar el LED// Si se presiona el botón de parada durante la secuencia, detener
}
delay(10);
}
// Agrega un pequeño retraso para evitar rebotes
void botonapagado(){
if(digitalRead(BTN_STOP) == LOW) {
sequenceRunning = false;
// Apagar todos los LEDs antes de salir
for(int j = 0; j < 7; j++) {
digitalWrite(leds[j], LOW);
}
}
}