ayuda con código lcd y teclado matricial 4x3


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.

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


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > ayuda con código lcd y teclado matricial 4x3


arduino

Comments