Vous êtes sur la page 1sur 10

DISEO CON MICROCONTROLADORES

ELVIS HOLVEIN AMADO GONZALEZ


CESAR CORREA
DAVINSON RODRIGUES

SERVICIO NACIONAL DE APRENDIZAJE


AUTOMATIZACION INDUSTRIAL
YOPAL CASANARE
2014

Contenido
Pg.

INTRODUCCION.............................................................................................. 3
OBJETIVOS..................................................................................................... 4
1. DISEO DE LA CERRADURA ELECTRONICA..................................................5
2. MONTAJE DE LA CERRADURA EN PROTEUS.................................................8
3. PROGRAMACION EN PIC C COMPILER.........................................................9
4. CONCLUSIONES........................................................................................ 10

INTRODUCCION
En la actualidad existen muchos dispositivos que deben ser monitoreados y
controlados constantemente. Estas tareas involucran la presencia permanente
de personal en el lugar fsico, que cumpla con la funcin de observar el
comportamiento del dispositivo y de tomar medidas en caso de que un evento
extraordinario suceda.
La presencia permanente de este personal, a su vez implica costos para las
empresas que no siempre estn dispuestos a pagar. Un ejemplo conocido es el
uso de personal de seguridad en una portera de acceso a personas donde el
ingreso siempre este restringido a personal autorizado.
Para este tipo de caso existen las cerraduras electrnicas o automatizadas, la
cual consisten en sistemas seguros donde solamente ingresa a un sitio
determinado el personal autorizado poseedor de una clave de acceso secreta.
Este documento plantea una solucin a este tipo de caso, donde se realizara
un diseo de una cerradura electrnica a partir de la programacin de un
microcontrolador pic16f876A cuyo propsito ser abrir una puerta de acceso
mediante la digitacin de una clave secreta.

OBJETIVOS

Realizar y explicar el diseo de una cerradura electrnica a partir del uso de


microcontrolador pic16f876A.
Realizar la programacin del funcionamiento automtico de la cerradura
electrnica en el software PICC y compilarlo para poder cargarlo al pic16f876A.
Obtener a travs de una simulacin en software proteus, una idea visual del
funcionamiento prctico y real de la cerradura electrnica.
Aplicar en la prctica la construccin de una cerradura electrnica, una vez se
ejecute correctamente la simulacin.

1. DISEO DE LA CERRADURA ELECTRONICA

El diseo de la cerradura electrnica se realiza a partir de la escogencia de un


