Mi primer proyecto (ayuda)

hola amigos :slight_smile:
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 :slight_smile:

Solo te puedo decir que en lo referente a preservar datos una vez apagado el arduino te mires esto: