hola buenas todos, estoy haciendo un proyecto de una cerradura media clave con un teclado matricial de 4x3 con una lcd tengo un problema y no se como hacerlo. al arrancar el arduino con el código te aparece la lcd vacía pero si metes el código 1234 aparecen los asteriscos, lo que quiero es que ponga arriba introduzca clave y abajo salgan los asteriscos, que se vallan centrando mientras que vas metiendo la clave. intentado todo pero no lo consigo ayuda por favor.
saludosssssss
code: [select]
[code]
#include <password.h>
#include <keypad.h>
#include <liquidcrystal.h>
#include <wire.h>
password password = password( "1234" );
int salida =10;
const byte rows = 4; //numero de filas
const byte cols = 3; //numeros de columnas
// define the keymap
char keys[rows][cols] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowpins[rows] = {7,6,5,4};// pines para las filas
byte colpins[cols] = {3,2,11};// pines para las columnas
liquidcrystal lcd(8, 9, a2, a3, a4, a5);// pines para la lcd
keypad keypad = keypad( makekeymap(keys), rowpins, colpins, rows, cols );
void setup(){
pinmode(salida, output);
lcd.begin(16, 2);
keypad.addeventlistener(keypadevent);
}
void(* resetloop) (void) = 0; // resetea el loop cuando le llama
void loop(){
keypad.getkey();
}
void keypadevent(keypadevent ekey){
switch (keypad.getstate()){
case pressed:
lcd.print("*");// al pulsar cualquier tecla muesta *
switch (ekey){
case '#': checkpassword(); // al presionar # confirma la contraseÑa
break;
case '*': password.reset(); // al presionar * borra la clave introducida
lcd.clear(); break;
default: password.append(ekey);
}
}
}
void checkpassword(){
if (password.evaluate()){
lcd.clear(); //muestra el mesaje clave correcta, activa el rele y reinicia el loop
lcd.setcursor(5, 0);
lcd.print("clave");
lcd.setcursor(4, 1);
lcd.print("correcta");
delay(1500);
digitalwrite(salida, high);
delay(2000);
digitalwrite(salida, low);
resetloop();
}else{ ////muestra el mesaje de clave incorrecta y reinicia el loop
lcd.clear();
lcd.setcursor(5, 0);
lcd.print("clave");
lcd.setcursor(2, 1);
lcd.print("incorrecta");
delay(2000);
resetloop();
}
}
[/code]saludosssssss
saludos
este codigo es una version mas completa que lo que pretendes hacer, lo hice en mis inicios con arduino asi que no la probado desde entonces.
usa:
arduino uno
teclado 4x4
pantalla lcd
memoria 24c32
este codigo es una version mas completa que lo que pretendes hacer, lo hice en mis inicios con arduino asi que no la probado desde entonces.
usa:
arduino uno
teclado 4x4
pantalla lcd
memoria 24c32
Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > ayuda con código lcd y teclado matricial 4x3
arduino
Comments
Post a Comment