int Led1 = 12;
int Led2 = 13;
int Led3 = 14;
int Led4 = 15;
int LedCon = 16;
int ledD1 = 25;
int ledD2 = 33;
int ledD3 = 32;
int LedSiC = 27;
int LedNoC = 26;
int Boton1 = 5;
int Boton2 = 4;
int valor = 0; //Primer Punto
int valor2 = 0;
int valor3 = 0;
int NumerosGuardados[3] = {0, 0, 0};
int Num = 0;
int NumerosGuardados2[3] = {0, 0, 0};
int Num2 = 0;
int numeroCV = 0;
int Num3 = 0;
int contrasena = 0;
int codigoSeguridad = 0;
int dado = 0;
void actualizarLeds(int valor){ //Primer Punto
digitalWrite(Led1, bitRead(valor,0));
digitalWrite(Led2, bitRead(valor,1));
digitalWrite(Led3, bitRead(valor,2));
digitalWrite(Led4, bitRead(valor,3));
}
void actualizarLeds2(int valor2){
digitalWrite(Led1, bitRead(valor2,0));
digitalWrite(Led2, bitRead(valor2,1));
digitalWrite(Led3, bitRead(valor2,2));
digitalWrite(Led4, bitRead(valor2,3));
}
void actualizarLeds3(int valor){ //Primer Punto
digitalWrite(Led1, bitRead(valor3,0));
digitalWrite(Led2, bitRead(valor3,1));
digitalWrite(Led3, bitRead(valor3,2));
digitalWrite(Led4, bitRead(valor3,3));
}
void printNumeros(int numero){
Serial.print("Numero guardado: ");
Serial.println(numero, BIN);
}
void printNumeros2(int numero2){
Serial.print("Numero de clave: ");
Serial.println(numero2, BIN);
}
void printNumeros3(int numero3){
Serial.print("Numero de serguridad ingresado: ");
Serial.println(numero3, BIN);
}
void apagados(){
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
}
/*void ledsDado(int dado){
digitalWrite(ledD1, bitRead(valor,0));
digitalWrite(ledD2, bitRead(valor,1));
digitalWrite(ledD3, bitRead(valor,2));
}*/
int leerDado(){
return random(1,7);
}
void setup() {
pinMode(Led1, OUTPUT);
pinMode(Led2, OUTPUT);
pinMode(Led3, OUTPUT);
pinMode(Led4, OUTPUT);
pinMode(LedCon, OUTPUT);
pinMode(LedSiC, OUTPUT);
pinMode(LedNoC, OUTPUT);
pinMode(Boton1, INPUT);
pinMode(Boton2, INPUT);
Serial.begin(115200);
}
void loop() {
if(contrasena == 0 && codigoSeguridad == 0){
if(digitalRead(Boton1) == 1 && digitalRead(Boton2) == 0){
valor = (valor + 1) % 9;
actualizarLeds(valor);
delay(200);
}
if(digitalRead(Boton2) == 1 && digitalRead(Boton1) == 0){
NumerosGuardados[Num] = valor;
printNumeros(NumerosGuardados[Num]);
Num = (Num + 1) % 3;
delay(200);
if(Num == 0){
digitalWrite(LedCon, HIGH);
for(int i = 0; i<3; i++){
Serial.println(NumerosGuardados[i]);
}
contrasena = 1;
return;
}
return;
}
return;
}
if(contrasena == 1 && codigoSeguridad == 0){
//printNumeros(NumerosGuardados[Num]);
if(digitalRead(Boton1) == 1 && digitalRead(Boton2) == 0){
valor2 = (valor2 + 1) % 9;
actualizarLeds2(valor2);
delay(200);
}
if(digitalRead(Boton2) == 1 && digitalRead(Boton1) == 0){
NumerosGuardados2[Num2] = valor2;
printNumeros2(NumerosGuardados2[Num2]);
Num2 = (Num2 + 1) % 3;
delay(200);
if(Num2 == 0){
for(int i = 0; i<3; i++){
Serial.println(NumerosGuardados2[i]);
}
}
if(NumerosGuardados[Num] == NumerosGuardados2[Num2]){
digitalWrite(LedSiC, HIGH);
dado = leerDado();
Serial.print("Tu código de seguridad: ");
Serial.println(dado);
codigoSeguridad = 1;
return;
}
return;
}
return;
}
else{
if(digitalRead(Boton1) == 1 && digitalRead(Boton2) == 0){
valor3 = (valor3 + 1) % 9;
actualizarLeds3(valor3);
delay(200);
}
if(digitalRead(Boton2) == 1 && digitalRead(Boton1) == 0){
numeroCV = valor3;
printNumeros3(numeroCV);
Num3 = (Num3 + 1) % 3;
delay(200);
Serial.println(numeroCV);
}
if(dado == numeroCV){
digitalWrite(LedNoC, HIGH);
Serial.println("Tu Codigo de Seguridad fue ingresado con exito");
}
}
}