Вы находитесь на странице: 1из 15

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

FACULTAD DE PRODUCCIN Y SERVICIOS


ESCUELA PROFESIONAL DE INGENIERA
ELCTRICA

Cerradura
electrnica
Laboratorio de sistemas
digitales

Curso: Sistemas Digitales


Docente: Ing. Ricardo Pealoza
Integrantes:

ADRIAZOLA VIZARRETA
JUDITH
CAYANI MENDOZA MYCOL
APAZA CONDORI ERNESTO
HECTOR QUISPE
HUAMAN CONDORIMAY
KAREN

CERRADURA ELECTRNICA

Contenido
CERRADURA ELECTRONICA................................................................................. 2
Objetivo:........................................................................................................... 2
Materiales a utilizarse:................................................................................... 2
DESCRIPCION DEL PROYECTO:.......................................................................2
INFORMACION:................................................................................................. 2
CIRCUITO.......................................................................................................... 3
Desarrollo del proyecto:................................................................................... 4
DIAGRAMAS DE FLUJO...................................................................................... 4
Programacin en el lenguaje de programacin C:.....................................7
GESTOR_DE_ERRORES................................................................................... 10
Cdigo del programa principal MAIN:.............................................................11
NOTAS:........................................................................................................... 13

LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

CERRADURA ELECTRONICA
Objetivo:

Nuestro objetivo es llegar a disear y contruir una cerradura electronica


Aprenderemos a programar para poder controlar nuestra cerradura
Los conseptos primordiales a aprender son:
Estructura de un programa en C
Diseo estructurado de un programa
Metodologia del diseo de un programa

Materiales a utilizarse:

PICC Compiler
Proteus ISIS (Simulador)
Teclado matricial 4X4
LCD 16X2
PIC18F4550
3 LED (VERDE, ROJO y otro color)
3 Resistencias de 330 Ohms
4 Resistencias de 10K

DESCRIPCION DEL PROYECTO:

INFORMACION:
Cerradura electrnica con clave de 4 digitos alfanumricos , es decir, la clave puede ser
con letras o nmeros, usando teclado matricial y LCD. La cerradura contara con leds
indicadores de puerta abierta y puerta cerrada y un led indicador de alarma que se
activara despus de 5 intentos de contrasea equivocados.
Si el usuario introduce la contrasea correcta el sistema le da la bienvenida y da acceso
al sistema pudiendo controlar la apertura y el cierre de la puerta y cambiar la clave.

LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

CIRCUITO

LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

Desarrollo del proyecto:


Dado que utilizamos el lenguaje C el cual es un lenguaje estructurado debemos
aprovechar esta caracterstica y disear un programa bien estructurado, segmentado o
dividido mediante funciones que nos permita hacer un cdigo INTELIGIBLE (fcil de leer y
entender) de manera que nos permita posteriormente escalar el cdigo haciendo
mejoras o aadiduras (nuevas versiones) sin tantos problemas. En este punto ni siquiera
es necesario saber programar en C o en ningn lenguaje, es simplemente aplicar nuestra
lgica a la resolucin de un proyecto.
Dicho esto comenzaremos por definir como atacar el problema, utilizaremos la tcnica de
divide y venceras, es decir, VISUALIZAREMOS el esquema global o general del
proyecto y lo dividiremos en tareas simples que despus atacaremos individualmente una
por una.

DIAGRAMAS DE FLUJO

MAIN
CONDICIONES INICIALES
-Mensaje de inicio
-Asegurarse de cerrar la
puerta

PEDIR LA CLAVE
-Leer el teclado
-Ver si la clave es correcta

NO

GESTOR_DE_ERRORES
-Mostrar mensaje de error
-Llevar la cuenta de errores
-Activar ALARMA si es
necesario
LABORATORIO DE SISTEMAS DIGITALES

CLAVE CORRECTA?

SI

CONTROL_DE_USUARIO
-Abrir, Cerrar, Cambiar clave
y salir del sistema
-Resetear la cuenta de
errores
4

CERRADURA ELECTRNICA

Observamos que tenemos un esquema general simple ya que esta dividido en varias
tareas que resolveremos por separado posteriormente. Los bloques de CONDICIONES
INICIALES y PEDIR LA CLAVE posiblemente son muy simples y posiblemente no se
ejecuten en diversas partes del programa por lo que probablemente NO nos conviene
hacerlos como funciones.
En el caso de los bloques GESTOR_DE_ERRORES y CONTROL_DE_USUARIO son
bloques que probablemente representen un cdigo largo, nos conviene hacerlos
FUNCIONES ya que posteriormente podremos decidir que cambiar, aadir o mejorar en
cada caso de manera individual evitando cambiar el esquema general del proyecto.

GESTOR DE ERRORES

Incrementar
conta_errores

NO

Conta_errores >= 5?

HACERLA DE TOS!!
-Mostrar mensaje de
ALARMA
-Hacer parpadear un led o
buzzer
-Mostrar un mensaje
disuasivo LLAMANDO A
POLICIA
-Todo esto unos segundos
-Resetear conta_errores

Mostrar mensaje de
ERROR

LABORATORIO DE SISTEMAS DIGITALES

SI

REGRESAR

CERRADURA ELECTRNICA

CONTROL_DE_USUARIO

MENSAJE DE BIENVENIDA AL
SISTEMA
Muestra MENU de opciones

seleccionLee_teclado;

Seleccin== A?

SI

Seleccin==B?

SI

Seleccin==C?

SI

Seleccin== F?

Funcion ABRIR

Funcion CERRAR

Funcion CAMBIAR
CLAVE

NO

SI
Mostrar mensaje de despedida, cerrar
puerta y resetear contador de errores

LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

REGRESAR

Programacin en el lenguaje de programacin C:


1) La CABECERA, lo primero es aadir los archivos o libreras que usaremos en el
programa:

Vemos que se incluye la librera PICPLAY_18F4550.h la cual contiene TODAS las


configuraciones bsicas para que el PIC funcione a la mxima velocidad de 48MHz, luego
se incluyen las libreras de los dispositivos que se van a usar como el LCD y el Teclado
matricial 4X4.
2) Las variables globales, aqu declararemos las variables globales del programa, es
decir, aquellas que pueden ser leidas y modificadas desde cualquier funcin del
programa. Aqu ya tenemos las variables declaradas pero en la practica estas variables se
van aadiendo conforme vamos diseando el programa.

Como vemos las primeras dos variables declaradas son vectores de 4 elementos del tipo
char (caracteres), en el caso del vector llamado contrasea observamos que lo
inicializamos con los valores del 1 al 4 ya que esta ser la contrasea por default. Las
dems variables se vera su utilidad mas adelante en el programa.
3) Las definiciones, estas son aquellas que renombran palabras con la finalidad de facilitar
el entendimiento del programa, por ejemplo, es mas lgico de entender:
output_high(led_cerradura); que output_high(pin_b0);

4) FUNCIONES, aqu vamos a declarar las funciones que hemos visto en los diagramas
de flujo, las primeras funciones que haremos son ABRIR(), CERRAR() y
CAMBIAR_CLAVE() y posteriormente las demas ya que estas funciones se utilizan dentro
de la funcin CONTROL_DE_USUARIO() y por tanto deben definirse primero. Las
LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

funciones ABRIR() y CERRAR() simplemente muestran en pantalla un mensaje de


ABRIENDO o CERRANDO y encienden/apagan los leds indicadores de puerta abierta
y puerta cerrada, la funcin CAMBIAR_CLAVE(); prcticamente no hace nada ya que
posteriormente se completara esta funcin en futuras prcticas.

Seguido de esto hacemos la funcin control_de_usuario(); como se muestra y como lo


vimos en el diagrama de flujo, lo que hace esta funcin es darle al usuario el control sobre
el sistema, abrir, cerrar y cambiar clave:

LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

(Luego se inicia un ciclo DO-WHILE donde lo primero es mostrar el MENU de opciones y


seguido se escanea el teclado con la funcin read_keypad_wait(); , el valor ascii de la
tecla pulsada se almacenara en la variable seleccin.)

(Seguido de esto mediante un SWITCH ejecutamos la funcin pertinente segn sea la


seleccin del usuario)

LABORATORIO DE SISTEMAS DIGITALES

CERRADURA ELECTRNICA

(Y solo si la variable seleccin es igual a F entonces salimos del ciclo DO-WHILE y


terminamos mostrando un mensaje de SALIENDO DEL SISTEMA)

GESTOR_DE_ERRORES
Ahora hacemos la funcin GESTOR_DE_ERRORES siguiendo o basndonos en el
diagrama de flujo que hicimos en color rojo:

LABORATORIO DE SISTEMAS DIGITALES

10

CERRADURA ELECTRNICA

Cdigo del programa principal MAIN:


Finalmente escribimos el cdigo del programa principal MAIN:

(Se inicia el programa MAIN con las condiciones INICIALES mostrando un mensaje
inicial)

LABORATORIO DE SISTEMAS DIGITALES

11

CERRADURA ELECTRNICA

(Se inicia el ciclo infinito donde lo primero que hacemos es escanear o leer el teclado 4
veces almacenando el valor de la tecla pulsada en cada elemento del vector clave[i])

(Lo siguiente es validar la clave, para esto simplemente hacemos uso de una bandera
asumiendo que no habr error, comparamos uno a uno los elementos de los vectores
clave[i] y contrasena[i] y en caso de que alguno de estos sea distinto levantaremos la
bandera de error, si hubo error o no ejecutamos la funcin pertinente.)

LABORATORIO DE SISTEMAS DIGITALES

12

CERRADURA ELECTRNICA

NOTAS:
Para este proyecto se hizo la siguiente modificacin a la librera de PICPLAY_4X4.c para
adecuarla al teclado usado en la simulacin:

Para este proyecto tambin se modifico el archivo PICPLAY_LCD.c aadindole una


nueva funcin llamada lcd_clear(); como se muestra a continuacin:

LABORATORIO DE SISTEMAS DIGITALES

13

CERRADURA ELECTRNICA

LABORATORIO DE SISTEMAS DIGITALES

14

Вам также может понравиться