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

UNIVERSIDAD TECNICA DEL NORTE

FACULTAD DE INGENIERIA EN CIENCIAS APLICADAS

SISTEMAS MICROPROCESADOS

TEMA: SISTEMA CONTROL DE ACCESO, SEGURIDAD Y LUMINOSIDAD EN UNA VIVIENDA (DOMTICA).

AUTORES: CARTAGENA OCAMPO EDGAR EDUARDO FLIX BOLAOS AMADA LEONOR

FECHA

: jueves 1 de agosto del 2013

IBARRA-ECUADOR

INDICE

RESUMEN....4 ABSTRACT..5 CAPITULO 1.6 1.1INTRODUCCION...6 1.2OBJETIVOS8 1.2.1OBJETIVO GENERAL...8 1.2.2OBETIVOS ESPECIFICOS...9 1.3 PLANTEAMIENTO DEL PROBLEMA.10 1.4 DESCRIPCION DE LA SOLUCION....11

CAPITULO 2..12 2.1 MARCO TEORICO ..12 2.1.1 SOFTWARE....12 2.1.1.1 ATMEGA C COMPILER ..12 2.1.1.2 SIMULADOR PROTEUS 13 2.1.2 HARDAWARE 14 2.1.2.1 MICROCONTROLADOR ATMEGA 164PA 14

CAPITULO 3 ................ 20

3.1 FLUJOGRAMA DEL FUNCIONAMIENTO DEL SISTEMA ... 20 3.1.1. FLUJOGRAMA DEL FUNCIONAMIENTO DEL CONTROL DE ACCESO..............21 3.1.2. FLUJOGRAMA DEL FUNCIONAMIENTO DEL CONTROL DE LUMINARIAS DE LA VIVIENDA......22
3.1.3. CDIGO DEL PROGRAMA EN AVR.......23

CAPITULO4 4.1 MATERIALES Y COSTOS47 4.2 CONCLUSIONES....48 4.2 RECOMEDACIONES......49 4.3 ANEXOS....50 4.4 BIBLIOGRAFIA Y NETGRAFIA..57

RESUMEN:

El presente proyecto consiste de un control de acceso, seguridad y luminosidad en una vivienda (domtica), utilizando hardware (ATMEGA 164PA) (CODEVISION AVR y PROTEUS). y software

El principio bsico de funcionamiento es contar con un control de acceso a la vivienda mediante una clave de seguridad, tambin una alarma sonora la cual se activa al ingresar a la vivienda sin ingresar la clave o al ingresar la clave equivocada por tres ocasiones, para el control de luminosidad se realiza una comunicacin serial mediante la cual se puede manipular tanto el encendido y apagado de las luminarias de la vivienda. En todos estos procesos se mostraran mensajes como seales indicando cada una las acciones tomadas, las mismas que se visualizar en una pantalla de cristal lquido o LCD. . Con este proceso se lograra dar una automatizacin de la vivienda. Los usuarios que cuenten con un sistema como el que aqu se describe, lograra tener el control de luces y ahorro de energa del hogar, sistema de vigilancia, entre otros. Este sistema puede reducir los gastos econmicos, dar ms confort, tranquilidad a los usuarios, y a su vez todo esto se realizara cuidando nuestro medio ambiente.

ABSTRACT:

This project consists of an access control, security and lighting in a home (home automation) using hardware (ATMEGA 164PA) and software (AVR codevision PROTEUS).

The basic principle of operation is to have control of access to housing by a security key, also an audible alarm which is activated by entering the house without entering the key or by entering the wrong password three times, for the brightness control is done via serial communication which can handle both on and off of the lights of the house. In all these processes will show messages as signs indicating each action taken, the same that is displayed on a liquid crystal display or LCD.

This process was achieved to give a home automation. Users who have a system like the one described here, managed to take control of lights and home energy savings, surveillance, among others. This system can reduce economic costs, provide more comfort, tranquility to users, and in turn all this was done taking care of our environment.

CAPITULO 1 1.1 INTRODUCCION

Un sistema de control de acceso, seguridad y luminosidad en una vivienda (domtica), rene varios dispositivos entre estos el HADWARE y SOFTAWARE que tiene como fin controlar el encendido de luces a distancia y evitar gastos innecesarios en las planillas de pago de este servicio, conjuntamente mejorar la seguridad en la vivienda; adems el objetivo de automatizar la vivienda de acuerdo a los avances de la tecnologa y a las procesos de evolucin que vive la sociedad.

