unsigned long tiempoAnterior = 0;
int paso = 0;
int paso2 = 0;
bool secuenciaActiva = false;
bool botonAntes = HIGH;
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
}
void loop(){
unsigned long tiempoActual = millis();
bool botonAhora = digitalRead(2);
// Condicion para alternar el encendido/apagado general
if (botonAntes == HIGH && botonAhora == LOW){
secuenciaActiva = !secuenciaActiva;
delay(150);
}
botonAntes = botonAhora;
// BOTON APAGADO
if (secuenciaActiva == false) {
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
paso = 0;
paso2 = 0;
}
// BOTON ENCENDIDO
else {
// SECUENCIAL
if(digitalRead(7) == HIGH){
if(paso == 0){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso = 1;
}
if (paso == 1){
if(tiempoActual - tiempoAnterior >= 1000) {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso = 2;
}
}
if (paso == 2){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso = 3;
}
}
if(paso == 3){
if(tiempoActual - tiempoAnterior >= 1000) {
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso = 4;
}
}
if(paso == 4){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso = 5;
}
}
if(paso == 5){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
tiempoAnterior = tiempoActual;
paso = 6;
}
}
if(paso == 6){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso = 7;
}
}
if(paso == 7){
if(tiempoActual - tiempoAnterior >= 1000){
paso = 0;
}
}
}
// SECUENCIA EN ESPEJO
else {
if(paso2 == 0){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
tiempoAnterior = tiempoActual;
paso2 = 1;
}
if(paso2 == 1){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso2 = 2;
}
}
if(paso2 == 2){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso2 = 3;
}
}
if(paso2 == 3){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
tiempoAnterior = tiempoActual;
paso2 = 4;
}
}
if(paso2 == 4){
if(tiempoActual - tiempoAnterior >= 1000){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
tiempoAnterior = tiempoActual;
paso2 = 1;
}
}
}
}
}