Vous êtes sur la page 1sur 19

Instituto Tecnolgico de Quertaro

GRUPO Y SALN:
Grupo 0V, Saln G23

MATERIA:
Microcontroladores

CONTENIDO:
Proyecto: Cerradura Electrnica.

INTEGRANTES DEL EQUIPO 4:


Valdivia Meja Martn Enrique
Noguez Cruz Hctor
lvarez Melgar Jos Francisco.

FECHA DE ENTREGA:
06/06/2014

REPORTE DE LA CERRADURA ELECTRNICA

INTRODUCCIN
Este proyecto fue elaborado para contar con un sistema de seguridad
electrnico, por medio de una cerradura. E campo de aplicacin de este puede ser
desde una caja fuerte, la puerta de una casa, la puerta de una habitacin, algn
armario, etc. Tambin se llev a cabo con el propsito de no necesitar de una llave
para este tipo de seguridad, ya que es muy frecuente perder u olvidar las llaves.
Nuestra prctica conlleva en elaborar un sistema de una cerradura electrnica,
con contrasea reprogramable. Con la que podamos tener una mayor seguridad
en nuestros hogares, cuartos y sistemas en dnde se requiera seguridad.

OBJETIVOS
Dar una visin prctica de los principios de diseo de sistemas
implementados con micro-controladores.
Convencer a la necesidad de la implementacin de los diseos
tradicionales con aplicaciones en micro-controladores.
Disear un sistema de seguridad digital.

MARCO TERICO
Para el desarrollo del proyecto es necesario conocer cuestiones como el
funcionamiento de la LCD, el teclado matricial, y el software de programacin
PICC, adems de algunos conceptos de electrnica analgica como el uso de
transistores como etapas de potencia y el uso de la memoria EEPROM del
microcontrolador.

Cerradura Electrnica.
Hemos desarrollado un pequeo proyecto suponiendo que hemos sido
contratados por una empresa fabricante de puertas de seguridad para disear y
fabricar la parte electrnica de una cerradura electrnica multiusos.
El sistema estar colocado en puertas interiores y exteriores. Controlar acceso a
laboratorios y cuartos privados. Se usar en recintos donde el acceso deba estar
muy restringido y controlado.

Las claves de cada usuario sern de cuatro dgitos, para entrar debern pulsarse
despus del nmero del usuario, anteriormente ingresado y guardado en la
memoria de nuestra cerradura. Si el usuario lo desea podr modificar la
contrasea con la que puede ingresar al laboratorio, cuarto y hogar en dnde se
encuentre instalada la cerradura.
Cabe mencionar que las cerraduras electrnicas actuales permiten adoptar un
cierre oculto de alta seguridad sobre cualquier puerta batiente o corredera, de una
o dos hojas, de madera o de metal, sea la instalacin de forma horizontal o
vertical.
A continuacin veremos algunas de las cerraduras electrnicas que podemos ver
en el mercado actualmente.

Cerraduras Electrnicas Actuales.

Memorias EEPROM
EEPROM responde a Erasable Programmable Read Only Memory que
se puede traducir como memoria programable borrable de solo lectura. Tambin
se la conoce como E2-PROM. Como su nombre sugiere, una EEPROM puede ser
borrada y programada con impulsos elctricos. Al ser una pieza que se puede
gestionar por estos impulsos elctricos, podemos realizar todas estas operaciones
de reprogramacin sin tener que desconectarla de la placa a la cual va conectada.
La EEPROM tambin se conoce como non-volatile memory o memoria no voltil
y es debido a que cuando se desconecta la energa, los datos almacenados en la
EEPROM no sern eliminados quedando intactos. Las EEPROM ms nuevas no
tiene datos almacenados en ellas y deben ser primero configuradas con un

programador antes de ser usadas. La informacin almacenada dentro de este


dispositivo puede permanecer durante aos sin una fuente de energa elctrica.
Las EEPROM raramente fallan, y cuando lo hacen suele ser por picos elctricos y
sobrecargas de energa, provocando perdida de datos o que estos datos queden
daados.