El sistema tendr su propio cdigo de programacin desarrollado a continuacin, toma los datos de entradas proporcionados tanto por el sensor, teclado y comunicacin serial, los cuales permiten se realicen todos los procesos del sistema.

Todo sistema de control de acceso, seguridad y luminosidad tendr una clave de acceso la cual ser administrada solamente el programador, la misma que puede cambiar solo cambiando la programacin y posterior grabado.

Las herramientas utilizadas para el desarrollo de este proyecto se han venido estudiando en el periodo de un bimestre en la materia de Sistemas Microprocesados con la finalidad de adaptar los conocimientos adquiridos al desarrollo del siguiente proyecto utilizando programas como el simulador Proteus y el compilador Codevision AVR

FIGURA1. Diagrama de bloques sistema de control de acceso, seguridad y luminosidad en una vivienda (domtica).

1.2 OBJETIVOS

1.2.1 OBJETIVO GENERAL

Realizar un sistema domtico, mediante la utilizacin de dispositivos estudiados en la materia de Sistemas Microprocesados, para poder controlar de una forma ms eficiente y oportuna la seguridad, el control del sistema de luminarias y la alarma de seguridad de una vivienda.

1.2.2 OBJETIVOS ESPECIFICOS

Llegar a realizar un cdigo de programacin accesible, modificable y prctica, mediante el compilador antes mencionado, con el fin de que cumpla los requerimientos de un sistema de control de acceso, seguridad y luminosidad en una vivienda.

Investigar las diferentes conexiones a utilizar en el circuito para no tener problemas al momento de la presentacin final del proyecto.

Simular cada uno de los circuitos, en un Proteus para poder comprobar el correcto funcionamiento de los circuitos.

El sistema de control de acceso, seguridad y luminosidad en una vivienda debe ser prctico, sencillo y eficaz; teniendo en cuenta los diferentes recursos fsicos que se puedan adquirir para su realizacin del mismo.

Realizar la entrega del proyecto en su fecha limite indicada por el dirigente de la materia de Sistemas Microprocesados.

Tener el circuito simulado con su debido cdigo y adems armar en protoboard para su presentacin en la defensa del proyecto.

Realizar la maqueta de una vivienda en la cual se pueda acoplar el circuito armado en protoboard y de esta manera se pueda visualizar de una forma ms real y prctica el funcionamiento del sistema.

Comprender el uso y funcionamiento de cada uno de los elementos utilizados en este proyecto, mediante la implantacin de los circuitos.

Desarrollar una interfaz de control amigable y sencillo que utilice una interfaz ms visual y fcil de comprender, para ayuda a que el usuario sea capaz de controlar el sistema de manera autosuficiente.

10

1.3 PLANTEAMIENTO DEL PROBLEMA

Vivimos en un mundo que avanza de prisa, donde el tiempo es muy valioso, donde los seres humanos buscamos tener mayores comodidades, mayores seguridades y privilegios, sin tener que preocuparse demasiado. De igual manera hoy en el da la delincuencia ha crecido bastante convirtindose as en un problema social, haciendo que exista gran inseguridad en las personas y en sus propiedades.

Es ah donde la domtica cumple un papel muy importante por cuanto debido a los grandes avances tecnolgicos esto ya es una realidad y puede satisfacer nuestros deseos y problemas mencionados.Hoy en da, la domtica aporta soluciones dirigidas a todo tipo de viviendas, mejorando la calidad de vida de muchas personas, brindando tranquilidad y confortabilidad.

Para personas que tienen algn tipo de discapacidad, y no pueden realizar actividades en la misma medida que las dems personas, para ellas estos sistemas son ms que un privilegio, son una herramienta necesaria para mejorar su calidad de vida. As es que partiendo de esta necesidad de dotar a nuestras viviendas de una funcionalidad extra que mejore nuestra calidad de vida, nace la domtica basndose en aspectos como: confort, seguridad, gestin energtica.

11

1.4 DESCRIPCION DE LA SOLUCION

El proyecto de control de acceso, seguridad y luminosidad en una vivienda (domtica), permite dar respuesta a los requerimientos que plantean estos cambios sociales y las nuevas tendencias de nuestra forma de vida, facilitando el diseo de casas y hogares ms humanos, ms personales, polifuncionales y flexibles.

