Te envié un privado con instrucciónes para que edites tu post por dos razones:
-
No se para que repites lo que tu mismo has escrito. Acaso el que lee el primer post debe hacerlo de nuevo? Es como tartamudear en un foro. Por favor, no hace falta.
-
El código que posteaste debe ir con etiquetas, asi que lee las instrucciones (normas del foro) que te pasé por privado ya que pasaste por alto el 1er hilo que cada sección (Normas del foro) tiene para que loleas y luego te manejes adecuadamente.
Respondo tu consulta: (lo que no signfica que no edites lo que acabo de pedirte)
La llibrería Keypad tiene ejemplos, los probaste? Digo porque ponerse a trabajar con una librería sin entenderla antes, genera justamente que a la primer duda vengas a consultarnos.
Los ejemplos de las librerías aclaran la gran mayoría de las dudas, pero todos por comodidad o desconocimiento los pasan por alto.
Otra opción es que pongas en Google: Arduino keypad y veas los tutoriales. Lo que estas consultando esta ampliamente respondido y explicado en muchos tutoriales a lo largo y ancho de Internet.
Por que estos comentarios? Porque te faltan instrucciones propias del ejemplo Keypad.
Esta es una de mis primeras opciones cuando busqué lo que te dije en Google
Arduino with keypad Tutorial
#include "Keypad.h"
const byte ROWS = 4; // four rows
const byte COLS = 3; // three columns
char keys[ROWS][COLS] =
{
{'1','2','3' },
{'4','5','6' },
{'7','8','9' },
{'*','0','#' }
};
byte rowPins[ROWS] = {5, 6, 7, 8};
byte colPins[COLS] = {2, 3, 4};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
char KEY[4] = {'1','2','3','4'}; // default secret key
char attempt[4] = {0,0,0,0};
int z=0;
void setup()
{
Serial.begin(9600);
}
void correctKEY() // do this if the correct KEY is entered
{
Serial.println(" KEY ACCEPTED...");
}
void incorrectKEY() // do this if an incorrect KEY is entered
{
Serial.println("KEY REJECTED!");
}
void checkKEY()
{
int correct=0;
int i;
for ( i = 0; i < 4 ; i++ )
{
if (attempt[i]==KEY[i])
{
correct++;
}
}
if (correct==4)
{
correctKEY();
}
else
{
incorrectKEY();
}
for (int zz=0; zz<4; zz++) // clear previous key input
{
attempt[zz]=0;
}
}
void readKeypad()
{
char key = keypad.getKey();
if (key != NO_KEY)
{
switch(key)
{
case '*':
z=0;
break;
case '#':
delay(100); // added debounce
checkKEY();
break;
default:
attempt[z]=key;
z++;
}
}
}
void loop()
{
readKeypad();
}
Tienes que hacer algunos cambios, para corresponderlo a como esta tu teclado pero luego servirá.