Go Down

Topic: Mi primer proyecto (ayuda) (Read 500 times) previous topic - next topic

samroller2

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:
Quote
#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);
   }
  }
}


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 :)

_jose_

Solo te puedo decir que en lo referente a preservar datos una vez apagado el arduino te mires esto:
http://arduino.cc/en/Reference/EEPROM

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy