Está en la página 1de 7

INFORME

En el siguiente informe se describen, los pasos que se siguieron para el desarrollo de un sistema
de seguridad sobre unos casilleros utilizando Arduino. El objetivo principal de este proyecto es
abastecer una necesidad en el salón de dibujo, por lo cual se pensó, en unos casilleros, ya que
los estudiantes deben estar con los maletines a su lado, algo que genera incomodidad, y se
genera una sensación de desorden en el aula. Pero a esto se le agrego seguridad elecronica,
ya que estamos en la era tecnológica, se les agrego una apertura automática, por medio de
clave en teclado y con visualización en LCD.

INTRODUCCIÓN

En la actualidad, obtener un sistema de seguridad es muy importante y necesario, ya que el


mismo nos permite de una u otra forma estar un poco más seguros, es por ello que uno de los
objetivos de este proyecto es el brindar mayor seguridad y tranquilidad a las personas.

En si el objetivo general es desarrollar un sistema de seguridad sobre un casillero, el cual es


controlado por una pantalla LCD y un teclado matricial.

El proyecto presenta un mensaje en la pantalla LCD, desde el cual debemos introducir la clave
para activar la cerradura que nos permite abrir la puerta.

Al momento de ingresar una calve errada la pantalla mostrara “error”; y al tercer intento fallido
se activara la alarma sonora. A la vez cuando cerradura no cierra la puerta en un tiempo
determinado se volverá a activar la alarma sonora.

El circuito que construiremos utiliza una secuencia de cuatro dígitos, la cual nos proporciona
1000 posibilidades distintas para escoger la clave de acceso.

PROBLEMÁTICA PLANTEADA

Crear un sistema de seguridad que al momento de fallar en ingresar la clave y a la vez dejar la
puerta del casillero abierta nos avise cuando suceda.

SOLUCIÓN DE LA PROBLEMÁTICA PLANTEADA


El proyecto consiste en la implementación de un casillero con apertura electrónica que activa
un sensor magnético que desativara el electroimán que este sensor contiene, y se accedera
mediante una clave que será introducida por medio del teclado matricial a un micro controlador conformada por
un Arduino uno.
El Arduino uno será la encargada de comparar la clave introducida por el usuario con la estipulada por
defecto, permitiendo visualizar:“OK abierto” o “incorrecto”; mediante una pantalla de cristal
líquido (Liquid Crystal Display LCD). Si la clave digitada es correcta se habilita la cerradura
eléctrica y se activa el puerto de salida, en caso contrario se lanza el mensaje error.

DESARROLLO DEL PROYECTO

Materiales

Placa Arduino Uno

Arduino es una plataforma de hardware libre, basada en una placa con un micro controlador y

un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos


multidisciplinarios.

Es una plataforma de hardware y software de código abierto, basada en una sencilla placa con
entradas y salidas, analógicas y digitales, en un entorno de desarrollo que está basado en el
lenguaje de programación Processing. Es decir, una plataforma de código abierto para
prototipos electrónicos.
Al ser open source, tanto su diseño como su distribución, puede utilizarse libremente para el
desarrollo de cualquier tipo de proyecto sin necesidad de licencia.

Es una plataforma de hardware y software de código abierto, basada en una sencilla placa con
entradas y salidas, analógicas y digitales, en un entorno de desarrollo que está basado en el
lenguaje de programación Processing. Es decir, una plataforma de código abierto para
prototipos electrónicos.
Al ser open source, tanto su diseño como su distribución, puede utilizarse libremente para el
desarrollo de cualquier tipo de proyecto sin necesidad de licencia.

Teclado matricial 4x4

Un teclado matricial es un simple arreglo de botones conectados en filas y columnas, de modo


que se pueden leer varios botones con el mínimo número de pines requeridos. Un teclado
matricial 4x4 solamente ocupa 4 líneas de un puerto para las filas y otras 4 líneas para las
columnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un micro
controlador. Si asumimos que todas las columnas y filas inicialmente están en alto (1 lógico), la
pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y checkear cada
columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de las filas se
recorre hacia la siguiente y así secuencialmente.

Pantalla LCD 16x2

La pantalla de cristal líquido o LCD (Liquid Crystal Display) es un dispositivo Controlado de


visualización gráfico para la presentación de caracteres, símbolos o incluso dibujos (en algunos
modelos), es este caso dispone de 2 filas de 16 caracteres cada una, aunque los hay de otro
número de filas y caracteres. Este dispositivo está gobernado internamente por un micro
controlador y regula todos los parámetros de presentación, este modelo es el más comúnmente
usado y esta información se basará en el manejo de este u otro LCD compatible.

Funcionamiento del sistema

El programa se basa principalmente en un menú mostrado por el LCD a través del cual podemos
visualizar la activación de nuestra chapa eléctrica mediante el ingreso de una contraseña. Las
teclas numéricas se reservan únicamente para los dígitos de la contraseña. Una vez ingresado
la contraseña, si fuera este correcto nos abriría el casillero mediante el sensor magentico.
Programación

Para la realizar la programación se ha usado el Software Arduino que se puede descargar


gratuitamente por Internet.

Código

#include <LiquidCrystal.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 lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

const byte Filas = 4; //Cuatro filas


const byte Cols = 4; //Cuatro columnas
byte Pins_Filas[] = {9,8,7,6};//Pines Arduino a las filasbyte
Pins_Cols[] = {5,4,3,2}; // Pines Arduino a las columnas.
//no utilizar los pines 1 y 0 para no interferir en Rx y Tx

char Teclas [ Filas ][ Cols ] =


{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

char codigoSecreto[4] = {'2','2','5','5'}; // Aqui va el codigo secreto


// Para cambiar el tamaño de la clave, solo hay que cambiar el tamaño del array

int posicion=0; // necesaria para la clave


int cursor=5; // posicion inicial de la clave en el LCD
int clave=0; // para el LCD
int luz=0; // para el LCD
int tiempo=0; // para el LCD
int ledVerde=11; // pin para el LED verde
int ledRojo=12; // pin para el LED rojo
int buzzer=10; // pin altavoz

Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);

void setup()
{
Serial.begin(9600) ;
lcd.begin(16,2); // inicializamos el LCD.
lcd.noBacklight(); // apagamos LCD
pinMode (ledVerde,OUTPUT);
pinMode (ledRojo, OUTPUT);
pinMode (buzzer, OUTPUT);
digitalWrite(ledRojo,HIGH); // encendemos el LED rojo
digitalWrite(ledVerde, LOW); // apagamos el verde

lcd.setCursor(0,0); // situamos el cursor el la posición 2 de la linea 0.


lcd.print("Introduzca clave"); // escribimos en LCD
lcd.setCursor(cursor,1); // cursor en la posicion de la variable, linea 1
}

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);

//--- Condicionales para comprobar la clave introducida -----------


// comparamos entrada con cada uno de los digitos, uno a uno
if (pulsacion == codigoSecreto[posicion])
posicion ++; // aumentamos posicion si es correcto el digito

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);

lcd.setCursor(5,1); // cursor en la posicion 5, linea 1


clave=1; // indicamos que se ha introducido la clave
digitalWrite(ledRojo,LOW); // apagamos el LED rojo
digitalWrite(ledVerde, HIGH); // encendemos el verde
}
//--- En el caso de que este incompleta o no hayamos acertado ----------
if(cursor>8) // comprobamos que no pase de la cuarta posicion
{ cursor=5; // lo volvemos a colocar al inicio
posicion=0; // borramos clave introducida
lcd.setCursor(5,1);
lcd.print(" "); // borramos la clave de la pantalla
lcd.setCursor(5,1);
if(clave==0) // comprobamos que no hemos acertado
{ tone(buzzer,70,500); // para generar
delay(250); // tono de error
noTone(buzzer);
}
}
}
}

//--- Condicionales para encender o apagar el LCD --------------


if (pulsacion == '#' && luz==0)
{ // comprobamos tecla y encendemos si esta apagado
lcd.backlight(); // encendemos
luz=1; // indicamos que esta encendida
pulsacion =0; // borramos el valor para poder leer el siguiente condicional
}

if (pulsacion == '#' && luz==1)


{ // comprobamos tecla y estado
lcd.noBacklight(); // apagamos
luz=0; // indicamos que esta apagada
}

//--- Condicionales para resetear clave introducida -------------


if (pulsacion == '*')
{ // asterisco para resetear el contador
posicion = 0;
cursor = 5;
clave=0;
posicion=0;
lcd.setCursor(0,0); // situamos el cursor el la posición 2 de la linea 0.
lcd.print("Introduzca clave"); // escribimos en LCD
lcd.setCursor(5,1);
lcd.print(" "); // borramos de la pantalla los numeros
lcd.setCursor(5,1);

digitalWrite(ledRojo,HIGH); // encendemos el LED rojo


digitalWrite(ledVerde, LOW); // apagamos el verde
}
}

Conclusiones
En la actualdad las mejoras en ciertos espacios no solo son de manera civil, sino que las
tecnologías, ayudan en gran medida, a hacer fácil, la vida del hombre, y es por eso que debe
ser aprovechada responsablemente.

Hoy en día el uso e implementación de microprocesadores han sido de mucha importancia y


relevancia en nuestras vidas, debido a la gran versatilidad que ellos poseen al momento de
requerir instalar algún algoritmo para poder crear sistemas automatizados.

Como podemos observar, para este proyecto se hizo uso exhaustivo de programación además
de re instruirnos en cuanto al lenguaje a programar debido a la complejidad del objetivo principal
del sistema de seguridad.

Para terminar este sistema de puerta eléctrica es un proyecto para la vida futura.

Bibliografía
https://www.academia.edu/16200566/CERRADURA_ELECTRICA_CON_CLAVE_USANDO_
ARDUINO
http://jamangandi2012.blogspot.com/2012/10/que-es-arduino-te-lo-mostramos-en-un.html

http://www.circuitoselectronicos.org/2011/03/teclado-matricial-4x4.html

https://es.scribd.com/doc/44252680/LCD-16X2

http://www.youtube.com/watch?v=bHCwHxJGs1I

http://www.tech-zen.tv/episodes/shows/make-it-work/episodes/keypad-input-to-an-arduino-
episode-11

También podría gustarte