El sector de la domtica ha evolucionado considerablemente en los ltimos aos, y en la actualidad ofrece una oferta ms consolidada. Hoy en da, la domtica aporta soluciones dirigidas a todo tipo de viviendas, incluidas las construcciones de vivienda oficial protegida. Adems, se ofrecen ms funcionalidades por menos dinero, ms variedad de producto, y gracias a la evolucin tecnolgica, son ms fciles de usar y de instalar. En definitiva, la oferta es mejor y de mayor calidad, y su utilizacin es ahora ms intuitiva y perfectamente manejable por cualquier usuario.

Los usuarios que cuenten con un sistema como el que aqu se describe, lograra tener el control de luces y ahorro de energa del hogar, sistema de vigilancia, entre otros. Este sistema puede reducir los gastos econmicos, dar ms confort a los usuarios, y a su vez todo esto se realizara cuidando nuestro medio ambiente. Hoy en da se facilita el trabajo mediante sistemas inteligentes que hagan esto por el hombre, as evitar la fatiga humana, y mayor tranquilidad al contar con un sistema de seguridad.

12

CAPITULO 2

2.1 MARCO TEORICO

2.1.1 SOFTWARE 2.1.1.1 ATMEGA C COMPILER

El programa compilador traduce las instrucciones que se han escrito en el lenguaje de alto nivel (como en este caso se utiliza el lenguaje en C) a cdigo binario ejecutable por el microcontrolador. CodeVisionAVR es un compilador desarrollado por Pavel Haiduc para los AVR de 8 bits, desde los tinyAVR hasta los XMEGA. Su principal ventaja es que provee libreras integradas para controlar sus recursos internos y tambin dispositivos externos como LCDs, GLCDs, RTCs, sensores de temperatura, etc. En este sentido se le podra comparar con los compiladores C de CCS o Mikroe para los PICmicro. Como lo comprobaremos enseguida, CodeVisionAVR es el compilador C para los AVR ms fcil de usar, sin embargo, no llega a igualar la eficacia de los compiladores IAR AVR o AVR GCC. Tambin podremos comprobar algo de esta diferencia en la siguiente prctica. La versin de evaluacin de CodeVisionAVR permite usarlo en casi toda su funcionalidad para fines no comerciales. Tiene ciertas limitaciones con algunas de sus libreras (casi ni se nota) y no compila programas que superen los 4 kbytes de cdigo ejecutable.

Figura 2.- Logotipo del CCS

13

2.1.1.2 SIMULADOR PROTEUS

Es una compilacin de programas de diseo y simulacin electrnica, desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los mdulos VSM y Electra. Son capaces de ejecutar en una PC programas realizados para el microcontrolador, este simulador permite tener el control absoluto sobre la ejecucin de un programa. Su gran inconveniente es que es difcil simular la entrada y salida de datos del microcontrolador, tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso fsico de la implementacin de un modo ms seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para las diferentes pruebas realizadas al circuito.

Figura 3.- Logotipo del simulador Proteus

14

2.1.2 HARDAWARE

2.1.2.1 MICROCONTROLADOR ATMEGA 164PA

Figura4. Patillaje del microprocesador

El ATmega164PA es un microcontrolador CMOS de 8 bits de bajo consumo basado en la arquitectura RISC mejorada. Sus instrucciones se ejecutan en un ciclo de mquina, el ATmega164PA consigue transferencia de informacin alrededor de 1 MIPS por MHz admitido por el sistema, permitiendo al diseador del sistema optimizar el consumo de energa versus la velocidad de procesamiento.

CARACTERISTICAS GENERALES: Microcontrolador AVR de 8 bits de alto rendimiento y bajo consumo. Arquitectura Avanzada RISC

15

- 131 instrucciones. La mayora de un solo ciclo de reloj de ejecucin. - 32 registros de trabajo de 8 bits para propsito general. - Funcionamiento esttico total. - Capacidad de procesamiento de unos 20 MIPS a 20 MHz. - Multiplicador por hardware de 2 ciclos Memorias de programa y de datos no voltiles de alta duracin

- 16/32/44 K bytes de FLASH auto programable en sistema - 512B/1K/2K bytes de EEPROM - 1/2/4K bytes de SRAM Interna - Ciclos de escritura/borrado: 10.000 en Flash / 100.000 en EEPROM Caractersticas de los perifricos

- Dos Timer/Contadores de 8 bits con prescalamiento separado y modo comparacin. - Un Timer/Contador de 16 bits con prescalamiento separado, modo comparacin y modo de captura. - Contador en Tiempo Real con Oscilador separado - 6 Canales para PWM - ADC de 10 bits y 8 canales Modo Diferencial con ganancia seleccionable a x1, x10 o x200. - Interface serie de dos hilos con byte orientado. - Dos puertos Seriales USART Programables - Interfaz Serial SPI maestro-esclavo - Watchdog Timer programable con oscilador independiente, dentro del mismo chip. - Comparador Analgico dentro del mismo Chip

