La seguridad es una preocupación importante en nuestro día a día, y las cerraduras digitales se han convertido en una parte importante de estos sistemas de seguridad. Hay muchos tipos de tecnologías disponibles para asegurar nuestro lugar, como los sistemas de seguridad basados en PIR, el sistema de seguridad basado en RFID, las alarmas de seguridad láser, los sistemas de matriz biológica, etc. Incluso ahora, hay cerraduras digitales que se pueden operar con nuestros teléfonos inteligentes, lo que significa que no más necesidad de mantener diferentes llaves, solo un teléfono inteligente puede operar todas las cerraduras, este concepto se basa en Internet de las cosas.
En este proyecto, hemos explicado un simple bloqueo de código electrónico utilizando el Microcontorller 8051, que solo se puede desbloquear mediante un código predefinido, si ingresamos el código incorrecto, el sistema alerta mediante sirena el timbre. Ya hemos creado una cerradura digital usando Arduino.
Explicación de trabajo:
Este sistema contiene principalmente microcontrolador AT89S52, módulo de teclado, zumbador y LCD. El microcontrolador At89s52 controla los procesos completos como tomar la contraseña del módulo del teclado, comparar las contraseñas predefinidas, activar el timbre y enviar el estado a la pantalla LCD. El teclado se utiliza para insertar la contraseña en el microcontrolador. El zumbador se usa para indicar una contraseña incorrecta y la pantalla LCD se usa para mostrar el estado o los mensajes en ella. Buzzer tiene un controlador incorporado mediante el uso de un transistor NPN.
Componentes:
- Microcontrolador 8051 (AT89S52)
- Módulo de teclado 4X4
- Zumbador
- LCD de 16x2
- Resistencia (1k, 10k)
- Resistencia pullup (10K)
- Condensador (10 uf)
- Led rojo
- Tabla de pan
- IC 7805
- 11,0592 MHz Cristal
- Fuente de alimentación
- Cables de conexión
Tomando datos de la matriz de teclado 4X4 usando la técnica de multiplexación:
En este circuito hemos utilizado la técnica de multiplexación para interconectar el teclado al microcontrolador 8051, para ingresar la contraseña en el sistema. Aquí estamos usando un teclado 4x4 que tiene 16 teclas. Si queremos usar 16 teclas, entonces necesitamos 16 pines para la conexión a 89s52, pero en la técnica de multiplexación necesitamos usar solo 8 pines para interconectar 16 teclas. Para que sea una forma inteligente de interconectar el módulo del teclado.
La técnica de multiplexación es una forma muy eficaz de reducir la cantidad de pines utilizados con el microcontrolador para proporcionar la entrada o la contraseña. Básicamente, esta técnica se utiliza de dos maneras: una es el escaneo de filas y la otra es el escaneo de columnas.
Aquí vamos a explicar el escaneo de filas:
Primero tenemos que definir 8 pines para el módulo de teclado. En el que los primeros 4 pines son columnas y los últimos 4 pines son filas.
Para el escaneo de filas, necesitamos dar datos o señales a los pines de las columnas y leer esos datos o señales desde el pin de la fila. Ahora suponga que damos los siguientes datos a los pines de las columnas:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Y leemos estos datos en los pines de la fila (por defecto, los pines de la fila son ALTOS debido a la resistencia de pull-up).
Si el usuario presiona la tecla número '1', entonces R1 cambia de ALTO a BAJO significa que R1 = 0; y el controlador entiende que el usuario ha presionado la tecla '1'. E imprimirá '1' en la pantalla LCD y almacenará '1' en matriz. Entonces, este cambio de ALTO a BAJO en R1, es lo principal por el cual el controlador entiende que se ha presionado alguna tecla, correspondiente a la Columna 1.
Ahora, si el usuario presiona la tecla número '2', entonces R1 permanece en ALTO ya que C1 y R1 ya están en ALTO. Por lo tanto, no habrá cambios, significa que el microcontrolador entiende que no se ha presionado nada en la columna uno. Y del mismo modo, este principio se aplica a todos los demás pines. Entonces, en este paso, el controlador solo espera las teclas en la columna uno: '1', '4', '7' y '*'.
Ahora, si queremos rastrear las claves en otras columnas (como en la columna 2), entonces necesitamos cambiar los datos en los pines de las columnas:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Este controlador de tiempo solo espera las teclas en la columna dos: '2', '5', '8' y '0', porque el cambio (ALTO a BAJO) solo ocurre cuando se presionan las teclas de la columna dos. Si presionamos cualquier tecla en la columna 1, 3 o 4, no ocurrirá ningún cambio, porque estas columnas están en ALTO y las Filas ya están en ALTO.
De la misma manera, las claves en las columnas C3 y C4 también se pueden rastrear haciéndolas 0, a la vez. Consulte aquí la explicación detallada: Interfaz del teclado con 8051. Consulte también la sección Código a continuación para comprender correctamente la lógica.
Explicación del circuito:
El diagrama de circuito de esta cerradura digital con 8051 se muestra a continuación y se puede entender fácilmente. Los pines de columna del módulo de teclado están conectados directamente al pin P0.0, P0.1, P0.2, P0.3 y los pines de fila están conectados a P0.4, P0.5, P0.6, P0.7 del puerto 0 del microcontrolador 89s52 Se conecta una pantalla LCD de 16x2 con el microcontrolador 89s52 en modo de 4 bits. Los pines de control RS, RW y En están conectados directamente a los pines P1.0, GND y P1.2. Y el pin de datos D4-D7 está conectado a los pines P1.4, P1.5, P1.6 y P1.7 de 89s52. Y un zumbador está conectado en el pin P2.6 a través de una resistencia.
Explicación del programa:
Hemos utilizado una contraseña predefinida en el programa, esta contraseña puede ser definida por el usuario en el siguiente código. Cuando el usuario ingresa una contraseña al sistema, luego el sistema compara la contraseña ingresada por el usuario con la contraseña almacenada o predefinida en el Código de programa. Si se produce una coincidencia, la pantalla LCD mostrará "Acceso rallado" y si la contraseña no coincide, la pantalla LCD mostrará "Acceso denegado" y el timbre sonará continuamente durante algún tiempo. Aquí hemos utilizado la biblioteca string.h. Al usar esta biblioteca, podemos comparar o unir dos cadenas, usando la función "strncmp".
En el programa, en primer lugar, incluimos el archivo de encabezado y definimos pines variables y de entrada y salida para el teclado y el LCD.
#incluir
Se ha creado la función para crear el retardo de 1 segundo, junto con algunas funciones de la pantalla LCD, como para la inicialización de la pantalla LCD, la impresión de la cadena, los comandos, etc. Puede encontrarlas fácilmente en Código. Consulte este artículo para conocer la interfaz de LCD con 8051 y sus funciones.
Después de esto, en el programa principal hemos inicializado LCD y luego leemos la entrada del Teclado usando la función del teclado () y almacenamos las claves de entrada en una matriz y luego las comparamos con los datos de la matriz predefinida usando strncmp.
void main () {zumbador = 1; lcd_init (); lcdstring ("Código electrónico"); lcdcmd (0xc0); lcdstring ("Sistema de bloqueo"); retraso (400); lcdcmd (1); lcdstring ("Resumen de circuito"); retraso (400); mientras que (1) {i = 0; teclado (); si (strncmp (pasar, "4201", 4) == 0)
Si la contraseña ingresada coincide, se llama a la función accept ():
void accept () {lcdcmd (1); lcdstring ("Bienvenida"); lcdcmd (192); lcdstring ("Aceptar contraseña"); retraso (200); }
Y si la contraseña es incorrecta, se llama a la función incorrecta ():
anular incorrecto () {zumbador = 0; lcdcmd (1); lcdstring ("Contraseña incorrecta"); lcdcmd (192); lcdstring ("PLZ Inténtelo de nuevo"); retraso (200); zumbador = 1; }
Verifique la función del teclado a continuación en el código que lee el módulo de teclado del formulario de entrada.