Memorias EEPROM
Teclado matricial.
Un teclado est compuesto de una serie de interruptores (pulsadores), los cuales
estn conectados en forma de matriz.
Aunque los teclados pueden tener presentaciones de 4x3 (4 renglones x 3
columnas) o bien de 4x4, no observamos que salen 12 o 16 cables
respectivamente, es decir no hay un cable por cada tecla. Lo normal es que se
tengan 8 cables, para el caso de un teclado de 4x4, 4 cables corresponden a cada
uno de los renglones y los 4 restantes a las columnas.

Dentro del aprendizaje del manejo del teclado debe considerarse el saber
identificar que cable corresponde a que columna o rengln, para despus
conectarse al microcontrolador. Esto se logra por simple observacin del impreso
del teclado.
Como se puede ver en la figura, cada botn del teclado esta por un lado
conectado a un rengln y a una columna, esto facilitar su identificacin. Por
ejemplo al presionar la tecla 3 estamos relacionando el rengln 2 con la columna 2
o en la tecla 4 rengln 1 con columna 0, como si fueran coordenadas.
Entonces lo que se debe hacer en el programa para identificar que tecla es la que
se est pulsando, es probar cada combinacin que se puede tener de renglncolumna.
PIC-C ofrece una librera para identificar el teclado KBD.c, esta librera esta
creada para un teclado de 4x3 y es la que usamos.
Funciones importantes de la librera;
//// kbd_init()
Must be called before any other function. Con esta funcin
inicializamos el teclado y equivale a estar habilitando cada uno de los renglones.
//// c = kbd_getc(c) Will return a key value if pressed . Con esta function se
captura el valor de la tecla y se asigna dicho valor a una variable que en este caso
la llaman c.
Se us el puerto B para poder usar las resistencias de pull-up del micro.
#else ////////////////////////////////////////////////// For the black keypad
#define COL0 (1 << 5)

// la columna 0 a PB5

#define COL1 (1 << 6)


TECLADO

CONEXIONES

#define COL2 (1 << 7)

NEGRO

Si el teclado es de 4x4 agregar otro define y asignarlo a PB0


#define ROW0 (1 << 1)
#define ROW1 (1 << 2)

CONEXIONES TECLADO NEGRO

#define ROW2 (1 << 3)


#define ROW3 (1 << 4)

#define ALL_ROWS (ROW0|ROW1|ROW2|ROW3)


#define ALL_PINS (ALL_ROWS|COL0|COL1|COL2)

HAY QUE AGREGAR OTRA COLUMNA

Y la forma de conexin que seguimos para el teclado .

Para la etapa de potencia se us un tip 120 y un relevador, el tip se us en


saturacin, con un beta de 250, configurado para soportar por lo menos 100 mA.
Botones
Hemos puesto botones para poder decidir entre cambiar de contrasea o
continuar con la contrasea que previamente hemos definido y escogido, tambin
necesitamos un botn para poder reiniciar el sistema cuando hayamos pasado el
nmero de intentos que se tienen definidos, en nuestro caso, el nmero de
intentos para poner una contrasea correcta es de 3 intentos.

Microcontrolador
El micro-controlador que ocupamos fue el PIC16F887, con el cual podremos hacer
uso de nuestros puertos de entrada y salida para poder declararlos y poder hacer
uso de ellos, as mismo tambin podemos hacer uso de nuestra memoria
EEPROM en la cual almacenaremos nuestra contrasea de cuatro dgitos y
podremos hacer las respectivas comparaciones para poder saber si la contrasea
es correcta o incorrecta.

Display LCD
Por ltimo haremos uso de un Display LCD para poder desplegar los dgitos que
vamos ingresando a travs de nuestro teclado matricial, as mismo lo que haremos
ser desplegar si la contrasea es correcta o incorrecta para poder conocer el
estado de nuestro sistema, en caso de ser correcta se abrir la puerta y en caso

de ser incorrecta, nuestro sistema emitir una alarma despus de haber intentado
tres veces con una contrasea incorrecta y se bloquear el sistema, teniendo que
reiniciar el sistema con un botn que estar en otro sitio.

DESARROLLO DEL PROYECTO


Materiales:

Teclado matricial
Resistencias
Protoboard
PIC16F887

3 Push Botton
Relevador
Bocina
Display LCD


Descripcin general

Por medio de un micro-controlador se desea elaborar una cerradura


