Control de Acceso Con Clave
Control de Acceso Con Clave
Control de Acceso Con Clave
No es raro que de una forma u otra acabemos encontrandonos con la necesidad de montar un
sistema de control que nos permita activar algo, una cerradura por ejemplo, mediante un codigo
numerico tecleado en un keypad a modo de clave de control de acceso.
Y como estoy seguro de que esto es algo que se nos a ocurrido a muchos, pero rara vez sacamos el
tiempo suficiente para dedicarle un rato, ha llegado el momento de presentar una solucion que
nos envia nuestro colaborador y amigo Jesus, que hace exactamente esto.
También nos serviría para la desactivación de una alarma, pero eso requiere un proyecto más
complejo pues se deben anular diversos sensores tipo PIR, magnéticos, sirena, etc, aparte de un
sistema antisabotaje. Pero como base para montajes mayores nos sería útil.
Los Tened en cuenta que el problema con las alarmas y sistemas de seguridad, no es tanto
su montaje e implementación, como desarrollar la certeza de que no estamos siendo
hackeados, es decir que no nos están puenteando la linea o los sensores de modo que se
cuelen los malos mientras nosotros en nuestra inocencia creemos que todo va bien.
Controlaremos el display LCD con el conversor I2C para sólo utilizar dos pines de Arduino para su
control. Así mismo, alimentaremos el display con una fuente externa de 5V, para no sobrecargar
nuestro Arduino, sobre todo cuando se ilumina la pantalla.
El motivo fue que al activar la retroiluminación y encender un LED, bajaba un poco la intensidad
del display, síntoma de falta de corriente y con la alimentación externa para el display se solucionó
el problema.
Arduino
KEYPAD: 9, 8, 7, 6, 5, 4, 3, 2
De izquierda a derecha según la imagen
Arduino A4 A5 GND 5V 10 11 12
Display SDA SCL GND Vcc
I2C
Led verde X
Led rojo X
Buzzer X
PROGRAMA DE CONTROL
Antes de nada vamos a necesitar un par de librerías para manejar el display y el teclado. Para el
teclado vamos a usar Libreria keypad y para el display Liquid Crystal I2C que ya hemos usado en
sesiones anteriores.
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
/* Funcion de configuracion de pines del modulo LCD/I2C
(Direccion,en,rw,rs,d4,d5,d6,d7,backlight,polaridad)*/
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void loop()
{
char pulsacion = Teclado1.getKey() ; // leemos pulsacion
if (pulsacion != 0) //Si el valor es 0 es que no se ha pulsado ninguna tecla
{ // descartamos almohadilla y asterisco
if (pulsacion != '#' && pulsacion != '*' && clave==0)
{ lcd.print(pulsacion); // imprimimos pulsacion
cursor++; // incrementamos el cursor
tone(buzzer,350); // tono de pulsacion
delay(200);
noTone(buzzer);
if (posicion == 4)
{ // comprobamos que se han introducido los 4 correctamente
digitalWrite (13,HIGH); // encendemos LED
lcd.setCursor(0,0); // situamos el cursor el la pos 0 de la linea 0.
lcd.print("Clave correcta "); // escribimos en LCD
delay(200); // tono de clave correcta
tone(buzzer,500);
delay(100);
noTone(buzzer);
tone(buzzer,600);
delay(100);
noTone(buzzer);
tone(buzzer,800);
delay(100);
noTone(buzzer);
Podemos también usar un alimentador común de 1 Amperio, para nuestro Arduino, y con un único
conector quedaría alimentado todo el circuito.