#include <LiquidCrystal.h>
LiquidCrystal lcd(23, 25, 27, 29, 31, 33);
#define led1 2
#define led2 3
#define led3 4
#define botonPin 8
int botonVal;
int dificultad;
int contador;
int valor;
void setup() {
lcd.begin(16, 2);
pinMode(botonPin , INPUT);
pinMode(led1 , OUTPUT);
pinMode(led2 , OUTPUT);
pinMode(led3 , OUTPUT);
Serial.begin(9600);
contador = 1;
dificultad = 40;
}
void loop() {
Serial.println(botonVal);
botonVal = digitalRead(botonPin);
Serial.println(dificultad);
contador++;
if (contador >= 0 && contador <= 10){
botonVal = digitalRead(botonPin);
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
valor = 1;
}
if (contador >= 10 && contador <= 20 ){
botonVal = digitalRead(botonPin);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
valor = 2;
}
if (contador >= 20 && contador <= 30 ){
botonVal = digitalRead(botonPin);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
valor = 3;
}
if (contador >= 30){
contador = 0;
}
if (valor == 1 && botonVal == 0 || valor == 3 && botonVal == 0 ){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(1000);
perdiste();
perdiste();
perdiste();
dificultad = 40;
}
if (valor == 2 && botonVal == 0){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(3000);
LUCES();
LUCES();
LUCES();
LUCES();
delay(1000);
}
if (dificultad == 40){
lcd.print("NIVEL 1");
}
if (dificultad == 36){
lcd.print("NIVEL 2");
}
if (dificultad == 32){
lcd.print("NIVEL 3");
}
if (dificultad == 28){
lcd.print("NIVEL 4");
}
if (dificultad == 24){
lcd.print("NIVEL 5");
}
if (dificultad == 20){
lcd.print("NIVEL 6");
}
if (dificultad == 16){
lcd.print("NIVEL 7");
}
if (dificultad == 12){
lcd.print("JUEGO FINALIZADO");
lcd.setCursor(0,1);
lcd.print("....GANASTE....");
delay(1000);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(2000);
dificultad = 40;
}
delay(dificultad);
lcd.clear();
}
void LUCES(){
delay(250);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(250);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
dificultad--;
}
void perdiste(){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
delay(1000);
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
delay(1000);
}