microcontrolador Pic16f876A al cual se le van a dar una serie de instrucciones
para hacer que la cerradura electrnica funcione.
Lo que se quiere al finalizar la programacin del dispositivo es a travs de un
display lcd 16x2 aparezca la leyenda DIGITE SU CLAVE en el primer rengln,
simultneamente aparecer en el segundo rengln la frase Ingrese Digito 1,
Digito 2, Digito 3; que al ingresar una clave de tres (3) dgitos a travs de un
teclado matricial 4x3 se desbloquee una cerradura para poder acceder de un
lugar a otro. Se tiene previsto que si la clave ingresada es incorrecta la
cerradura no se desbloqueara y aparecer la leyenda en display lcd de puerta
cerrada.
Para que todo lo explicado anteriormente tenga efecto se proceder a
programar el microcontrolador pic16f876A de la siguiente manera:
Lo primero que debemos hacer es incluir el fichero del pic16f876A de la
siguiente forma: #include <16f876a.h>
Luego incluimos los fusibles que utilizara el pic16f876A de la siguiente
forma: #fuses hs, nowdt, nolvp, noprotect
Ahora incluimos en la programacin el oscilador que debemos utilizar
para nuestro microcontrolador, en este caso se escogi uno de 4MHZ
#use delay (clock=4000000)
Seguido a esto diremos que el puerto C del microcontrolador ser
utilizado como lectura, escritura y entrada de datos al lcd. Esto se
escribe de la siguiente manera: #define lcd_data_port getenv("sfr:portc")
Igualmente incluiremos la librera del lcd que utilizamos as: #include
<lcd.c>
Ahora vamos a decir que el puerto B del microcontrolador ser para
utilizar el teclado matricial: #define use_portb_kbd true
Paso a seguir, incluimos la librera del teclado que vamos a utilizar de la
siguiente forma: #include <kbd.c>
Despus diremos que vamos a utilizar el puerto A del microcontrolador
como entrada y/o salida, as: #use standard_io(a)
Luego incluimos #include <stdlib.h> la cual es el archivo de cabecera de
la biblioteca estndar de propsito general del lenguaje de programacin
C, contiene los prototipos de funciones de C para gestin de memoria
dinmica, control de procesos y otras.
Seguimos programando nuestro microcontrolador y ahora escribimos
#rom 0x2100 esta etiqueta nos dice que guardaremos datos en las
posiciones 0,1 y 2 de la memoria eeprom, en este caso seran los tres
dgitos de la clave de la cerradura la que se guardara.
Ahora vamos a iniciar la parte que se va a ejecutar del programa
iniciando con la etiqueta void main () {todo lo que se escriba dentro de
este tipo de corchetes es lo que ejecutara el microcontrolador.
5

Declaramos las variables k y la variable i; la variable k corresponde a la

variable de datos que en este proyecto corresponde a la clave de la


cerradura. La variable i corresponde a un nmero entero positivo o
negativo que se ingresara en la variable k. su nomenclatura en el
programa es de la siguiente manera: char k; int i; char data [3], clave [3].
Ahora nos disponemos a inicializar el teclado 4x3 y el display lcd, para
ellos se escribe en el programa de la siguiente manera: lcd_init ();
kbd_init (); port_b_pullups (TRUE); el port_b_pullups (TRUE) lo que
hace es activarnos las resistencias internas del puerto b donde
conectaremos el teclado.
ahora utilizamos un bucle (while), (un bucle es hacer que cuando alguna
declaracin se cumpla, entonces se ejecutan algunas acciones) y
decimos que cuando la variable i=0, no se ha ingresado ningn dato en
el teclado y deber aparecer la leyenda DIGITE SU CLAVE en el rengln
superior del lcd e Ingrese Digito 1 en el rengln inferior del lcd, para esto
se
escribe
en
el
programa
de
la
siguiente
manera:
printf(lcd_putc,"\fDIGITE SU CLAVE 1\n"); printf(lcd_putc,"\nIngrese
Digito 1\n");
Luego utilizamos otro bucle (while 2) para cuando la variable i es
diferente de cero (0) pero hasta mximo 3 datos (i<=2), cuando esto
sucede, es decir cuando ingresamos el primer digito de la clave, el
teclado inicia a leer el dato ingresado y para ellos se utiliza el comando
k=kbd_getc();
Luego se da la directiva if, de que si la variable k es diferente de 0, es
decir se han ingresado los datos de la clave; entonces se deben guardar
los datos en la posicin establecida inicialmente en la memoria y deber
aparecer en el display lcd la leyenda Ingrese Digito2, Ingrese Digito 3,
cada vez que se oprima la segunda y tercera tecla de la clave. Para ello
se debe escribir el comando if (k!=0)
{data[i]=k; i++;
printf(lcd_putc,"\fIngrese Digito %u\n",i+1);
ahora escribimos la directiva for y decimos que cuando se han ingresado
los datos de la clave, esta se ingresan a la variable clave y se compara
con los datos de la clave establecida inicialmente, para esto escribimos
de la siguiente manera: for (i=0;i<=2;i++) { clave[i]=read_eeprom(i);} if
((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2])) si al
comparar la clave se obtiene que es correcta deber aparecer la leyenda
en el display lcd puerta abierta y tendr que activarse una salida en el
pin A_0 del microcontrolador durante 5 segundos el cual nos activara un
rel que a su vez abrir la cerradura de la puerta, transcurrido este
tiempo deber regresar el pin A_0 a un nivel bajo o desactivarse, lo que
nos indicara en la prctica que la cerradura de la puerta se cerrara
nuevamente ya que el rel vuelve a su posicin inicial normalmente
abierto;
en la programacin quedara de la siguiente manera:
printf(lcd_putc,"\f
Puerta
Abierta");
output_high(PIN_A0);
delay_ms(5000); output_low(PIN_A0);}
Y por ltimo ingresamos la directiva else, la cual nos indica que si la
clave que se ingres y se compar con la clave establecida inicialmente

no concuerda, entonces deber aparecer en el display del lcd la leyenda


puerta cerrada durante 1 segundo; transcurrido este lapso de tiempo
volver a pedirnos la clave desde el principio; en la programacin
aparecer de la siguiente manera: else printf(lcd_putc,"\f Puerta
Cerrada"); delay_ms(1000);

2. MONTAJE DE LA CERRADURA EN PROTEUS

GRAFICO 1 CONEXIN DEL PIC AL TECLADO Y AL LCD, SE INCLUYE


OSCILADOR Y UN RESET

GRAFICO 2 SALIDA DEL PIN_A0 HACIA UN RELE ENCARGADO DE ABRIR Y


CERRAR LA CERRADURA

3. PROGRAMACION EN PIC C COMPILER

4. CONCLUSIONES
Se logr realizar el diseo en el programa proteus de una cerradura electrnica
a partir del uso de dispositivos electrnicos como resistencias, diodos,
capacitores, microcontroladores, etc.
Se logr entender las directivas bsicas de programacin en el programa pic c
compiler con el fin de programar el microcontrolador.
Se logr realizar la simulacin fsica real del dispositivo programado utilizando
un programador pickit 3 y a su vez verificar su funcionamiento practico.

10