Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LABORATORIO 6
TECLADO MATRICIAL DE MEMBRANA 4X4
Características Generales
✓ 16 botones con organización matricial (4 filas x 4 columnas).
✓ Teclado tipo Membrana.
✓ Mayor resistencia al agua y polvo.
✓ Expectativa de tiempo de vida un millón de veces.
✓ Temperatura de operación entre 0°C y 60°C.
✓ Tiempo de rebote menor a 5 milisegundos.
✓ Conector tipo DuPont hembra de una fila y 8 contactos.
✓ Auto adhesivo en la parte de atrás.
Características Eléctricas
Aplicaciones
Descripción:
Se implementará un tipo de cerradura electrónica con clave de acceso que puede servir para
varias aplicaciones. El sistema consiste en teclear una contraseña en nuestro teclado
matricial. Arduino evaluara la contraseña ingresada.
Si las teclas pulsadas con las correctas muestra un mensaje: “CLAVE CORRECTA”
Si las teclas pulsadas sin incorrectas muestra un mensaje: “CLAVE INCORRECTA”.
Etapa Electrónica:
Circuito de conexión Arduino UNO y teclado matricial de membrana 4X4
Programa de aplicación:
#include <Keypad.h> //llama a la librería Keypad.h
char CLAVE[ ]="1234"; //aquí escribimos la contraseña de 4 dígitos.
char CLAVE_INGRESADA[4]; //Cadena donde se guardaran los caracteres de las teclas
presionadas.
int cont=0; //variable que se incrementara al presionar las teclas.
const byte nroFILAS = 4; //Numero de filas del teclado que se está usando.
const byte nroCOLUMNAS = 4; //Numero de columnas del teclado que se está usando.
//Aquí pondremos la disposición de los caracteres tal cual están en nuestro teclado.
char TECLADO_MATRICIAL_4X4[nroFILAS][nroCOLUMNAS] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinesFILAS[nroFILAS] = {9, 8, 7, 6}; //Seleccionamos los pines en el arduino donde
iran conectadas las filas.
byte pinesCOLUMNAS[nroCOLUMNAS] = {5, 4, 3, 2}; //Seleccionamos los pines en el
arduino donde iran conectadas las columnas.
//Crea una variable e inicializa el teclado.
Keypad TECLADO =
Keypad(makeKeymap(TECLADO_MATRICIAL_4X4),pinesFILAS,pinesCOLUMNAS,nroFIL
AS,nroCOLUMNAS);
void setup()
{
Serial.begin(9600); //inicializar puerto serie; para mostrar en el Monitor serial.
}
void loop()
{
char TECLA_PRESIONADA = TECLADO.getKey(); //se guarda en la variable
TECLA_PRESIONADA el caracter de la tecla presionada.
if (TECLA_PRESIONADA != NO_KEY) //se evalúa si se presionó una tecla.
{
CLAVE_INGRESADA[cont]=TECLA_PRESIONADA; //se guarda caracter por caracter en el
CLAVE_INGRESADA[cont].
Serial.println(CLAVE_INGRESADA[cont]); //se imprime en el Monitor Serial la tecla
presionada.
cont=cont+1; //incrementamos la variable cont
if(cont==4) //si ya fueron presionadas 4 teclas se evalúa si la contraseña es correcta
{
if(CLAVE_INGRESADA[0]==CLAVE[0]&&CLAVE_INGRESADA[1]==CLAVE[1]&&CLAVE_I
NGRESADA[2]==CLAVE[2]&&CLAVE_INGRESADA[3]==CLAVE[3])
{
Serial.println("CLAVE CORRECTA");
INGENIERIA INDUSTRIAL Ing. FELIPE APAZA CANAZA
UNIVERSIDAD ANDINA DEL CUSCO ACREDITADA INTERNACIONALMENTE
}
else
{
Serial.println("CLAVE INCORRECTA");
}
cont=0; //resetear a 0 la variable cont
}
}
}