Documentos de Académico
Documentos de Profesional
Documentos de Cultura
void setup(){
Serial.begin(9600);
//*****************************************
//*****************************************
Servo seguro; //servomotor
LiquidCrystal lcd(4 , 5, 14, 15, 16, 17); //display LCD
char teclas[filas][columnas] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'},
};
Keypad teclado = Keypad(makeKeymap(teclas),
pinsFilas,pinsColumnas, filas, columnas);
");
delay(1000);
lcd.setCursor(0,0);
delay(1000);
lcd.setCursor(0,0);
lcd.print(" la pass
delay(1000);*/
lcd.setCursor(0,0);
int a; //aux
int b=0;
}//fin del setup
");
b=0;
void loop(){
if(b>2){
digitalWrite(18, HIGH);
digitalWrite(13,LOW);
b++;
delay(15000);
ledrojoblink();
digitalWrite(18, LOW);
lcdtextocentrado("Error");
digitalWrite(13,LOW);
delay(600);
b=0;
lcd.setCursor(0,1);
lcd.print(comp);
delay(500);
lcdnumero();
Serial.print(co);
Serial.print(" ");
Serial.println(cl);
if (cl[contador] != NO_KEY){
entonces
switch (cl[contador]){
pulsada
case 'B':
lcdtextocentrado("Cerrado");
void ledrojo();
//*****************************************//
delay(500);
//******************************************//
ledrojo();
for(int i = 0 ; i<4;i++){ // borra el codigo temporal
case 'A':
guardado
cl[i]='0';
lcdnumero();
break; //fin del caso B
lcdtextoizq(" **Correcto**");
seguro.write(15);
//abrir puerta
ledverde();
case 'C':
repetirpass();
if (comp>=4){ //si la contrasea concide entonce
delay(600);
lcdtextoizq("Pass correcta");
delay(500);
delay(600);
nuevapass();
lcdtextoizq("Cerrar");
comp = comprobacion(cn,cl);
if (comp>=4){
cursorr=6;
lcdtextoizq("Correcto");
delay(500);
lcdtextoizq("Nueva pass");
}
}//fin del loop
delay(500);
lcdtextoizq("pass guardada");
delay(500);
for(int i =0;i<=4;i++){
//*********************************
//*****Seccion de funciones********
//*********************************
EEPROM.write(i,cl[i]);}
for(int i =0;i<=4;i++){
co[i]= EEPROM.read(i);}
void lcdnumero(){ //reseta los valores del cursor del lcd asi
como del contador
lcd.setCursor(0,1);
lcd.print("
//segundo renglon
");
lcd.setCursor(6,1);
lcdnumero();
lcd.print("____");
cursorr=6;
break;//fin caso c
contador=0;
} //fin de lcdresetparanumero
");
lcd.setCursor(6,1);
default:
escribirn(cl);
lcd.setCursor(0,1);
lcd.print("
");
lcd.setCursor(0,1);
lcd.print(A); //imprime el valor introducido
} //fin de lcdresetparatexto
igual= igual + 1;
digitalWrite(19, HIGH);
}
digitalWrite(2,LOW);
return igual;
}
}
void ledrojoblink(){ //enciende led rojo parpadeando
digitalWrite(19, HIGH);
digitalWrite(2,LOW);
delay(200);
lcd.setCursor(0,0);
digitalWrite(19, LOW);
lcd.print("
delay(200);
lcd.setCursor(0,0);
digitalWrite(19, HIGH);
");
} //fin de lcdresetparatexto
void repetirpass(){
void ledverde(){ //enciende led verde
int i =0;
digitalWrite(19, LOW);
lcdtitulo("Introduzca pass");
digitalWrite(2, HIGH);
delay(800);
digitalWrite(18,LOW);
lcdtitulo("pass anterior");
delay(1000);
lcdnumero();
while (i<=4){
lcd.setCursor(cursorr,1);
lcd.print(v[contador]);
v[contador+1]= (' ');
delay(250);
lcd.setCursor(cursorr,1);
lcd.print('*');
switch (cl[contador]){
cursorr++;
contador++;
comp = comprobacion(cl,co);
if (comp>=4){ //si es igual
int comprobacion(char *v1,char *v2){
int igual = 0;
lcdtextocentrado("Correcto");
ledverde();
delay(300);
contador=5;
ledrojo();
else{
lcdtextoizq("Error de pass");
lcdtextocentrado("Error");
ledrojoblink();
i=5;
delay(500);
}//end else
lcd.setCursor(0,1);
lcdtextoizq(" ");
lcd.print(contador);
default:
contador =5;
escribirn(cl);
i++;
break;
default:
escribirn(cl);
void nuevapass(){
}//fin de while
delay(1500);
lcdtextoizq("SOLO NUMEROS");
delay(1500);
lcdnumero();
while(contador<=4){ //cuatro veces el ciclo
void vuelve(){
lcdtitulo("Escribe otra vez");
cl[contador] = teclado.getKey();
if (cl[contador]!=NO_KEY){
switch (cl[contador]){
lcdnumero();
while(contador<=4){ //cuatro veces el ciclo
case 'D':
if (contador>=4){ // si ya escribio 4 numeros
cn[contador] = teclado.getKey();
if (cn[contador]!=NO_KEY){
lcdtextoizq("Vuelve a ingresarla");
delay(1000);
switch (cn[contador]){
case '#':
if (cal[contador]!=NO_KEY){
switch (cal[contador]){
contador=5;
}//fin del if contador==$
case '*':
comp =comprobacion(cal,ca);
lcdtextoizq("Error de pass");
if (comp>=6){
lcdtitulo("Hola admin");
contador =20;
adminpass();
delay(500);
}
lcd.setCursor(0,1);
lcdtextoizq(" ");
lcd.print(contador);
contador =20;
break;
default:
escribirn(cn);
//fin del if
break;
escribirn(cal);
}//fin del switch
}
//finde volver pass
//fin del if
void admin(void){
lcdtitulo("Admin pass");
}//fin de while
lcdtextoizq("'*' = Aceptar");
delay(1500);
lcdnumero();
cursorr=4;
while(contador<=8){
cal[contador]=teclado.getKey();
}//finde admin
void adminpass(){
lcdtitulo("Pass nueva");
delay(1500);
lcdnumero();
lcdtextoizq("Error de pass");
cn[contador] = teclado.getKey();
if (cn[contador]!=NO_KEY){
delay(500);
//si escribi algo
lcd.setCursor(0,1);
lcdtextoizq(" ");
switch (cn[contador]){
lcd.print(contador);
}//Fin del else
case '#':
break;
default:
for(int i =0;i<=4;i++){
escribirn(cn);
EEPROM.write(i,cn[i]);}
for(int i =0;i<=4;i++){
co[i]= EEPROM.read(i);}
delay(500);
//fin del if
}//fn del if no key
lcdtextoizq("Pass actualizada");
contador = 10;
delay(500);
}//fin de while
}//finde volver pass