hola amigos
soy nuevo con arduino y estoy trabajando en mi primer proyecto que es una cerradura digital con clave
para que me entiendan mejor les dejo el codigo y el esquema de coneccion de los componentes
CODIGO:
#include <Servo.h>
#include <LiquidCrystal.h>
#include <Keypad.h>//codigo necesario para el teclado
const byte filas = 4;
const byte columnas = 3;
char teclas[filas] [columnas] ={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte pinsFilas[filas] = {A1, A2, A3, A4}; //En orden: F1, F2, F3, F4
byte pinsColumnas[columnas] = {A5, 6, 7}; //En orden: C1, C2, C3
//crear y nombrar el teclado
Keypad kpd= Keypad(makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas);LiquidCrystal lcd(9, 8, 5, 4, 3, 2); // inicializo lcd
char pas1[10],pas2[10];
Servo cerradura;void setup ()
{
lcd.begin(16, 2);
cerradura.attach(12);
}void loop()
{
int i=0,j=0,f=0,w=0,k=0;
//primero se crea un password
lcd.setCursor(1,0);
lcd.print("CREAR PASSWORD");
lcd.setCursor(6,1);for(i=0;i<=3;i++)
{
pas1*=kpd.waitForKey();*
lcd.print("*");
delay(100);
}delay(50);
//bucle para ingresar la contraseña
while(f==0)
{
//pide que ingrese la contraseña*
lcd.clear();*
lcd.setCursor(0,0);*
lcd.print("PUERTA BLOQUEADA");*
lcd.setCursor(6,1);*
cerradura.write(0);*
for(j=0;j<=3;j++)*
{*
pas2[j]=kpd.waitForKey();*
_ lcd.print("*");_}*
delay(50);*
//verifica los caracteres correctos*
w=0;*
for(k=0;k<=3;k++)*
{*
if(pas1[k]==pas2[k])*
{*
w++;*
}*
}*
//compara la contraseña original vs la ingresada*
if(w==4)*
{*
lcd.clear();*
lcd.setCursor(1,0);*
lcd.print("CLAVE CORRECTA");*
lcd.setCursor(3,1);*
lcd.print("'Bienvenido");*
cerradura.write(180);*
delay(5000);*
}*
else*
{*
lcd.clear();*
lcd.setCursor(1,0);*
lcd.print("ERROR DE CODIGO");*
lcd.setCursor(0,1);*
lcd.print("ACCESO DENEGADO");*
delay(5000);*
}*
}*
}[/quote]
ESQUEMA:
aqui el link de la imagen por si no se ve bien: http://i.minus.com/iNNb9pggaxkND.png
hasta ahi todo bien el codigo funciona perfectamente.
pero aqui es donde necesito la primera ayuda
el caso es que la cerradura (servo) se sierra (regresa a 0 grados) automaticamente y yo lo que quiero es que se quede abierta hasta que yo presione un boton y se sierre solo al presionar un boton que sea independiente del teclado
bueno lo segundo que quisiera que me ayuden es cuando se corta la energia del arduino (desconecto el usb/cargador)
pide que cree de nuevo la contraseña y yo lo que quiero es que pida solo una vez y se quede guardada y si se desconecta la energia al volverla a conectar no pida crear de nuevo una clave. no se si me explico
y si se ponen generosos y me quieren seguir ayudando pues me vendria bien saber como hacer para poder cambiar la contraseña por ejemplo presionando 4 veces # que me salga la opcion de cambiar contraseña pero que me pida la anterios para poderla cambiar.
bueno eso es todo espero que me ayuden y de antemano mi gracias