Ya hace tiempo que quería realizar una practica, sin embargo con el trabajo y el estrés del día a día es un poco complicado hacer tiempo libre para realizar una. Ahora contra todo pronostico realizaremos una practica simple en la que emplearemos un Teclado Matricial 4×4 y Arduino.
Es esta practica realizaremos un sistema de seguridad que se vea plasmado en el monitor serial del software Arduino, el código máximo sera de 4 dígitos y la salida digital que utilizaremos sera la 13, esto con el fin de que el Led que posee incorporado nuestro Arduino encienda y nos indique que la cable es correcta
Materiales que se utilizaran:
Si no tienes los siguientes materiales, puedes comprarlo en nuestra tienda oficial: http://electronicastore.net
Objetivo de la practica: Realizar un programa que requiera una clave de seguridad para encender un led (este led puede ser cambiado por relevadores y terminar el proyecto con cerraduras electromagnéticas), si la clave es incorrecta entonces el led no se encenderá, si la clave es correcta entonces el led se encendera y se mostrara en el monitor serial «password correcta», para volver a activar el sistema se debe ingresar nuevamente la clave para que se apague el led.
Archivos completos de la practica: Teclado Matricial 4×4 y Arduino
Conexiones del Teclado Matricial 4×4 y Arduino:
Las conexiones son las mismas que hemos utilizado en las practicas que ya estan en la web, si requieres del texto original entonces visita este tema: Utilizar el teclado matricial 4×4 con Arduino
A continuación te dejamos una imagen con las conexiones de cada pin:

Programación en Arduino:
La siguiente programación cumple con el objetivo que se estableció al principio de la practica, en esta se hacen uso de variables y siclos If, como siempre primero te daremos el código final y en el mismo código te explicaremos para que sirve cada una de las lineas que se utilizaron.
#include <Keypad.h>; // Con esta linea llamamos a la librería Keypad para que arduino reconozca el teclado char contrasena[]="2222"; // En esta linea creamos la constante de cadena llamada contraseña (el numero 2222 puede ser cambiado) char codigo[4]; // Creamos otra constante, en esta se guardaran los caracteres que presionemos en nuestro teclado matricial 4x4 int cont=0; // Esta es una variable que nos servirá más adelante const byte ROWS = 4; //Este código se estable para definir que nuestro teclado tiene 4 filas const byte COLS = 4; //Este código se estable para definir que nuestro teclado tiene 4 columnas char hexaKeys[ROWS][COLS] = //En el siguiente matriz se agregan en orden las teclas que posee nuestro teclado { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {9, 8, 7, 6}; // Estos son los pines de conexión de Arduino de las columnas byte colPins[COLS] = {5, 4, 3, 2}; //Estos son los pines de conexión de Arduino de las filas Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //En este punto el teclado se inicia y realiza el mapeo de sus teclas con respecto a la matriz colocada arriba void setup() { pinMode(13, OUTPUT); //El pin 13 sera nuestra salida digital (así aprovecharemos el led que pose) Serial.begin(9600); //Se inicia el puerto serial } void loop() { char customKey = customKeypad.getKey(); //esta linea indica que el carácter presionado se guardara en la variable customKey if (customKey != NO_KEY) //Con este siclo preguntamos si se presiono una tecla, si se presiono entonce el ciclo continua { codigo[cont]=customKey; //se guardaran los caracteres presionados en codigo[cont] Serial.print(codigo[cont]); //Se imprime en nuestro monitor serial lo que este guardado en codigo[cont] cont=cont+1; //incrementamos la variable cont (esto con el fin de tener los 4 dígitos que requerimos) if(cont==4) //Ahora comienza otro siclo if, en el cual se pregunta si ya hay 4 datos guardados y si es así entonce el siclo continua { if(codigo[0]==contrasena[0]&&codigo[1]==contrasena[1]&&codigo[2]==contrasena[2]&&codigo[3]==contrasena[3]) { digitalWrite(13,!digitalRead(13)); //si lo anterior es verdad entonces se encenderá el led, si se ingresa nuevamente la contraseña entonces se apagara Serial.println("Password correcta"); //si la contraseña es correcta entonces se imprime ""Password correcta") } if(codigo!=contrasena) //empieza un nuevo ciclo, esta vez indicamos si el código es diferente que la contraseña siga con el siclo { Serial.println("Password incorrecta"); // se imprime que que la Password es incorrecta } cont=0; //resetear a 0 la variable cont } } }
Revisión final del proyecto:
El proyecto funciona casi a la perfección, ya que por alguna razón al ingresar la contraseña correcta se muestra el mensaje de Password correcta y más abajo se muestra Password incorrecta, esto no afecta el funcionamiento del programa ya que el led se enciende y apaga tal y como se estable en el objetivo, ademas esto no sucede cuando se ingresa la contraseña correcta (si alguien revisa el código y descubre el problema le agradeceríamos que comparta la solución en los comentarios.
Este proyecto solo esta pensando para encender un led en caso de recibir la contraseña correcta, sin embargo solo se requiere de un modulo de relevadores y un cerradura electromagnética para implementar este proyecto a una escala real, ya que la salida del pin 13 del arduino es suficiente para mandar las señales a los relevadores.
Sin más por el momento esperamos que les halla servido esta practica que hoy desarrollamos, si tienen más ideas para otras practicas pueden dejar su comentario e intentaremos realizarla.
Nombre del autor: Luis Antonio De La Cruz Reyes.
Rango en el Staff: Administrador y fundador
Descripción: Mi nombre es Luis, un egresado de la carrera de Ingeniería Electrónica, el motivo por el cual funde y cree esta página, fue para formar un sitio que recopilara todo lo que se va a prendiendo durante la carrera, con el fin de que este conocimiento no se perdiera y sea de utilidad para las futuras generaciones.
Hola. Este proyecto es muy interesante. Yo estoy intentando hacer una cerradura con teclado, tarjeta RFID y una pantalla led, me gustaría que me ayudaran a juntar el código del teclado y la tarjeta, ya que apenas estoy comenzando con arduino. Muchas gracias!
pasalo culo, porfis
hola muy buen proyectp.
y para el pequeño error de la aparicion del password incorrecto solo cambiamos todo de esta linea
if(codigo!=contrasena) //empieza un nuevo ciclo, esta vez indicamos si el código es diferente que la contraseña siga con el siclo
{
POR ESTA:
else{
Y YA QUEDA PERFECTO CON ESO.
SALUDOS
sbes como agregar un semaforo a el teclado?
También puede solucionar el error indicando al final del ciclo de contraseña correcta que se inicie de nuevo la variable cont. Es decir
If (…){Serial.print ()….;
cont=0;
}
Pero esto hace que el ciclo de comprobacion de contraseña se inicie de nuevo.
Está muy bien para enseñar como se escribe una contraseña.
Si agregas un ELSE antes del IF(CODIGO!=CONTRASEÑA) se resuelve tu problema
else//agregar esta linea
if(codigo!=contrasena)
alguien sabe como agregar un semaforo al teclado??
hola, y como seria para apagar el led con una contraseña diferente