16

2.1.2.2 PANTALLA DE CRISTAL LQUIDO O LCD

Una pantalla de cristal lquido o LCD (sigla del ingls liquid crystal display) es una pantalla delgada y plana formada por un nmero de pxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrnicos de pilas, ya que utiliza cantidades muy pequeas de energa elctrica.

Figura 4. Pantalla de cristal lquido o LCD

Figura 5.Configuracion de pines para una pantalla de cristal lquido o LCD

17

2.1.2.3 TECLADO MATRICIAL

Los teclados matriciales son muy tiles para el ingreso de datos, un ejemplo seria el teclado del computador. Un teclado matricial es un simple arreglo de botones conectados en filas y columnas, de modo que se pueden leer varios botones con el mnimo nmero de pines requeridos. Un teclado matricial 44 solamente ocupa 4 lneas de un puerto para las filas y otras 4 lneas para las columnas, de este modo se pueden leer 16 teclas utilizando solamente 8 lneas de un micro controlador. Si asumimos que todas las columnas y filas inicialmente estn en alto (1 lgico), la pulsacin de un botn se puede detectar al poner cada fila a en bajo (0 lgico) y checar 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.

Figura6. Teclado matricial

2.1.2.4. MAX 232

El MAX232 es un IC, primero creado por Maxim Integrated Products , que convierte las seales a partir de un RS-232 puerto serie a seales adecuadas para su uso

18

en TTL circuitos lgicos digitales compatibles. El MAX232 es un doble controlador / receptor y normalmente convierte las seales RTS RX, TX, CTS y.

Figura7. Conexin Max 232


2.1.2.5. CABLE SERIAL USB/DB9

Descripcin general: se describe el procedimiento para la conexin de un cable de interconexin entre un conector USB y otro DB9. Esta interfaz se usa en los casos en los cuales la PC (en particular las LAPTOPS) no cuente con salida DB9-RS232. El driver de la interfaz crea un puerto virtual COM, generalmente COM3 COM4 y puede ser usado por cualquier programa de comunicaciones, como Hyperterminal, que es un software estndar en todos los sistemas WINDOWS.

Figura8. Cable serial

19 2.1.2.6. INTERRUPCIONES

Interrupcin (tambin conocida como corrupcin del hardware o peticin de interrupcin) es una seal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecucin actual y pasar a ejecutar cdigo especfico para tratar esta situacin. Una interrupcin supone la ejecucin temporaria de un programa, para pasar a ejecutar una "subrutina de servicio de interrupcin", que pertenece al BIOS (Basic Input Output System)

2.1.2.7. COMUNICACIN SERIAL

La comunicacin serial consiste en el envo de un bit de informacin de manera secuencial, esto es, un bit a la vez y a un ritmo acordado entre el emisor y el receptor. Esta nos permite realizar como se indica la comunicacin entre el computador y el microprocesador, y as intercambiar informacin.

2.1.2.8. MTODOS

La utilizacin de mtodos dentro de nuestro sistema, no solo permite que el cdigo este ms ordenado, sino que tambin permite la reutilizacin del cdigo y as el programa pueda ser ms fcil y entendible. No tenga tantas lneas de cdigo y al momento de compilar, este proceso ser mas fcil.

20

CAPITULO 3

3.1 FLUJOGRAMA DEL FUNCIONAMIENTO DEL SISTEMA 3.1.1. FLUJOGRAMA DEL FUNCIONAMIENTO DEL CONTROL DE ACCESO

INICIO

Int cont// Teclado //LCD

| Ingresar la clave de seguridad

else if
CLAVE CORRECTA Mensaje en LCD error
mensaje en LCD ABRIENDO

Ingresar nuevamente la clave


mensaje en LCD ABRIENDO

Cont++;
SE DESACTIVA LA SEGURIDAD DE LA VIVIENDA Cont=3

Alarma sonora se activa


mensaje en LCD ABRIENDO

Se bloquea el sistema

FIN

21

3.1.2. FLUJOGRAMA DEL FUNCIONAMIENTO DEL CONTROL DE LUMINARIAS DE LA VIVIENDA

INICIO

COMUNICACIN SERIAL HYPERTERMINAL INTERRUPCIN

| Presiono botn de interrupcin

Se imprime el men en el hyperterminal

Elegimos una opcin del men

Opcin correcta

