P17 Arduino CortesYañezGarciaSanachezPonceLopez
P17 Arduino CortesYañezGarciaSanachezPonceLopez
P17 Arduino CortesYañezGarciaSanachezPonceLopez
INGENIERÍA EN COMPUTACIÓN
ARQUITECTURA DE COMPUTADORAS
PROFESOR: M. en C. JESÚS GARCÍA RUÍZ
EQUIPO N° 3
INTEGRANTES:
CORTES YAÑEZ ERICK
GARCIA SANCHEZ MARTIN EDUARDO
PONCE LÓPEZ JONATHAN SAÚL
GRUPO: 6CM24
12/04/2024
Programa 17
Objetivo
El objetivo de este circuito en Arduino es implementar una cerradura electrónica de 4
dígitos que identifica al usuario mediante una clave. Se utiliza un teclado numérico 4x3
y un display LCD para mostrar mensajes de estado y la entrada de la clave. El código
establece una clave predefinida y verifica si la clave ingresada por el usuario coincide
para permitir el acceso.
El circuito incluye la librería Keypad para el manejo del teclado y LiquidCrystal para el
control del display LCD. Se definen las conexiones de los pines del teclado y del
display LCD, así como la matriz de caracteres del teclado y la clave autorizada.
En la función setup(), se inicializan los componentes y se establece el estado inicial de
la cerradura electrónica. En el bucle principal (loop()), se espera a que el usuario
ingrese la clave por el teclado, se verifica la clave ingresada y se muestra el mensaje
correspondiente en el display LCD. Dependiendo de la clave ingresada, se permite o se
deniega el acceso, mostrando mensajes de estado adecuados en el display LCD.
Enunciado
Para desarrollar el circuito de este código en Arduino, conecta un teclado numérico 4x3
al Arduino, asegurándote de conectar las filas y columnas según la matriz de
conexiones definida en el código. También conecta un display LCD utilizando los pines
especificados en el código para el bus de datos y los pines RS, RW y E.
Además, asegúrate de incluir las librerías Keypad y LiquidCrystal en tu entorno de
desarrollo de Arduino. Luego, carga el código proporcionado en el microcontrolador
para implementar una cerradura electrónica de 4 dígitos que identifique al usuario
mediante una clave predefinida y muestre mensajes en el display LCD según el estado
de la clave ingresada.
Diseño fritzing esquemático
Diseño de software
Construcción del programa
/*Programa 17
* Programa de cerradura electrónica de 4 digitos
* identificando a usuario
*/
// Añadimos la librería keypad y LiquidCrystal
#include<Keypad.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12,13); //10 a 13, bus de datos
// 7(RS), 8(RW), 9(E)
//creamos una constante para definir que nuestro teclado tiene 4 filas
const byte ROWS=4;
//creamos una constante para definir que nuestro teclado tiene 3 columnas
const byte COLS=3;
//Creamos una matriz con los caracteres del teclado
char keys[ROWS][COLS]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
//Indicamos a que pines de Arduino están conectadas las filas del teclado
byte rowPins[ROWS]={6,5,4,3,};
//Indicamos a que pines de Arduino están conectadas las columnas
byte colPins[COLS]={2,1,0};
char i[4]={0,0,0,0}; //vector que contendrá 4 los digitos de la clave
int j=0;
int clave=0;
int cont=0;
//Creamos un objeto de la librería Keypad para usar sus funciones
Keypad keypad=Keypad(makeKeymap(keys),rowPins,colPins,ROWS, COLS);
void setup()
{
lcd.begin(16,2);
pinMode(A0,OUTPUT);
cerrado();
borrar();
inicio();
}
void loop()
{
lcd. SetCursor(7,0);
while(cont<4)
{
char key
=keypad.getKey();
i[j]=key
;
if
(key
)
{
lcd.print("*"); //Aparecen * de los números tecleados
lcd.LeftToRight();
j=j+1;
cont=cont+1;
}
}
//Clave autorizada
if(i[0]=='1'&&i[1]=='2'&&i[2]=='1'&&i[3]=='2')
{
borrar(); //*****
lcd.setCursor(0,0);
lcd.write("CLAVE ACEPTADA");
analogWrite(A0,255);
delay(100); //*****
borrar();
lcd.setCursor(0,0);
lcd.write("Saludos");
lcd.setCursor(0,1);
lcd.write("Usuario1");
i[0]=0;
i[1]=0;
i[2]=0;
i[3]=0;
delay(4000);
borrar();
inicio();
analogWrite(A0,0);
}
else
{
if(i[0]=='2'&&i[1]=='3'&&i[2]=='2'&&i[3]=='3')
{
borrar(); //*****
lcd.setCursor(0,0);
lcd.write("CLAVE ACEPTADA");
analogWrite(A0,255);
delay(100); //*****
borrar();
lcd.setCursor(0,0);
lcd.write("Saludos");
lcd.setCursor(0,1);
lcd.write("Usuario2");
i[0]=0;
i[1]=0;
i[2]=0;
i[3]=0;
delay(4000);
borrar();
inicio();
analogWrite(A0,0);
}
else
{
borrar(); //*****
lcd.setCursor(0,0);
lcd.write("CLAVE INCORRECTA“
delay(3000););
borrar();
lcd.setCursor(0,0);
lcd.write("ACCESO");
lcd.setCursor(0,1);
lcd.write("DENEGADO");
i[0]=0;
i[1]=0;
i[2]=0;
i[3]=0;
delay(3000);
borrar();
cerrado();
delay(3000);
borrar();
inicio();
}
}
cont=0;
}
//Funciones
void borrar() {
lcd.setCursor(0,0);
lcd.write(" ");
lcd.setCursor(0,1);
lcd.write(" "); }
void inicio() {
lcd.setCursor(0,0);
lcd.write("ENTRAR");
lcd.setCursor(0,1);
lcd.write("CLAVE"); }
void cerrado() {
lcd.setCursor(0,0);
lcd.write("ACCESO");
lcd.setCursor(0,1);
lcd.write("CERRADO"); }
Resultados
Conclusión
Poner en práctica el desarrollo del circuito de esta cerradura electrónica de 4 dígitos
con identificación de usuario en Arduino ha sido una experiencia educativa y
reveladora. Al implementar este proyecto, hemos podido comprender mejor el uso de
componentes como el teclado numérico y el display LCD, así como la integración de la
programación para crear un sistema de seguridad funcional.
El circuito utiliza la librería Keypad para manejar el teclado numérico y la librería
LiquidCrystal para controlar el display LCD, lo que nos ha permitido aprender sobre la
configuración y uso de estas herramientas en proyectos de electrónica y Arduino.
La interacción entre el usuario y la cerradura electrónica, donde se ingresa una clave
de 4 dígitos y se verifica su validez, ha sido especialmente instructiva. Además, la
visualización de mensajes en el display LCD según el estado de la clave ingresada ha
agregado un nivel de interactividad significativo al proyecto.