electrnica con sistema de alarma, haciendo uso de un teclado matricial, y
un display lcd, los cuales permitirn ingresar y despegar la contrasea, la
contrasea adems podr ser cambiada cuando se requiera o cuando el
usuario quiera cambiar de contrasea con un botn oculto o que este en un
lugar seguro.

Esquema
Anteriormente definimos cmo era el funcionamiento de nuestro cdigo de
programacin, por medio de nuestro diagrama de flujo, ahora lo que
haremos ser definir el funcionamiento de nuestro hardware y cmo es que
este nos permite hacer la conexin e integracin de todos los elementos
que intervienen en el proyecto.

Diagrama de Bloques

Diagrama de flujo:


Cdigo

//Programa de una cerradura electrnica, con cambio de contrasea.


//DIRECTIVAS
#include <16f887.h>
#fuses put,nowdt,nolvp,nobrownout,noprotect,intrc_io
#use delay (clock=8000000)
#include <lcd.c> //librera de la lcd
#include <kbd.c> //librera del teclado matricial de 3x4
#byte OPTION_REG = getenv("SFR:OPTION_REG") // Referencia el
registro OPTION_REG
#bit RBPU = OPTION_REG.7 // Referencia al bit 7 de OPTION_REG
(RBPU)
#use fast_io(a)
#bit rele=0x05.7 //bit encargado de accionar el rel
#bit alarma=0x05.6 //bit encargado de la alarma
#byte caso=0x07 //Se declara el puerto C como una variable que se usar
para toma de decisiones.
#bit cambiar=0x07.0
#bit continuar=0x07.1
int adress;
int i, leer, c=0, a;
char mander,clave[4], pass[4];
//Se declaran los fusibles, los delays, las interrupciones externas, y los
contadores, se definen las variables con las que estaremos trabajando.
//FUNCIONES
inicializar(){

setup_adc_ports(NO_ANALOGS);

RBPU = 0; // Activar las resistencia pull-up del puerto B

lcd_init();

kbd_init();

set_tris_a(0b00111111);

set_tris_c(0b00000011);

leer=0;

i=0;

a=0;

rele=0;

alarma=0;

adress=0x00;

//Se define el bloque de las funciones, en el cual declararemos los puertos


con los que estaremos trabajando y se inicializan todas las variables, como
son el relevador, la alarma, la direccin para poder manejar la memoria
EEPROM en dnde estaremos guardando nuestra contrasea, entre otras
funciones.

//Lo que se hace en el siguiente bloque, es definir el programa principal, en


el cual se estar declarando la forma en que est funcionando la cerradura
electrnica, podemos ver que en este bloque de nuestro programa se
define como va a ser ingresada la contrasea, la manera en que hace la
comparacin de la misma contrasea y cmo ingresarla y desplegarla en
nuestro display lcd, al mismo tiempo, se puede ver la accin que se toma
cuando la contrasea es correcta y cuando la contrasea es incorrecta.
void main(){
inicializar();
inicio:

while(true){

lcd_gotoxy(1,1);

printf (lcd_putc,"Elige Accin

"); //despliegue del men principal

lcd_gotoxy(1,2);

printf (lcd_putc,"cambia/continua");

switch(caso){ //Se lee el Puerto C para tomar una decisin(cambiar la


contrasea, introducir contrasea para abrir, o seguir desplegando el men
de seleccin)

case 1:

printf(lcd_putc,"\f");

lcd_gotoxy(1,1);

printf(lcd_putc,"Bienvenido");

delay_ms(1000);

lcd_gotoxy(1,1);

printf(lcd_putc,"Configure su

lcd_gotoxy(1,2);

printf(lcd_putc,"Clave

delay_ms(1000);

");

");

a=1;

while(i<=3) //ciclo para introducir y grabar los datos de la contrasea y


desplegarlos en el display.
{

lcd_gotoxy(1,1);

printf(lcd_putc,"Elige nuevo

lcd_gotoxy(1,2);

printf(lcd_putc,"digito %d: ",a);

");

mander=kbd_getc();

if(mander!=0){

lcd_gotoxy(10,2);

printf(lcd_putc,"%c ",mander);

delay_ms(1200);

pass[i]= mander;

write_eeprom(adress,pass[i]);

adress++;

i++;

a++;

printf(lcd_putc,"\f");

lcd_gotoxy(1,1);

printf(lcd_putc," Digito");

lcd_gotoxy(1,2);

printf(lcd_putc,"Guardado");

delay_ms(500);

printf(lcd_putc,"\f");

break;

case 2: // En este caso se lee la eeprom , se introduce la clave se


compara con la clave guardada y toma la decisin de abrir o desplegar el
error.

c++;

printf(lcd_putc,"\f");

adress=0x00;

for(i=0;i<=3;i++){

pass[i]=read_eeprom(adress);
adress++; //Leer eeprom
}
adress=0x00;
i=0;
a=1;

while(i<=3) //introducer clave

lcd_gotoxy(1,1);

printf(lcd_putc,"Introduce");

lcd_gotoxy(1,2);

printf(lcd_putc,"digito %d:

mander=kbd_getc();

if(mander!=0){

lcd_gotoxy(10,2);

printf(lcd_putc,"*");

delay_ms(1000);

clave[i]=mander;

i++;

a++;

",a);

if(pass[0]==clave[0] && pass[1]==clave[1] && pass[2]==clave[2] &&


pass[3]==clave[3] ){ //coparacin

//while(true)
//{
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"clave correcta");
c=0;
delay_ms(1000);
rele=1;
delay_ms(5000);
rele=0;
//}

}
else{

printf(lcd_putc,"\f");

lcd_gotoxy(1,1);
printf(lcd_putc,"clave incorrecta");
delay_ms(1200);
lcd_gotoxy(1,1);

if(c==3){

while(true){

alarma=1;
delay_ms(1500);
alarma=0;
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"BLOQUEADO ");
lcd_gotoxy(1,2);
printf(lcd_putc,"REINICIE SISTEMA");
delay_ms(2000);
}
}
}
break;

default:

lcd_gotoxy(1,1);

printf(lcd_putc,"Elige Accin

lcd_gotoxy(1,2);

printf(lcd_putc,"cambia/continua");

goto inicio;

}
}
}

");


Ejemplo de cerradura electrnica en la vida diaria.

DIAGRAMAS, FOTOS Y RESULTADOS.

A continuacin podemos ver algunos de los diagramas y fotos de la


prctica que anteriormente hemos descrito:

iagrama elctrico.

Circuito de nuestra cerradura electrnica.


Teclado matricial con el que ingresaremos nuestra contrasea.

Funcionamiento de nuestro display mostrando la contrasea.

Elegir Accin (Cambiar contrasea o continuar con la contrasea actual)

RESULTADOS Y OBSERVACIONES INDIVIDUALES.

Martn Enrique Valdivia Meja

Como resultado de esta prctica, pudimos desarrollar una cerradura


electrnica con cambio de contrasea, la cual est compuesta de un
teclado matricial para poder ingresar nuestra contrasea y tambin est
compuesta de un display lcd, con el que podemos visualizar nuestra
contrasea, este proyecto lo podemos utilizar para muchas aplicaciones, ya
que el campo de la seguridad es muy amplio hoy en da, podemos
implementarlo en un cuarto, una casa, una oficina, una caja fuerte, o en
cualquier lugar en donde se requiera de una seguridad mayor que solo una
llave.

Tuvimos complicaciones a la hora de hacer el cdigo y saber cmo hacer la


lgica del programa, ya que tuvimos que aprender a hacer la comparacin
del carcter y hacer que este fuera posible compararse con la contrasea
que ingresa el usuario.
Hctor Noguez Cruz
Tuvimos un poco de problemas con la estructura del programa, al meter el
cambio de contrasea y no querer mover el uso del teclado matricial del
puerto B, ya que en un inicio tenamos planeado usar una interrupcin
externa para el cabio de clave, esto se resolvi con el uso de un switch
case. Otro problema fue identificar el tipo de variable que nos avienta el
teclado matricial tanto para poder guardarlo como para poder compararlo,
por ltimo al momento de armar el modelo fsico tuvimos conflictos con los
pines libres del puerto C que usamos para el switch case ya que no los
habamos aterrizado y mandaban unos falsos, en general fue un proyecto
bastante enriquecedor, fue un buen reto an cuando parece sencillo, mr
guatara aplicar este proyecto en la puerta de mi habitacin.
BIBLIOGRAFA

Compilador C-Ccs y Simulador Proteus para Microcontroladores PIC.