Esperar que elija una opcin

Activacin/desactivacin luminarias

FIN

22 3.1.3. CDIGO DEL PROGRAMA EN AVR

#include <mega164a.h> #include <delay.h> #include <stdlib.h> para gestionar la memoria dinamica

// libreria del microcontrolador utilizado // libreria de retardo // libreria que contiene los prototipos en lenguaje C

// Alphanumeric LCD Module functions #include <alcd.h> // libreria de la lcd

// External Interrupt 0 service routine

// Standard Input/Output functions #include <stdio.h> // libreria q contiene las definiciones de macros, las

constantes, las declaraciones de funciones

// Declare your global variables here

unsigned char i; metodo teclado unsigned int d1,d2,d3;

// variable tipo caracter utilizada en el cicl for del

//variables tipo caracter de control que

cambian su valor seudun el boton del teclado; int alarma;

23

int h=0;

// variable utilizada como contador para que se active

la alarma en caso de tres intentos fallidos eeprom unsigned int clave[4]; donde se almacena la clave int j; funcion de verificacion de la clave unsigned int s=0; su valor seudun el boton del teclado; char opc; unsigned int clave1=0,clave2=0,clave3=0,clave4=0; para leer la EEprom ; int numero[4]; luego ser verificada char text[]="A.ABRIR" ; ABRIR char text2[]="B.CERRAR"; texto CERRAR char actual[]="SU CLAVE" ; SU CONTRASENIA char errors[]="error"; ERROR // arregl tipo caracter que contiene el texto // arregl tipo caracter que contiene el texto // arregl tipo caracter que contiene el // arregl tipo caracter que contiene el texto // aregl* donde se guarda la clave ingresada para //cuatro digitos que utilizaremos //variables tipo caracter de control que cambian // variable tipo entero utilizada en el for que realiza la // arreglo guardado en la memoria eeprom

unsigned char tecla(void) de la tecla presionada

// metodo que nos ayuda a identificar el valr

24

{ PORTB=0X80; if (PINB.0)return 13; if (PINB.1)return 8; if (PINB.2)return 9; if (PINB.3)return 10; PORTB=0X40; if (PINB.0)return 7; if (PINB.1)return 5; if (PINB.2)return 6; if (PINB.3)return 11; PORTB=0X20; if (PINB.0)return 4; if (PINB.1)return 2; if (PINB.2)return 3; if (PINB.3)return 12; PORTB=0X10; if (PINB.0)return 1; if (PINB.1)return 0; if (PINB.2)return 14; if (PINB.3)return 15; delay_ms(20); return 21; } // indica la direccion de la tecla precionada // indica la direccion de la tecla precionada // indica la direccion de la tecla precionada // indica la direccion de la tecla precionada

25

