void leeSecuencia(){
int flag = 0;
for(int i = 0; i < nivelActual; i++){
flag = 0;
while(flag == 0){
if(digitalRead(PUL_VERDE) == LOW){
digitalWrite(LEDS_VERDE, HIGH);
SecuenciaLeida[i] = LEDS_VERDE;
flag = 1;
delay(400);
if(SecuenciaLeida[i] != secuencia[i]){
secuenciaError();
return;
}
digitalWrite(LEDS_VERDE, LOW);
}
if(digitalRead(PUL_ROJO) == LOW){
digitalWrite(LEDS_ROJO, HIGH);
SecuenciaLeida[i] = LEDS_ROJO;
flag = 1;
delay(400);
if(SecuenciaLeida[i] != secuencia[i]){
secuenciaError();
return;
}
digitalWrite(LEDS_ROJO, LOW);
}
if(digitalRead(PUL_AZUL) == LOW){
digitalWrite(LEDS_AZUL, HIGH);
SecuenciaLeida[i] = LEDS_AZUL;
flag = 1;
delay(400);
if(SecuenciaLeida[i] != secuencia[i]){
secuenciaError();
return;
}
digitalWrite(LEDS_AZUL, LOW);
}
if(digitalRead(PUL_AMARILLO) == LOW){
digitalWrite(LEDS_AMARILLO, HIGH);
SecuenciaLeida[i] = LEDS_AMARILLO;
flag = 1;
delay(400);
if(SecuenciaLeida[i] != secuencia[i]){
secuenciaError();
return;
}
digitalWrite(LEDS_AMARILLO, LOW);
}
}
}
secuenciaCorrecta();
}
void generaSecuencia(){
randomSeed(analogRead(5)); // randomSeed(millis());
for(int i = 0; i < MaximiNivel; i++){
secuencia[i] = random(2,6);
}
}
void TonoError(){
for(int i = 0; i < 4; i++){
digitalWrite(BUZZER, HIGH);
delay(150);
digitalWrite(BUZZER, LOW);
delay(50);
}
}
void secuenciaError(){
digitalWrite(LEDS_AMARILLO, HIGH);
digitalWrite(LEDS_AZUL, HIGH);
digitalWrite(LEDS_ROJO, HIGH);
digitalWrite(LEDS_VERDE, HIGH);
delay(800);
digitalWrite(LEDS_AMARILLO, LOW);
digitalWrite(LEDS_AZUL, LOW);
digitalWrite(LEDS_ROJO, LOW);
digitalWrite(LEDS_VERDE, LOW);
delay(350);
TonoError();
velocidad = 500;
nivelActual = 4;
inicio();
}
void secuenciaCorrecta(){
if(nivelActual < MaximiNivel){
digitalWrite(BUZZER, HIGH);
delay(300);
digitalWrite(BUZZER, LOW);
nivelActual++;
delay(450);
}
if(nivelActual == MaximiNivel){
digitalWrite(LEDS_AMARILLO, HIGH);
digitalWrite(LEDS_AZUL, HIGH);
digitalWrite(LEDS_ROJO, HIGH);
digitalWrite(LEDS_VERDE, HIGH);
digitalWrite(BUZZER, HIGH);
delay(5000);
digitalWrite(BUZZER, LOW);
inicio();
velocidad = 500;
nivelActual = 4;
}
}
70