void teclado (void) { for (i=0;i<4;i++) { i=tecla (); if (i!= 21) { switch (i) {

// metodo para dar un valr y una funcion a cada tecla

// ciclo

// TECLA 5 case 0: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d1=1;d2=5;d3++;

break;

case 1: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=7;d3++;

// TECLA 7 //retardo de 200 milisegundos // la ubicacion donde vamos a imprimir en la lcd // se imprime "*" en la ubicacion antes dada // da el valor de la tecla a una variable

26

break;

case 2: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=4;d3++; break;

// TECLA 4

case 3: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d1=1; d2=1; d3++; break;

// TECLA 1

case 4: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=9;d3++;

// TECLA 9

27

break;

case 5: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=6;d3++; break;

// TECLA 6

case 6: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=3;d3++; break; // TECLA 3

case 7: delay_ms(200); lcd_gotoxy (1,1); lcd_puts("-"); // d1=1;d2=1;d3++; //TECLA C

break;

28

case 8: lcd_clear(); delay_ms(200); s=3;d2=12;d3++; break; //TECLA B

case 9: delay_ms(200); lcd_gotoxy (1,1); delay_ms(300); //lcd_puts("/"); s=1;d2=12;d3++;

// TECLA A

break;

case 10: delay_ms(200); lcd_gotoxy (1,1); delay_ms(300); //s=1;d2=12;d3++; break; //TECLA D

case 11:

29

delay_ms(200); lcd_gotoxy (1,1); //lcd_puts("=");

//d1=1;d2=1;d3++; break;

case 12: delay_ms(200); // lcd_clear();

//tecla ACEPTAR

// lcd_gotoxy (0,0); // lcd_puts("DOMOTICA"); s=2;d2=10;d3++; break;

case 13: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=8;d3++; break;

//TECLA 8

case 14: delay_ms(200);

//TECLA 2

30

lcd_gotoxy (d3,1); lcd_puts("*"); d1=2;d2=2;d3++; break; //TECLA 0 case 15: delay_ms(200); lcd_gotoxy (d3,1); lcd_puts("*"); d2=0;d3++; break; }

} } }

void abrir(){ // metodo utilizado cuando se ingresa la clave correcta, imprime en la lcd indicando que la puerta esta abierta; lcd_clear();

31

lcd_gotoxy (1,1); lcd_puts("abriendo");

} void sucontr(){ // cuando se pide que ingrese la contrasea.....,; lcd_clear(); lcd_gotoxy (0,0); lcd_puts(actual); }

void write_lcd(){ // visualizar en pantalla las cadenas text y text2 a manera de menu; lcd_clear(); lcd_gotoxy (0,0); lcd_puts(text); lcd_gotoxy (0,1); lcd_puts(text2); }

void leer_eep(){ //* rutina que lee los datos de la EEprom y los guarda en las variables para ser comparadas; clave1=1; clave2=2; clave3=1; clave4=2;

32

clave[0]=clave1; clave[1]=clave2; clave[2]=clave3; clave[3]=clave4;

} void error(){ //* se ve en pantalla la palabra error si no c teclea el num correcto; lcd_clear(); lcd_gotoxy (1,1); lcd_puts(errors);

} void initmain (){ // subfuncion principal ; d1=d2=d3=0; }

void menu(void) {

scanf("%c", &opc) ; serial switch (opc) { asigna un caso

// identifica la tecla presionada en la comunicacion

// segun la tecla presionada en la comunicacion serial

case'0':

// encender luz de la sala

33

PORTD.3=1; printf("\r\rSALA ENCENDIDA"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("SALA"); lcd_gotoxy (0,1); lcd_puts("ON"); break; // imprime en la pantalla del hyperterminal

// borra todo l que este en la pantalla lcd // retardo de 200 milisegundos // ubicacion de donde se va imprimir en la pantalla lcd // imprime en la pantalla lcd // ubicacion donde se va imprimir en la pantalla lcd // imprime en la pantalla lcd

case'1': PORTD.3=0;

//apagar la luz de la sala

printf("\r\rSALA APAGADA"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("SALA"); lcd_gotoxy (0,1); lcd_puts("OFF"); break;

case '2':

// enceder luz del dormitorio1

34

PORTD.4=1; printf("\r\rDORMITORIO 1 ENCENDIDO"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("DORM1"); lcd_gotoxy (0,1); lcd_puts("ON"); break; //apagar luz del dormitorio1 case '3': PORTD.4=0; printf("\r\rDORMITORIO 1 APAGADO") ; lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("DORM1"); lcd_gotoxy (0,1); lcd_puts("OFF"); break; case '4': PORTD.5=1; printf("\r\rDORMITORIO 2 ENCENDIDO"); lcd_clear(); // enceder luz del dormitorio2

35

delay_ms(200); lcd_gotoxy (0,0); lcd_puts("DORM2"); lcd_gotoxy (0,1); lcd_puts("ON"); break; case '5': PORTD.5=0; printf("\r\rDORMITORIO 2 APAGADO"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("DORM2"); lcd_gotoxy (0,1); lcd_puts("OFF"); break; case '6': PORTD.6=1; printf("\r\rESTUDIO ENCENDIDO"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("ESTUDIO"); lcd_gotoxy (0,1); // encender luz del estudio // apagar luz del dormitorio2

36

lcd_puts("ON"); break; case '7': PORTD.6=0; printf("\r\rESTUDIO APAGADO"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("ESTUDIO"); lcd_gotoxy (0,1); lcd_puts("OFF"); break; case'8': // encender todas las luces // apagar luz del estudio

PORTD.3=1; PORTD.4=1; PORTD.5=1; PORTD.6=1; printf("\r\rTODAS ON"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("LUCES"); lcd_gotoxy (0,1);

37

lcd_puts("ON"); break; case'9': // apagar todas las luces

PORTD.3=0; PORTD.4=0; PORTD.5=0; PORTD.6=0; printf("\r\rTODAS OFF"); lcd_clear(); delay_ms(200); lcd_gotoxy (0,0); lcd_puts("LUCES"); lcd_gotoxy (0,1); lcd_puts("OFF"); break;

default: imprime error printf ("\rERROR");

// en caso de no ser ninguno de ls casos mencionados nos

} }

38

interrupt [EXT_INT0] void ext_int0_isr(void)

// interrupcion 0 que llama al metodo

menu para controlar el encndido de luces de la vivienda { printf("\r\r\r CONTROLAR LUCES DE LA VIVIENDA \r\r\r0. APAGAR_SALA \r\r2. ENCENDER_DORMITORIO1 \r3.

ENCENDER_SALA \r1.

APAGAR_DORMITORIO1 \r\r4. ENCENDER_DORMITORIO2 \r5. APAGAR_DORMITORIO2 \r\r6. ENCENDER_ESTUDIO \r7. APAGAR_ESTUDIO \r\r8. ENCENDER_TODAS\r9. APAGAR TODAs_TODAS\r\r\r OPCION...." ); ELIA UNA

menu(); }

void main(void) { // Declare your local variables here

// Crystal Oscillator division factor: 1 #pragma optsizeCLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_

39

#pragma optsize+ #endif

PORTA=0x00; DDRA=0x00;

PORTB=0x00; DDRB=0xF0;

PORTC=0x00; DDRC=0x00;

PORTD=0x00; DDRD=0xF8;

TCCR0A=0x00; TCCR0B=0x00; TCNT0=0x00; OCR0A=0x00; OCR0B=0x00;

TCCR1A=0x00; TCCR1B=0x00;

40

TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

ASSR=0x00; TCCR2A=0x00; TCCR2B=0x00; TCNT2=0x00; OCR2A=0x00; OCR2B=0x00;

EICRA=0x00; EIMSK=0x01; EIFR=0x01; PCICR=0x00;

// Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x00;

41

// Timer/Counter 1 Interrupt(s) initialization TIMSK1=0x00;

// Timer/Counter 2 Interrupt(s) initialization TIMSK2=0x00;

UCSR0A=0x00; UCSR0B=0x18; UCSR0C=0x06; UBRR0H=0x00; UBRR0L=0x33;

UCSR1B=0x00;

// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; ADCSRB=0x00; DIDR1=0x00;

// ADC initialization // ADC disabled

42

ADCSRA=0x00;

// SPI initialization // SPI disabled SPCR=0x00;

// TWI initialization // TWI disabled TWCR=0x00;

lcd_init(16); //lcd_gotoxy (0,0); //lcd_puts("DOMOTICA"); delay_ms(200);

// Global enable interrupts #asm("sei") initmain() ; write_lcd() ; //* llamada a las funciones; leer_eep() ;

while (1) { int in = PINC;

43

teclado ();

// llama al metodo teclado

if (s==1){ contrasenia inicio: sucontr() ;

// si escogemos la opcion ABRIR s=1 y nos pide que ingresemos la

// en caso de error retorna aqui // si se escogio "ABRIR" o sea la opcion 1 del menu, llama a la

funcion que pide tu contrasea; d1=0; a comparar); d2=0; d3=0; if(alarma==3){PORTD.7=1;} veces se activa la alarma for(j=0;j<5;j=d3){ // como la contrasea es de 4 digitos, espera a que se // en caso de que ingresamos la clave incorrecta 3 // limpia las variables, (necesario para los nuevos valores que se van

presionen 4 teclas, el contador j se encarga de esto; teclado() ; numero[j]= (d2); la ubicacion j delay_ms(200) ; } // retardo de 100 milisegundos // llama al metodo teclado // va guardadndo el valor de la clave en el arreglo numero en

if (s==2){ correcta

// cuando presionamos la tecla de aceptar, verifica si la clave es

44

if(numero[0]==clave[0] ){

// verifica si el digito ingresado en la ubicacion 0 es igual

al de nuestra clave en la misma ubicacion if(numero[1]==clave[1] ){ // verifica si el digito ingresado en la ubicacion 1 es igual

al de nuestra clave en la misma ubicacion if(numero[2]==clave[2] ){ // verifica si el digito ingresado en la ubicacion 2 es igual

al de nuestra clave en la misma ubicacion if(numero[3]==clave[3] ){ // verifica si el digito ingresado en la ubicacion 3 es igual

al de nuestra clave en la misma ubicacion

alarma=0;delay_ms(500);abrir();delay_ms(3000); metodo abrir h=1; lcd_clear(); lcd_gotoxy (0,0); lcd_puts("1.ABRIR"); lcd_gotoxy (0,1); lcd_puts("2.CERRAR"); PORTD.7=0; // borra la lcd

// si la clave es correcta llama al

// ubicacion donde va imprimir en la lcd // imprime de nuevo el menu

} else{ error(); delay_ms(1000);alarma++;goto inicio;} algun digito de la clave sea erroneo imprime error } // en caso de que

45

else{error(); delay_ms(1000);alarma++;goto inicio;} } else{ error(); delay_ms(1000); alarma++;goto inicio;} } else{ error(); delay_ms(1000); alarma++; goto inicio;} }

if(in==1 && h==0) { PORTD.7=1; alarma } if(s==3){ el mensaje h=0; lcd_gotoxy (0,0);

// comprueba si la alarma esta activada

// si la alarma esta activada en caso de abrir la puerta se enciende la

// si precionamos la tecla de cerrar puerta se imprime en la pantalla lcd

// ubicacion donde va imprimir en la lcd

lcd_puts("PUERTA CERRADA");

} } }

46

CAPITULO 4

4.1 MATERIALES Y COSTOS

DISPOSITIVO Micro ATMEGA 164PA Grabador LCD Teclado matricial Pulsadores Cables conectores Transistor 3904 Resistencias Impresiones Cable serial USB/DB9 Conector DB9 leds maqueta capacitores potencimetro

CANT 1 1 1 1 2 30 1 18 1 1 1 4 1 4 1

PRECIO UNIDAD ($) 10 22 12 8 0,1 0.10 0,2 0,05 5 9,5 2,5 0,25 16 0,2 0,8 TOTAL

PRECIO TOTAL ($) 10 22 12 8 0,2 3.00 0,2 0,9 5 9,5 2,5 1 16 0,8 0,8 91,9

Figura9. Tabla de materiales y gastos

47

4.2 CONCLUSIONES: Se logr construir un circuito de manera que se pueda realizar el sistema control de acceso, seguridad y luminosidad en una vivienda (domtica).

Se realiz el control de acceso, mediante el acceso de la clave de 4 dgitos, utilizando la memoria eeprom del microprocesador.

Se logr identificar la configuracin de pines del microprocesador ATMEGA 164 y cada una de sus funciones, caractersticas, con la ayuda de los conocimientos adquiridos en clases y mediante el estudio del datasheet del mismo.

Luego de los anlisis respectivos se logr concluir que la teora aprendida en clases durante el transcurso del semestre satisface de una manera muy correcta el anlisis de la prctica.

Se logr conocer las conexiones de cada uno de los elementos, tanto como LCD, microprocesador, su correcta polarizacin.

Gracias al programa PROTEUS se pudo comprobar el buen funcionamiento del circuito y para posteriormente realizar la implementacin respectiva.

Se logr comprender el funcionamiento de todos los elementos estudiados durante el semestre, utilizndolos todos conjuntamente en un circuito en el que se aplique nuestros conocimientos adquiridos.

48

Mediante el microcontrolador se puede realizar muchas aplicaciones, dependiendo las funciones que este posee y deseemos utilizar.

Se pudo realizar la maqueta respectiva, en la cual se implement el circuito realizado para el sistema de control de acceso y luminosidad de la vivienda.

4.3 RECOMENDACIONES: Conocer el datasheet del microprocesador ATMEGA 164 PA, y en si todas las caractersticas del mismo. Analizar primeramente la polarizacin y la distribucin de pines de nuestros elementos utilizados en el proyecto para tener un buen funcionamiento y evitar que estos puedan daarse. Realizar la simulacin respectiva, antes de armar el circuito para comprobar su correcto funcionamiento. Utilizar mtodos y la menor cantidad de lneas de cdigo en nuestro programa, para que este se pueda compilar de una manera ms rpida y eficaz.

49

Figura10. Circuito simulado en PROTEUS

51

Figura11. Opciones de encendido de luces desde el hyterterminal.

52

Figura12. Circuito realizado en Eagle

53

Figura13. Patillaje del microprocesador realizado en EAGLE

54

Figura14. Circuito armado

55

Figura15. Maqueta para la implementacin del circuito

4.4 BIBLIOGRAFIA

SISTEMAS CON MICROPROCESADORES /ING. GERARDO COLLAGUAZO DATASHEET PIC16F628A ttp://www.todopic.com.ar/foros/index.php?topic=38913.0/controleeprom http://www.cursomicros.com/avr/compiladores/tutorial-de-codevision-avr.html http://electronica.webcindario.com/circuitos/cerradura.htm http://hetprostore.com/index.php?option=com_content&view=article&id=17%3Auart-usartatmega&catid=4%3Atutoriales&Itemid=7&lang=en http://galaxi0.wordpress.com/el-puerto-serial/

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