Está en la página 1de 41

Proyecto de Ingeniera Electrnica I y II

PROYECTO DE INGENIERIA ELECTRONICA I Y II CONTROL DE TEMPERATURA PARA UN INVERNADERO UTILIZANDO EL MICROCONTROLADOR PIC16F877A

ALUMNOS: ULISES TERAN JURADO DAVID HERNANDEZ ZARAGOZA JUAN CARLOS PANTOJA HERNANDEZ CUAUHTEMOC DANIEL FUENTES PEA

ASESOR: Dr. FAUSTO MARCOS CASCO SANCHEZ FECHA DE ENTREGA: JULIO de 2010

Proyecto de Ingeniera Electrnica I y II

NDICE 1. 1.1 1.2 1.3 2. 2.1 2.2 2.3 2.4 2.5 2.6 3.0 3.1 3.2 3.3 4.0 4.1 4.2 4.3 5.0 5.1 5.2 5.3 5.4 Objetivos e Introduccin. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Objetivos Generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Objetivos Particulares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Antecedentes Tericos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Microcontroladores PIC.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Familias de microcontroladores PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Microcontroladores de gama baja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Microcontroladores de gama media. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Microcontroladores de gama alta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Unidad aritmtica y lgica y el registro W. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Seales de entradas y salidas analgicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Funciones bsicas en los sistemas de medida y control. . . . . . . . . . . . . . . . . . . . . . . . . 7 Mdulo de conversin A/D de 10 bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Arquitectura del mdulo de conversin A/D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 El Sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Tipos de sensores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Caractersticas y manipulacin de la seal enviada por el sensor. . . . . . . . . . . . . . . . . . .12 El sensor de temperatura LM35DZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Etapa de potencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Optoacopladores y funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Tipos de Optoacopladores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 El Triac y su funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Control mediante el optoacoplador MOC 3031. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 2

Proyecto de Ingeniera Electrnica I y II

5.5 6.0 6.1 6.2 6.3 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 9.0 10.0

Funcionamiento etapa de potencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Pantalla de cristal lquido LCD 16 x 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Caractersticas generales de un LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Modos de operacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Comandos de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Microcontrolador PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Caractersticas del PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Arquitectura del PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Arquitectura Interna del PIC 16F877A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Organizacin de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Desarrollo del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Implementacin fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Cdigo generado en MPLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Esquema del circuito de diseo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Bibliografia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Proyecto de Ingeniera Electrnica I y II

1.0 Objetivos e Introduccin


1.1 Objetivos Generales
Desarrollar un sistema digital que sea capaz de monitorear y controlar los niveles de temperatura en un invernadero utilizando el microcontrolador PIC16F877A de la familia Microchip.

1.2 Objetivos particulares


El sistema digital realizar el monitoreo mediante una red de sensores de temperatura analgicos los cuales estarn conectados en paralelo, los datos recolectados sern procesados al mdulo convertidor analgico digital del microcontrolador el cual se encargar de digitalizar la informacin, una vez digitalizados los datos se har una comparacin con un rango de temperatura establecido para as controlar una etapa de potencia que habilitar un sistema de calefaccin o de enfriamiento segn sea el caso que se requiera para estabilizar los niveles de temperatura.

1.3 Introduccin
Hoy en da, la electrnica ha avanzado a pasos agigantados, en su mayora los sistemas que se desarrollan son digitales. Existen muchos dispositivos que permiten realizar diversos diseos de cualquier clase, existen dos dispositivos muy utilizados: Los microprocesadores y los microcontroladores. Los microprocesadores son dispositivos los cuales se pueden configurar como el usuario lo desee, posee ms instrucciones y ms capacidad que los microcontroladores, generalmente estos dispositivos se utilizan para disear proyectos donde se requiere mucho procesamiento de los datos. La marca lder en microprocesadores es Intel. Los microcontroladores son dispositivos de menor capacidad pero estos son ideales para el diseo y sus instrucciones son ms fciles de manipular y son econmicos. Los ms comercializados son los AVR y los PIC. En nuestro caso decidimos trabajar con los PIC, ya que son los dispositivos ms utilizados hoy en da. Existe una gran variedad de estos dispositivos, elegimos uno de gama media el PIC16F877A, este dispositivo cumple con nuestras especificaciones de diseo. Ya elegido el PIC, diseamos nuestra etapa de potencia, aqu utilizamos un SCR un dispositivo semiconductor de cuatro etapas y por ltimo buscamos el sensor.

Proyecto de Ingeniera Electrnica I y II

2.0 Antecedentes Tericos


2.1 Microcontroladores PIC
Un microcontrolador es un circuito integrado programable que est integrado por una serie de elementos necesarios para controlar el funcionamiento de una tarea determinada, como por ejemplo el control de una lavadora, una impresora, un sistema de alarma, el control de las bolsas de aire (airbags) de un automvil, en equipos de comunicaciones y de telefona en instrumentos electrnicos, en equipos mdicos e industriales, en juguetes etc. Un sistema con microcontrolador dispone de una memoria donde se almacena el programa es decir, una serie de instrucciones que gobierna el funcionamiento del mismo que, una vez programado y configurado, solo sirve para realizar la tarea asignada. La utilizacin de un microcontrolador en un circuito reduce notablemente el tamao y el nmero de averas y el volumen y el peso de los equipos entre otras ventajas. En el mercado hay una gran cantidad de ellos, con multitud de posibilidades y caractersticas. Cada tipo de microcontrolador sirve para una serie de casos y es el diseador del sistema quien debe decidir cul es el microcontrolador adecuado a sus necesidades.

2.2 Familias de microcontroladores PIC


Los microcontroladores se clasifican de acuerdo al nmero de instrucciones, en tres gamas: Gama baja: microcontroladores con instrucciones de 12 bits. Gama media: microcontroladores con instrucciones de 14 bits. Gama alta: microcontroladores con instrucciones de 16 bits.

Los microcontroladores tambin se agrupan en cinco grandes familias: PIC10, PIC12, PIC16, PIC17 Y PIC18. Los PIC10 contienen 6 terminales. La familia de los PIC12 agrupa a los microcontroladores disponibles con encapsulados de 8 terminales o pines. La familia de los PIC12 y PIC16 tienen subfamilias que tienes dispositivos de gama baja y media. Los PIC17 y PIC18 son de gama alta o mejorada.

2.3 Microcontroladores de gama baja


Los microcontroladores PIC de gama baja disponen de un repertorio de 33 instrucciones de 12 bits cada una. La memoria de programa tiene una capacidad de hasta 2k 5

Proyecto de Ingeniera Electrnica I y II

(2048) palabras de 12 bits y est organizada en pginas de 512 palabras cada una. La memoria de datos est formada por registros de 8 bits y se organiza en bancos de 32 registros cada uno. Familia de microcontroladores PIC de gama baja: Los PIC16X5xx Los PIC12X5xx Los PIC10

2.4 Microcontroladores de gama media


Estos dispositivos tienen un repertorio de 35 instrucciones de 14 bits cada una. La memoria de programa puede tener hasta 8k (8192) palabras de 14 bits y se organiza en pginas de 2k (2048) palabras cada una. La memoria da datos est formada por registros de 8 bits y est organizada en bancos de 120 registros cada uno, con un mximo de cuatros bancos. Tambin poseen memoria EEPROM de datos. Todos tienen una pila de 8 niveles, donde se almacenan direcciones de programa. Los microcontroladores PIC de gama media tienen una gran variedad de dispositivos de entrada y salida. Cuenta con varios puertos paralelos (puertos A, B, C, D, etc.) para la comunicacin en paralelo con dispositivos externos, cada uno de estos puertos con caractersticas especficas. Disponen tambin de hasta tres temporizadores, dos mdulos de captura, comparacin y modulacin de ancho de pulso (PWM), denominados CCP, varios tipos de puertos serie para la comunicacin asncrona y sncrona, un convertidor A/D de 10 bits asociado a un multiplexor con varias entradas analgicas. Los PIC de gama media tienen las siguientes familias: Los PIC16, excepto los PIC16X5xx que son de gama baja. Los PIC12X6xx, con encapsulado de 8 terminales.

2.5 Microcontroladores de gama alta


Los microcontroladores de gama alta se distinguen por sus instrucciones de 16 bits, mayor capacidad de pila y un sistema de interrupciones ms complejo que incluye, adems de las interrupciones internas de los dispositivos integrados en el microcontrolador, varias entradas para interrupciones externas entre otras caractersticas. Finalmente el nmero de dispositivos de entrada y salida es bastante amplio que el de los PIC de gama media. Los PIC de gama alta estn disponibles en dos familias, que comprenden: 6

Proyecto de Ingeniera Electrnica I y II

Los PIC17 Los PIC18

Los PIC tienen un repertorio de 58 instrucciones de 16 bits cada una. La memoria de programa puede ser de hasta 64k (65 536) palabras de 16 bits cada una y la memoria de datos puede tener hasta 1k (1024) registros de 8 bits. La memoria de programa de los PIC17 es EPROM, ROM u OTP. Estos microcontroladores disponen de una amplia gama de dispositivos de entrada y salida: puertos paralelos, puerto serie, temporizadores, convertidor A/D, etc.

2.6 Unidad aritmtica y lgica y el registro W


Uno de los componentes fundamentales del CPU del microcontrolador es la unidad aritmtica y lgica (ALU: Aritmetic and Logic Unit). Tal que como indica su nombre, la ALU realiza las operaciones aritmticas y lgicas previstas en el repertorio de instrucciones del microcontrolador. La ALU tiene asociado un registro que almacena temporalmente uno de los datos que interviene en la operacin de la ALU y eventualmente el resultado de la operacin realizada por este registro se denomina Registro de Trabajo (W: Working Register). Tambin se asocian a la ALU algunos bits que indican algunas caractersticas del resultado de la operacin (si el resultado es cero, si se ha producido acarreo o prstamo, el resultado es positivo o negativo, etc). Estos bits indicadores usualmente forman parte del llamado registro de estado (STATUS).

3.0 Seales de entradas y salidas analgicas


Las seales analgicas tienen informacin de amplitud o duracin, de modo que para procesarlas con circuitos digitales, primero hay que digitalizarlas esto exige adaptar sus caractersticas a las de los circuitos digitales.

3.1 Funciones bsicas en los sistemas de medida y control


Las seales que se desea medir son magnitudes fsicas o qumicas no elctricas. Las magnitudes que se desea controlar (como temperatura de un cuarto, la humedad de la tierra etc.) o seales empleadas para comunicar un resultado de medida al usuario. Las funciones bsicas en un sistema de medida son: detectar la magnitud (con un sensor), procesar la informacin y comunicarla al usuario o a una computadora donde se van registrando los eventos. Cuando el sistema es electrnico, a estas tres funciones hay que aadirle el suministro de una alimentacin elctrica y el control u organizacin de las funciones, como se observa en la figura 1. Si el objetivo del sistema es controlar una magnitud, tras la medida y el 7

Proyecto de Ingeniera Electrnica I y II

procesamiento hay una accin con un actuador, que convierte una seal elctrica en la accin fsica deseada, por ejemplo activar un motor para poner en marcha un calefactor.

Figura 1. Diagrama a bloques de la funcin bsica del sistema de medida

3.2 Mdulo de conversin A/D de 10 bits


Generalmente las seales que existen en la naturaleza son de tipo analgico, es decir son seales continuas en el tiempo, por ejemplo las seales elctricas, de temperatura, etc. Los sistemas digitales son sistemas discretos, los que se utilizan actualmente en la electrnica son binarios, es decir solamente se toman dos valores, 0 (cero volts) y 1 (cinco volts). Como se observa, debe existir una conversin de analgico a digital para poder procesar la informacin. El teorema de muestreo nos dice como hacer esta conversin, o sea nos marca un lmite el cual no debemos pasar ya que si no lo cumplimos podramos perder nuestra seal con la cual estemos trabajando. La conversin analgico-digital (A/D) consiste en la comparacin de una tensin desconocida VX con una tensin de referencia, Vref. En la conversin A/D directa, consiste en la comparacin entre el VX con fracciones de Vref de valor L x Vref/2N, donde L y N son nmeros enteros. Esta comparacin se puede hacer de forma simultnea con todos los valores entre 0V y Vref, o de forma sucesiva con valores fraccionarios elegidos en un orden de forma que agilice el proceso de decisin (convertidores de aproximaciones sucesivas). Los CAD integrados en los microcontroladores suelen ser de aproximaciones sucesivas. La caracterstica de transferencia de la conversin se muestra en la figura 2.

Proyecto de Ingeniera Electrnica I y II

Figura 2. Proceso de conversin analgica-digital directa.

En la conversin A/D indirecta, consiste cuando un circuito genera, por ejemplo un intervalo de tiempo de duracin proporcional a la tensin de entrada, y dicha duracin se compara con la de un intervalo de tiempo generado a partir de la tensin de referencia y el mismo circuito. Ambos intervalos se miden con el mismo contador digital. Otros convertidores obtienen una frecuencia proporcional a la tensin de entrada, y luego miden la frecuencia con un contador digital.

3.3 Arquitectura del mdulo de conversin A/D.


Los microcontroladores PIC de gama media tienen convertidores A/D de aproximaciones sucesivas, normalmente de 10 bits, su estructura interna simplificada a bloques se muestra en la figura 3. Los componentes principales de este mdulo son: Multiplexor analgico de hasta 8 canales de entrada. Amplificador de muestreo y retencin. Convertidor A/D de aproximaciones sucesivas de 10 bits. Registros para controlar el mdulo (ADCON y ADECON1) y para almacenar el resultado de la conversin A/D (ADRESH y ADRESL).

Proyecto de Ingeniera Electrnica I y II

Este mdulo puede tener hasta ocho entradas analgicas que estn disponibles como funciones alternativas de las terminales de los puertos paralelos. El nmero de entradas analgicas o canales de entrada depende del PIC en particular. El amplificador de muestreo y retencin est compuesto bsicamente por un condensador (sin amplificadores de entrada ni de salida), que empiezan a cargarse en cuanto se selecciona en el multiplexor el canal deseado. La tensin en el condensador sigue la evolucin de entrada (modo track), y cuando se da una orden el condensador se desconecta de la entrada analgica y empieza la conversin. El resultado de la conversin se deposita en los registros ADRESH Y ADRESL. Dentro del espacio de 16 bits conformado por este par de registros, los 10 bits resultantes de una conversin se pueden depositar justificados a la izquierda o a la derecha como se muestra en la figura. La opcin de depositar el resultado justificado a la izquierda resulta muy apropiada para operar el CAD como convertidor de 8 bits, con el resultado de la conversin en el registro ADRESH.

Figura 3. Resultado de una conversin A/D se depositan en los registros ADRESH Y ADRESL. La tensin de referencia para la conversin A/D puede ser la tensin de alimentacin del microcontrolador o una tensin externa que se aplique a las terminales AN3/VERF+ y AN2/VERF- . La seleccin se hace por software con los bits PCFG3:PCFG0 del registro ADCON1. En la opcin por defecto, la tensin se toma de la alimentacin del microcontrolador. Las conversiones A/D se realizan en sincrona con una seal de reloj. Este reloj se obtiene del oscilador principal del microcontrolador mediante un divisor programable, o bien de un oscilador interno de frecuencia fija. Con los bits ADS1 Y ADCS0 del registro ADCON0 se selecciona la fuente del reloj y se programa el divisor de frecuencia si la fuente es el oscilador principal del microcontrolador. 10

Proyecto de Ingeniera Electrnica I y II

Para iniciar la conversin A/D hay que activar el bit de control GO. Cuando ha terminado la conversin, se activa el bit de estado DONE#. GO y DONE estn en el mismo bit del registro ADCON0. El programador debe poner a uno este bit para iniciar la conversin A/D y cuando este bit toma el valor de cero, el resultado de la conversin est en los registros ADRESH y ADRESL. Cuando finaliza la conversin A/D, se activa el bit ADIF del registro PIR para solicitar la interrupcin del microcontrolador para esto el bit GIE del registro INTCON es uno la solicitud de la interrupcin se hace vlida.

Figura 4. Registros de configuracin del convertidor para el PIC.

En el registro ADCON1, el bit ADFM determina la justificacin a la derecha o a la izquierda del resultado de la conversin A/D en los registros ADRESH y ADRESL. Los bits PCFG3: PCFG0 configuran las terminales del microcontrolador utilizadas por el mdulo de conversin A/D como entradas analgicas del mdulo o como entradas digitales de los puertos paralelos correspondientes.

4.0 El sensor
Es un dispositivo diseado para poder captar informacin de alguna magnitud como: Qumica, Fsica y transformarla en magnitud elctrica lo cual nos facilita para poder manipular y cuantificar la informacin recabada.

4.1 Tipos de sensores


Existe una gran variedad de estos dispositivos segn las necesidades a que se les quiera dar por ejemplo: sensores fotoelctricos que se basan en la utilizacin de fuentes luminosas 11

Proyecto de Ingeniera Electrnica I y II

(diodos LED, diodos laser etc.) y fuentes receptoras de dicha seal como pueden ser fotodiodos, fototransistores etc. Otros tipos como sensores de contacto, su funcionamiento es simple se activa o desactiva si se encuentra en contacto con un objeto, sensores de movimiento que son utilizados en robtica para medir la evolucin de las diferentes partes mecnicas etc.

4.2 Caractersticas y manipulacin de la seal enviada por el sensor


Las seales de salida de los sensores son por lo general analgicas y de baja amplitud. Existen algunos sensores digitales, como los codificadores de posicin ofrecen una salida digital, que si bien tiene los niveles adecuados se pueden conectar directamente a un puerto de entrada del microcontrolador. Para digitalizar las seales analgicas se utiliza un convertidor analgico-digital (CAD) (Figura 5). Para adaptar la seal de salida de sensor al rango de amplitudes de entrada del CAD, se emplea un acondicionador de seal y, en algunos casos, un procesador analgico por ejemplo, para obtener un valor eficaz de la seal antes de digitalizar, o para desmodular su amplitud. La salida del CAD es procesada para obtener la informacin deseada, por ejemplo el valor medio de una seal durante un cierto tiempo, o bien combinando la informacin de varios sensores para tomar una decisin, por ejemplo sobre la presencia o ausencia de un intruso en un recinto.

Figura 5. Etapa para la adquisicin de seales.

4.3 Sensor de temperatura LM35DZ


El sensor LM35DZ utilizado para monitorear la temperatura del invernadero tiene una precisin calibrada de 1 Centgrado y un rango de lectura a partir de los 0C hasta + 100C. Existen diversos tipos de encapsulados, en nuestro caso utilizamos el encapsulado tipo TO-92 como se muestra en la figura 6, es un encapsulado de plstico similar a un tpico transistor con tres terminales dos de ellas para alimentarlo (+Vs y GND) y la tercera terminal es la que enva o entrega un valor de tensin (Vout). Esta tensin de salida es linealmente 12

Proyecto de Ingeniera Electrnica I y II

proporcional a la escala de grados centgrados. Es decir, la salida es lineal y equivalente a 10mV/C, por ejemplo si se tiene una lectura de 150mV esto equivale a tener 15 C. Posee una precisin aceptable adems que es de bajo costo. El sensor LM35DZ se alimenta a partir del los 5 Volts hasta los 30 Volts. En nuestro caso lo alimentamos con 5 Volts.

Figura 6. Sensor LM35DZ

5.0 Etapa de potencia


Comnmente utilizamos voltajes de alta tensin (CA). Estos voltajes no podemos aplicar directamente al microcontrolador pues lo daara; por lo que es necesario aislarlo elctricamente mediante un dispositivo denominado optoacoplador.

5.1 Optoacopladores y funcionamiento


Los Optoacopladores son dispositivos acopladores pticos, su funcionamiento se basa en el empleo de un haz de luz, cuando se aplica un voltaje VIN circula una corriente por el LED (Diodo Emisor de Luz) que se encuentra dentro del encapsulado del opto acoplador emitiendo un haz de luz que incide sobre el transistor y lo satura. Cuando no se aplica voltaje al LED se encuentra apagado bloqueando el transistor. Es una opcin utilizar estos dispositivos pues tienen una mayor velocidad de conmutacin sin causar rebotes en comparacin de los dispositivos rels.

5.2 Tipos de Optoacopladores


Existe una gran variedad de Optoacopladores segn las necesidades por ejemplo: Fototransistor: Est compuesto por un optoacoplador con una etapa de salida formada por un transistor BJT. Por ejemplo el 4N25 y el 4N35. Fototriac: Se compone por un optoacoplador con una etapa de salida compuesta por un Triac. Fototriac de paso por cero: Optoacoplador con una etapa de salida por un triac de cruce por cero. El circuito interno de cruce por cero conmuta al triac en los cruce por cero de la corriente alterna. Por ejemplo tenemos al MOC3031, 3041.

13

Proyecto de Ingeniera Electrnica I y II

Opto tiristor: Diseado para el preciso aislamiento de la red elctrica y seal lgica.

5.3 El Triac y su funcionamiento


El Triac (Tiristor AC conductor) es un semiconductor capaz de bloquear tensin y conducir corriente en ambos sentidos entre las terminales principales MT1 y MT2 son dispositivos de conmutacin hace la funcin de interruptor (switch) rpidos, silenciosos sin partes electromecnicas con la cualidad que se pueden controlar electrnicamente. Su estructura bsica se muestra en la figura 7. Dado que el Triac es un dispositivo bidireccional, no tiene polaridad en sus terminales. Si la terminal MT2 es positiva con respecto a la terminal MT1, se activar al aplicar una seal negativa en la compuerta (Gate), entre la compuerta y la terminal MT1.

Figura 7. Smbolo de Triac. No es necesario que estn presentes las dos ambas polaridades en la compuerta ya que el Triac puede ser activado por una seal positiva o una seal negativa de compuerta. En la prctica la sensibilidad vara de un cuadrante a otro, normalmente el Triac opera en el primer cuadrante I (voltaje y corriente de compuerta positivos) o en el tercer cuadrante III (voltaje y corriente negativos) como se muestra en la Figura 8.

Figura 8. Modos de operacin del Triac

5.4 Control mediante Optoacoplador MOC3031


Para el aislamiento entre el microcontrolador PIC16F877A y la carga motor de AC de 120 V utilizamos el optoacoplador modelo MOC3031, que es un circuito integrado que incluye diodo LED que controla al Fototriac. Este dispositivo est diseado para usarse como interface 14

Proyecto de Ingeniera Electrnica I y II

de sistemas lgicos con equipos que tienen alimentarse con los 120V de AC. Su caracterstica ms importante es: Pequeo y econmico encapsulado DIP 6. Su tensin de aislamiento de 400 V la cual garantiza el aislamiento entre la red elctrica y el microcontrolador. Su Fototriac interno permite el control del triac. Cuenta con un detector de paso por cero interno, lo que permite reducir una cantidad de componentes externos.

5.5 Funcionamiento etapa de potencia


Cuando en la terminal de puerto mande una seal TTL (5 V) har circular una corriente de unos 15 mA por el diodo LED del MOC3031, esta emitir luz, lo que provocar que el Fototriac entre en conduccin en el siguiente paso por cero de la tensin de red. Una vez que el Fototriac entre en conduccin se comporta como un interruptor cerrado que enciende la carga. Cuando en la terminal del puerto mande una seal TTL (0 V) el LED del MOC3031 se apaga. En el siguiente paso por cero de la tensin de red, el triac dejar de conducir comportndose como un interruptor abierto de tal forma que la carga dejara de recibir corriente. La resistencia R1 de 220 conectada al nodo del LED (pin 1 del MOC 3031) garantiza una corriente de 15 mA. Cuando en Fototriac entra en conduccin, la resistencia R2 de 180 limita la corriente que pasa por el Fototriac drena la corriente a travs de la terminal (G) del triac para ste entre en conduccin.

Figura 9. Circuito de etapa de potencia.

15

Proyecto de Ingeniera Electrnica I y II

6.0 Pantalla de cristal lquido (LCD 2x16)


Las pantallas de cristal lquido LCD o display LCD para mensajes (Liquid Cristal Display) tienen la capacidad de mostrar cualquier carcter alfanumrico, permitiendo representar la informacin que genera cualquier equipo electrnico de una forma fcil y econmica.

6.1 Caractersticas generales de un LCD


Estos dispositivos electrnicos se utilizan para visualizar cualquier tipo de informacin de un sistema. Los LCD ms utilizados son de cristal lquido y constan bsicamente de una pantalla o visualizador y un microcontrolador el cual se encarga de su funcionamiento en hardware y software. La pantalla consta de dos lneas por el cual pueden pasar caracteres alfanumricos por lnea. El controlador comnmente utilizado es el HD44780 (Diseado por Renesas, antes Hitachi).

Figura 10. LCD 2 x16. Este tipo puede manejar de una a dos lneas de 8 caracteres cada una, cuando la pantalla es mayor se utilizan otro driver (el HD44100) el cual aumenta la capacidad de este a ocho caracteres por lnea. El mdulo ms utilizado es el LCD LM016L, este utiliza un controlador HD44780 y un driver HD44100 el cual maneja una pantalla LCD de 2 lneas con 16 caracteres cada una. El microcontrolador HD44780 maneja una memoria RAM la cual sirve para almacenar los cdigos ASCII de hasta 80 caracteres alfanumricos, esta memoria funciona de manera circular para manejar los datos (En una memoria circular, una vez que se ha alcanzado la posicin final, la lectura o escritura de un nuevo dato se realiza en la posicin inicial de la memoria). Tambin el HD44780 contiene una memoria ROM la cual almacena la matriz de puntos de cada caracter y una CGRAM la cual permite definir caracteres que no estn diseados por el microcontrolador. Las caractersticas principales que maneja este tipo de LCD, se muestran a continuacin:

16

Proyecto de Ingeniera Electrnica I y II

Se puede conectar a puertos paralelos de 4 u 8 bits. Almacenamiento de hasta 80 caracteres de 80 bytes cada una. Generador de caracteres en la ROM. Generador de caracteres en la RAM. Muy bajo consumo de energa (debido a que utiliza tecnologa CMOS). Circuito de Reset. Amplio repertorio de rdenes.

Para conectar el LCD con el microprocesador, nos tenemos que basar en la tabla que viene en la hoja de especificaciones del LCD para poder configurarlo en el microcontrolador PIC. Para conectar el LCD a microcontroladores de clase media se pueden utilizar los puertos paralelos A y B. Mediante el software adecuado se generan las seales con la secuencia correcta. Las seales a considerar son las siguientes: RS (Register Select, datos/control#) Esta seal indica al mdulo LCD, si la seal que se enva es un dato (RS=1) o una orden (RS=0). R/W# (Read/Write, lectura/escritura#) Esta seal indica si hay lectura (si est en 1) o en escritura (si est en 0) E (Enable, habilitar) Con esta seal en 1 se habilita el dispositivo. La captura de datos u rdenes por el mdulo LCD se realiza con el flanco de cada de esta seal. DB0 a DB7 (Data bus, bus de datos) Por estas lneas transitan las rdenes y los datos en ambas direcciones.

6.2 Modos de operacin


El LCD tiene 3 modos de funcionamiento principales: Modo Comando Modo Carcter o Dato Modo de lectura del Busy Flag o LCD Ocupada

17

Proyecto de Ingeniera Electrnica I y II

6.3 Comandos de control


Consisten en diferentes cdigos que se introducen a travs del bus de datos del mdulo LCD: CLEAR DISPLAY Borra el mdulo LCD y coloca el cursor en la primera posicin (direccin 0). Pone el bit I/D en " 1" por defecto. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 1

Tiempo de ejecucin: 1.64 s HOME Coloca el cursor en la posicin de inicio (direccin 0) y hace que el display comience a desplazarse desde la posicin original. El contenido de la memoria RAM de datos de visualizacin (DD RAM) permanecen invariables. La direccin de la memoria RAM de datos para la visualizacin (DD RAM) es puesta a 0. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 1 X

Tiempo de ejecucin: 1.64 s ENTRY MODE SET Establece la direccin de movimiento del cursor y especifica si la visualizacin se va Desplazando a la siguiente posicin de la pantalla o no. Estas operaciones se ejecutan durante la lectura o escritura de la DD RAM o CGRAM. Para visualizar normalmente poner el bit S a '0". Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 1/D S

Tiempo de ejecucin: 40 s

18

Proyecto de Ingeniera Electrnica I y II

DISPLAY ON/OFF CONTROL Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establece si este ltimo debe o no parpadear (B). Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 D C B

Tiempo de ejecucin: 40 s CURSOR OR DISPLAY SHIFT Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos de visualizacin DD RAM. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 1 S/C R/L X X

Tiempo de ejecucin: 40 s FUNCTION SET Establece el tamao de interface con el bus de datos (DL), nmero de lneas del display (N) y tipo de carcter (F). Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 DL N F X X

Tiempo de ejecucin: 40 s SET THE CG RAM ADDRESS El mdulo LCD adems de tener definidos todo el conjunto de caracteres ASCII, permite al usuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardando en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carcter grfico definido por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la CGRAM.

19

Proyecto de Ingeniera Electrnica I y II

Mediante esta instruccin se establece la direccin de la memoria CG RAM a partir de la cual se irn almacenando los bytes que definen un carcter grfico. Ejecutado este comando todos los datos que se escriban o se lean posteriormente, lo hacen desde esta memoria CG RAM. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 1 Direccin de la CG RAM

Tiempo de ejecucin: 40 s

SET THE DD ADDRESS Los caracteres o datos que se van visualizando, se van almacenando previamente en una memoria llamada DD RAM para de aqu pasar a la pantalla. Mediante esta instruccin se establece la direccin de memoria DD RAM a partir de la cual se irn almacenando los datos a visualizar. Ejecutado este comando, todos los datos que se escriban o lean posteriormente los hacen desde esta memoria DD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primer rengln y de la C0h a la CFh con los 16 caracteres del segundo rengln, para este modelo. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 Direccin de la DD RAM

Tiempo de ejecucin: 40 s READ BUSY FLAG ET ADDRESS Cuando el mdulo LCD est ejecutando cualquiera de estas instrucciones, tarda un cierto tiempo de ejecucin en el que no se le debe mandar ninguna otra instruccin. Para ello dispone de un flag llamado BUSY (BF) que indica que se est ejecutando una instruccin previa. Esta instruccin de lectura informa del estado de dicho flag adems de proporcionar el valor del contador de direcciones de la CG RAM o de la DDRAM segn la ltima que se haya empleado. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 20

Proyecto de Ingeniera Electrnica I y II

BF

Direccin de la CG RAM o de la DD RAM

Tiempo de ejecucin: 40 s WRITE DATA TO CG OR DD RAM Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentar en pantalla y que sern los diferentes cdigos ASCII de los caracteres a visualizar. Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar caracteres grficos a gusto del usuario. El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento DD RAM o la de direccionamiento CG RAM. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 Cdigo ASCII o byte del carcter grfico

Tiempo de ejecucin: 40 s READ DATA FROM CG OR DD RAM Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados y que sern los cdigos ASCII de los caracteres visualizados. Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionado un determinado carcter grfico. El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento de la DD RAM o la de direccionamiento CG RAM. Cdigo: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 1 Cdigo ASCII o byte del carcter grfico

Tiempo de ejecucin: 40 s Abreviaturas Se listan a continuacin las abreviaturas empleadas en los cdigos anteriores y su significado: S = 1 Desplaza la visualizacin cada vez que se escribe un dato S = 0 Modo normal I/D = 1 Incremento del cursor 21

Proyecto de Ingeniera Electrnica I y II

I/D = 0 Decremento del cursor S/C = 1 Desplaza el display S/C = 0 Mueve el cursor R/L = 1 Desplazamiento a la derecha R/L = 0 Desplazamiento a la izquierda BF = 1 Mdulo ocupado BF = 0 Mdulo disponible DL = 1 Bus de datos de 8 bits DL = 0 Bus de datos de 4 bits N = 1 LCD de 2 lneas N = 0 LCD de 1 lnea F = 1 Carcter de 5x10 puntos F = 0 Carcter de 5x7 puntos B = 1 Parpadeo de cursor ON C = 1 Cursor ON D = 1 Display ON X = Indeterminado

7.0 Microcontrolador PIC 16F877A


Existen en el mercado varios fabricantes de microcontroladores como: Hitachi, Motorola y Microchip, etc. En nuestro caso utilizamos el microcontrolador 16f877a de Microchip debido a que hay una mayor informacin, herramientas como: son los programas de diseo y principalmente la versatilidad en el manejo de los parmetros, alimentacin, consumo, tamao y velocidad entre otras cualidades.

22

Proyecto de Ingeniera Electrnica I y II

7.1 Caractersticas del PIC 16F877A


Las principales caractersticas con la que cuenta el pic 16F877A son: Procesador de arquitectura RISC. Juego o set de instrucciones con 14 bits de longitud. Frecuencia de 20 Mhz. Hasta 8K palabras de 14 bits para la memoria de cdigo, tipo flash. Hasta 368 bytes de memoria de datos RAM. 256 bytes de memoria de datos EEPROM. Pila con 8 niveles. Cdigo de proteccin programable. Voltaje de alimentacin de 2.0 a 5.5 Volts. Bajo consumo menos de 2 mA a 5 Volts.

En la Figura 11, se muestra las terminales con que cuenta el pic 16F877A.

Figura 11. Microcontrolador PIC 16F877A


Donde:

23

Proyecto de Ingeniera Electrnica I y II

PIN OSC1/CLKIN (9) OSC2/CLKOUT (10)

DESCRIPCION Entrada para el oscilador o cristal externo. Salida del oscilador. Este pin debe conectarse al cristal o resonador. En caso de usar una red RC este pin se puede usar como tren de pulsos o reloj cuya frecuencia es 1/4 de OSC1. Este pin es el reset del microcontrolador, tambin se usa como entrada o pulso de grabacin al momento de programar el dispositivo. Puede actuar como lnea digital de E/S o como entrada analgica del conversor AD (canal 0). Similar a RA0/AN0 Puede actuar como lnea digital de E/S o como entrada analgica del conversor AD (canal 2) o entrada negativa de voltaje de referencia. Puede actuar como lnea digital de E/S o como entrada analgica del conversor A/D (canal 3) o entrada positiva de voltaje de referencia. Lnea digital de E/S o entrada del reloj del timer 0. Salida con colector abierto. Lnea digital de E/S, entrada analgica o seleccin como esclavo de la puerta serie sncrona. Puerto B pin 0, bidireccional. Este pin puede ser la entrada para solicitar una interrupcin. Puerto B pin 1, bidireccional. Puerto B pin 2, bidireccional. Puerto B pin 3, bidireccional o entrada del voltaje bajo para programacin. Puerto B pin 4, bidireccional. Puede programarse como peticin de interrupcin cuando el pin cambia de estado. Puerto B pin 5, bidireccional. Puede programarse como peticin de interrupcin cuando el pin cambia de estado. Puerto B pin 6, bidireccional. Puede programarse como peticin de interrupcin cuando el pin cambia de estado. En la programacin serie recibe las seales de reloj. Puerto B pin 7, bidireccional. Puede programarse como peticin de interrupcin cuando el pin cambia de estado. En la programacin serie acta

MCLR/VPP/THV (1)

RA0/AN0 (2) RA1/AN1 (3) RA2/AN2/VREF- (4)

RA3/AN3/VREF+ (5)

RA4/T0CKI (6)

RA5/SS#/AN4 (7) RB0/INT (21)

RB1 (22) RB2 (23) RB3/PGM (24)

RB4 (25)

RB5 (26)

RB6/PGC( 27)

RB7/PGD (28)

24

Proyecto de Ingeniera Electrnica I y II

como entrada de datos. RC0/T1OSO/T1CK1 (11) RC1/T1OSI/CCP2 (12) Lnea digital de E/S o salida del oscilador del timer 1 o como entrada de reloj del timer 1. Lnea digital de E/S o entrada al oscilador del timer 1 o entrada al mdulo captura 2/salida comparacin 2/ salida del PWM 2 E/S digital. Tambin puede actuar como entrada captura 1,/salida comparacin 1/ salida de PWM 1. E/S digital o entrada de reloj serie sncrona /salida de los mdulos SP1 e I2C. E/S digital o entrada de datos en modo SPI o I/O datos en modo I2C. E/S digital o salida digital en modo SPI. E/S digital o patita de transmisin de USART asncrono o como reloj del sncrono. E/S digital o receptor del USART asncrono o como datos en el sncrono. Las ocho patitas de esta puerta pueden actuar como E/S digitales o como lneas para la transferencia de informacin en la comunicacin de la puerta paralela esclava. Solo estn disponibles en los PIC 16F874/7. E/S digital o seal de lectura para la puerta paralela esclava o entrada analgica canal 5. E/S digital o seal de escritura para la puerta paralela esclava o entrada analgica canal 6. E/S digital o seal de activacin/desactivacin de la puerta paralela esclava o entrada analgica. Tierra. Fuente (5V).

RC2/CCP1(13)

RC3/SCK/SCL (14)

RC4/SDI/SDA (15) RC5/SDO (16) RC6/TX/CK (17)

RC7/RX/DT (18)

RD0/PSP0-RD7/PSP7 (19-22, 27-30)

RE0/RD#/AN5 (8)

RE1/WR#/AN6 (9)

RE2/CS#/AN7 VSS(8,19) VDD(20,32)

7.2. Arquitectura del PIC 16F877A


Los PIC16F877A de Microchip pertenecen al tipo de procesador RICS que es un procesador de instrucciones reducidas, se caracteriza por que el nmero de instrucciones es pequeo y adems casi todas se realizan en la misma cantidad de tiempo, por otro lado posee unidades que trabajan en paralelo conectadas por tuberas. Este tipo de procesador emplea una arquitectura Harvard lo que significa que trabaja las zonas de memoria de programa y 25

Proyecto de Ingeniera Electrnica I y II

datos en forma separada. En la Figura 12 se muestra la arquitectura Von Neumann frente a la Harvard: Arquitectura de Von Neumann: Bus de direcciones INSTRUCCIONES UCP (PROCESADOR)

Bus de datos

DATOS

Arquitectura Harvard: Bus de direcciones Bus de direcciones

INSTRUCCIONES

UCP (PROCESADOR)

DATOS

Bus de datos

bus de datos

Figura 12. Arquitecturas Neumann y Harvard. En la Figura 12 se observa ambas arquitecturas son bloques de memoria, cada bloque tiene posiciones y cada posicin un valor. Para recoger o dejar un valor en una determinada posicin es necesario primero indicar cul es la direccin a leer o escribir en la memoria, en consecuencia hay un grupo de lneas que nos permite hacer esa funcin conocida como el bus de direcciones, tambin existe un bus de datos que son lneas paralelas por donde los valores de cada direccin. En el caso de la arquitectura Von Neumann se puede apreciar que existe un nico bus de direcciones y de datos. Como se observa cada posicin de memoria tiene una direccin a su vez la memoria se divide en memoria de programa (conocida como ROM) y memoria de datos (conocida como RAM). En el caso de la arquitectura Harvard tiene dos bloques de memoria separados. Un bloque para instrucciones y otro para datos. Tiene dos buses independientes de direcciones el bus de instrucciones solo tiene una direccin, a diferencia del bus de datos que tiene la caracterstica de ser bidireccional.

26

Proyecto de Ingeniera Electrnica I y II

La arquitectura Harvard tiene un mejor ancho de banda porque el bus de datos es de 14 bits en comparacin con el bus de 8 bits de la arquitectura Von Neumann. Por lo tanto en una sola lectura puede llevar una mayor cantidad de datos. 7.3 Arquitectura interna del PIC 16F877A Anteriormente se ha mencionado que el microcontrolador posee varios elementos en forma interna: el procesador, memoria de programa, memoria de datos, perifricos, contadores. En la Figura 13 se observa el diagrama de bloques del PIC16F877A. En el diagrama podemos identificar la memoria del Programa en la parte superior izquierda con 8Kposiciones por 14 bits, tambin esta presenta la memoria de datos (RAM) de 368 posiciones por 8 bits. La memoria EEPROM 256 posiciones x 8 bits. El procesador propiamente dicho est formado por la ALU (unidad aritmtica lgica) el registro de trabajo W. Tenemos los perifricos I/O Port A, B, C, D, E el TMR0 (temporizador contador de eventos), TMR1 y TMR2 entre otros mdulos. Tambin contamos con un registro de instruccin que se carga cada vez que la ALU solicita una nueva instruccin a procesar. En la parte intermedia encontramos algunos bloques como son el Status Reg. que es el registro de estado encargado de anotar el estado actual del sistema, cada vez que se ejecuta una instruccin se llevan a cabo cambios dentro del microcontrolador como desborde, acarreo, etc. Cada uno de esos eventos est asociado a un bit de este registro. Existe un registro de vital importancia que se llama el Program Counter o contador de programa este registro indica la direccin de la instruccin a ejecutar. El registro en cuestin no es necesariamente secuencial, esto es no se incrementa necesariamente de uno en uno ya que puede darse el caso en el que salte dependiendo si hay una instruccin de bifurcacin de por medio o puede haber alguna instruccin de llamada a funcin y/o procedimiento. Tambin observamos el bloque de la pila, la funcin de la pila es ser un buffer temporal en el que se guarda el contador de programa cada vez que se suscita una llamada a un procedimiento y/o funcin (incluyendo interrupciones). Por tanto el nivel de anidamiento es de hasta 8 llamadas. Tambin est presente el FSR reg. Que es el registro que cumple una funcin similar a la del contador de programa direccionando en este caso la RAM, el FSR es un puntero a una direccin de la RAM. La aparicin de multiplexores se debe a que los datos pueden tener diferentes fuentes. Cuando se programa el microcontrolador se debe tener en mente que es lo que l hace. Cuando lo prendemos asume un valor por defecto, el contador de programa asume la posicin cero por tanto el microcontrolador toma la instruccin que se encuentra en esa posicin en la memoria de programa y la ejecuta. Al momento de ejecutarla procede a informar si se ha llevado a cabo alguna operacin en particular registrndola en el registro de estado (STATUS). Si la instruccin es de salto o bifurcacin evaluar las condiciones para saber si continua o no con la siguiente instruccin, en caso que no sea as saltar a otra posicin de memoria. En caso el programa haga un llamado a una funcin guardar en la pila el valor del 27

Proyecto de Ingeniera Electrnica I y II

contador de programa ejecutar la rutina y al momento que termina restituir el valor correspondiente para seguir con la siguiente instruccin.

Figura 13. Arquitectura interna del PIC 16F877A

28

Proyecto de Ingeniera Electrnica I y II

7.4 Organizacin de la memoria


La memoria se divide en memoria de datos y memoria de programa. Los datos a su vez se divide en: SFR (Special Funtion Register) Registro de propsito especial, son registros que ayudan a configurar el hardware interno, as como sirven para escribir o leer valores de los diferentes componentes que constituyen el microcontrolador. Por ejemplo el registro TRISA que nos permite configurar el modo de trabajo de las lneas del puerto A. GFR (General Funtion Register) Registro de propsito general, son posiciones de memoria que se puede usar para almacenar valores que emplean nuestro programa cabe mencionar que la memoria de datos se divide en cuatro bancos. Las posiciones bajas estn reservadas para los SFR en tanto que las altas para los GFR. Tambien tiene una memoria EEPROM con 256 posiciones, para acceder a la memoria no se puede leer o escribir directamente es decir, colocar la direccin y obtener o dejar el valor. Para poder utilizarla se requiere de otros registros adicionales es decir, se utiliza indirectamente.

29

Proyecto de Ingeniera Electrnica I y II

Figura 14. Organizacin de la memoria RAM.

30

Proyecto de Ingeniera Electrnica I y II

8.0 Desarrollo del proyecto


8.1 Implementacin fsica
El rango o intervalo de temperatura que se estableci para controlar la temperatura mnima como se puede observar en el display de la figura 15 es de L= 22 C y la temperatura mxima H=28 C. Dentro de este rango se considera una temperatura ideal para el desarrollo de la produccin de los Jitomates dentro de un invernadero. Por lo que, fuera de este rango sera poco propicio para el desarrollo y maduracin del Jitomate. Por lo tanto, el sistema de control de temperatura entre aqu en funcionamiento para mantener una temperatura ideal segn nuestras investigaciones que es dentro del rango de los 22 y 28 Centgrados. En la primer imagen figura 15 se observa que el Led (diodo emisor de luz) de color verde indica que la temperatura est por debajo de la temperatura de los 22 centgrados como se puede apreciar en el Display est indicando una lectura del sensor en esos instantes de una temperatura de 15 centgrados por lo que, el microcontrolador manda una seal que pasa por la etapa de potencia para que se active el calefactor e incremente la temperatura.

Figura 15. El sistema registra una temperatura de 15 C.

31

Proyecto de Ingeniera Electrnica I y II

Una vez incrementado la temperatura y permanecer dentro del intervalo de la temperatura ideal el sistema de control deja de funcionar permaneciendo desactivado como se puede apreciar en la figura 16, los diodos Led se encuentran apagados se registra en esos momentos una temperatura de 25C.

Figura 16. El sistema se encuentra desactivado. Cuando se registra una temperatura mayor a los 28C, el sistema de control activar el ventilador para disminuir la temperatura. Como se muestra en la figura 17. El diodo Led en color rojo indica que se encuentra en funcionamiento el ventilador, pues se registra en esos momentos una temperatura de 29C como se puede visualizar en el display.

32

Proyecto de Ingeniera Electrnica I y II

Figura 17. El sistema de control registra una temperatura de 29C. A continuacin se muestra el programa en ensamblador del cdigo que se realiz para el diseo del proyecto.

8.2 Cdigo generado en MPLAB


LIST P=16F877A RADIX HEX INCLUDE <P16F877A.INC> INCLUDE <MACROPIC.INC> __CONFIG _XT_OSC &_LVP_OFF &_WDT_OFF TEMPERATURA_H TEMPERATURA_L T_1 T_2 CENTENAS DECENAS UNIDADES ASCII_H ASCII_M EQU EQU EQU EQU EQU EQU EQU EQU EQU 0x21 0x22 0x22 0x23 0x24 0x25 0x26 0x27 0x28 33

Proyecto de Ingeniera Electrnica I y II

ASCII_L HEXADECIMAL Key_var

EQU EQU EQU

0x29 0x2A 0x2B

ORG 0x00 GOTO EMPEZAR ORG 0x05 EMPEZAR BSF STATUS,RP0 ;banco 1 BSF TRISA,0 ;entrada de sensor BSF TRISA,3 ;voltaje Ref=5.1 CLRF TRISB MOVLW b'11111100' MOVWF TRISC ;salidas para LEDs CLRF TRISD BSF ADCON1,0 ;para permitir ingreso de Vref=5.1V BCF OPTION_REG,7 ;resistencias Pull Up activada BCF STATUS,RP0 ;banco_0 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;CONFIGURACION DEL CONVERTIDOR A/D ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MOVLW B'01000001' ;RA0=entrada de sensor MOVWF ADCON0 CLRF PORTC ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% INICIO BSF ADCON0,GO ;INICIAR CONVERSION BTFSC ADCON0,GO GOTO $-1 ; MOSTRAR EN LCD CALL RETARDO ; MOVF ADRESH,0 ;W=Temperatura CALL inicio_LCD ; inicio de LCD MOVF ADRESH,0 CALL Hex_Ascii ;conversin de HEXADECIMAL a ASCII MOVLW 'T' CALL EnviaCarLCD MOVLW '.' CALL EnviaCarLCD MOVLW 'A' CALL EnviaCarLCD MOVLW '.' CALL EnviaCarLCD MOVLW 'U' CALL EnviaCarLCD MOVLW 'A' CALL EnviaCarLCD MOVLW 'M' CALL EnviaCarLCD 34

Proyecto de Ingeniera Electrnica I y II

MOVLW '-' CALL EnviaCarLCD MOVLW 'I' CALL EnviaCarLCD MOVLW '=' CALL EnviaCarLCD MOVLW ' ' CALL EnviaCarLCD MOVF ASCII_H,0 ; enva las centenas de temp. CALL EnviaCarLCD MOVF ASCII_M,0 ; enva las decenas de temp. CALL EnviaCarLCD MOVF ASCII_L,0 ; enva las unidades de temp. CALL EnviaCarLCD MOVLW 0xDF ; smbolo de grados celsius CALL EnviaCarLCD MOVLW 'C' CALL EnviaCarLCD MOVLW DISP_ON_NOCURSOR ; apaga el cursor del LCD CALL EnviaCmdLCD CALL COMPARAR ;checa el rango de temperatura CALL RETARDO ;retardo de 20ms para el ADC CALL RETARDO CALL RETARDO MOVLW .22 ;TEMP. INICIAL DEL S.POINT BAJO MOVWF TEMPERATURA_L MOVLW .28 ;TEMP. INICIAL DEL S.POINT ALTO MOVWF TEMPERATURA_H CALL MUESTRA.S.POINT GOTO PRINCIPAL ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;"TEMPERATURA S.POINT": MUESTRA LA TEMPERATURA S.POINT Y LA ;TEMPERATURA ACTUAL GUARDADO EN TEMPERATURA Y TEMP_ACTUAL ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MUESTRA.S.POINT MOVLW DISP_LINEA2 ; establece el cursor en 2a fila CALL EnviaCmdLCD MOVLW 'L' CALL EnviaCarLCD MOVLW '=' CALL EnviaCarLCD MOVLW .50 SUBWF TEMPERATURA_L,W BTFSS STATUS, Z GOTO FINAL2 MOVLW .99 GOTO IMPRIME2 FINAL2 MOVF TEMPERATURA_L,W IMPRIME2 35

Proyecto de Ingeniera Electrnica I y II

CALL MOVF ADDLW CALL MOVF ADDLW CALL MOVF ADDLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW SUBWF BTFSS GOTO MOVLW GOTO FINAL1 MOVF IMPRIME1 CALL MOVF ADDLW CALL MOVF ADDLW CALL MOVF ADDLW CALL MOVLW CALL MOVLW CALL RETURN PRINCIPAL BTFSC GOTO GOTO

BIN_A_BCD CENTENAS,W '0' EnviaCarLCD DECENAS,W '0' EnviaCarLCD UNIDADES,W '0' EnviaCarLCD 0XDF EnviaCarLCD 'C' EnviaCarLCD 0X20 EnviaCarLCD 0X20 EnviaCarLCD 'H' EnviaCarLCD '=' EnviaCarLCD .50 TEMPERATURA_H,W STATUS,Z FINAL1 .99 IMPRIME1 TEMPERATURA_H,W ; ESTA FUNC IMPRIME LA TEMP ACTUAL BIN_A_BCD CENTENAS,0 '0' EnviaCarLCD DECENAS,0 '0' EnviaCarLCD UNIDADES,0 '0' EnviaCarLCD 0XDF EnviaCarLCD 'C' EnviaCarLCD PORTB,2 S.POINT INICIO 36

Proyecto de Ingeniera Electrnica I y II

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;RUTINA PARA GENERAR EL RETARDO DE 20ms. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% RETARDO ; 20ms MOVLW .10 MOVWF 20H LAZO DECFSZ 20H,1 GOTO LAZO RETURN ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;RUTINA PARA HACER LA COMPARACION ENTRE LAS TEMP. INF Y SUP ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMPARAR MOVF TEMPERATURA_L,0 DECF TEMPERATURA_L,0 MOVWF T_1 MOVF ADRESH,0 ;W=TEMPERATURA ACTUAL SUBWF T_1,0 ;W=T_1-TEMPERATURA BTFSC STATUS,C ;C=0? (TEMP>T_1) GOTO LED_1 ;NO GOTO SIGUIENTE ;SI LED_1 MOVLW B'00000001' MOVWF PORTC RETURN SIGUIENTE MOVF TEMPERATURA_H,0 MOVWF T_2 MOVWF TEMPERATURA_H MOVF ADRESH,0 ;W=TEMPERATURA ACTUAL SUBWF T_2,0 ;W=T_2-TEMPERATURA BTFSC STATUS,C ;C=0? (TEMP>T_2) GOTO LED_2 ; NO GOTO LED_3 ; SI LED_2 MOVLW B'00000000' MOVWF PORTC RETURN LED_3 MOVLW B'00000010' MOVWF PORTC RETURN ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;RUTINA PARA CONVERTIR DE HEXADECIMAL A ASCII ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Hex_Ascii ;cargar en W el dato hex. MOVWF HEXADECIMAL CLRF ASCII_H ;Para BCD D'0' CLRF ASCII_M ;Para BCD D'0' 37

Proyecto de Ingeniera Electrnica I y II

CLRF ASCII_L ;Para BCD D'0' Centenas MOVLW d'100' ;D'100' --> W SUBWF HEXADECIMAL,W ;HEXADECIMAL - D'100' --> W BTFSS STATUS,C ;es menor que D'100' ? GOTO Decenas ;Si MOVWF HEXADECIMAL ;Salva el resto INCF ASCII_H,F ;Inc. el cont. de centenas BCD GOTO Centenas ;Vuelve por otros D'100' Decenas MOVLW d'10' ;D'10' --> W SUBWF HEXADECIMAL,W ;HEXADECIMAL - D'10' --> W BTFSS STATUS,C ; es menor que D'10' ? GOTO Unidades ;Si MOVWF HEXADECIMAL ;Salva el resto INCF ASCII_M,F ;Inc. el cont. de decenas BCD GOTO Decenas ;Vuelve por otros D'10' Unidades MOVF HEXADECIMAL,W ;El resto pertenece MOVWF ASCII_L ;a las unidades BCD CLRF HEXADECIMAL ;en cero el registro HEXADECIMAL Bcd_A_Ascii MOVLW H'30' ;H'30' --> W IORWF ASCII_L,F ;Convierte de BCD a ASCII IORWF ASCII_M,F ;Convierte de BCD a ASCII MOVF ASCII_H,F ;ASCII_H --> F BTFSC STATUS,Z ;? ASCII_H es D'00' ? GOTO Espacio ;Si MOVLW H'30' ;H'30' --> W IORWF ASCII_H,F ;Convierte de BCD a ASCII RETURN ; Espacio MOVLW '0' ;A' ' --> W MOVWF ASCII_H ;A' ' --> ASCII_H RETURN ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;ESTA RUTINA SOLO GENERA LA VARIANZA DEL S.POINT ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% S.POINT CALL RETARDO BTFSC PORTB,2 GOTO $-1 SALTO BTFSC PORTB,0 GOTO MENOS BTFSC PORTB,1 GOTO MAS BTFSC PORTB,2 GOTO FIN.S.POINT 38

Proyecto de Ingeniera Electrnica I y II

GOTO MENOS CALL DECF CALL BTFSC GOTO GOTO MAS CALL INCF CALL BTFSC GOTO GOTO FIN.S.POINT CALL BTFSS GOTO GOTO RETURN

SALTO RETARDO TEMPERATURA_L,F MUESTRA.S.POINT PORTB,0 $-1 SALTO RETARDO TEMPERATURA_L,F MUESTRA.S.POINT PORTB,1 $-1 SALTO RETARDO PORTB,2 PRINCIPAL FIN.S.POINT

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;PROGRAMA QUE CONVIERTE UN NUMERO DECIMAL A BCD ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BIN_A_BCD CLRF CENTENAS CLRF DECENAS MOVWF UNIDADES BCD_RESTA MOVLW .10 SUBWF UNIDADES,W BTFSS STATUS,C GOTO BIN_BCD_FIN BCD_DECENA MOVWF UNIDADES INCF DECENAS,F MOVLW .10 SUBWF DECENAS,W BTFSS STATUS,C GOTO BCD_RESTA RETURN BIN_BCD_FIN SWAPF DECENAS,W ;En el nibble alto estan las decenas. ADDWF UNIDADES,W ;En el nibble bajo estan las unidades MOVWF PORTB ;Se visualiza en el puerto de salida. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% INCLUDE <LCD.ASM> INCLUDE <RETARDO.ASM> END 39

Proyecto de Ingeniera Electrnica I y II

8.3 Esquema del circuito de diseo.


LCD1
LM016L

VSS VDD VEE

RS RW E 4 5 6

1 2 3

RV2
10k

U2(+VS)

U2
13 14 1 2 2 3 4 5 6 7 8 9 10

U1
OSC1/CLKIN OSC2/CLKOUT MCLR/Vpp/THV RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

10.0

VOUT

LM35

B1
2.55

RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877

7 8 9 10 11 12 13 14

D0 D1 D2 D3 D4 D5 D6 D7

R1
330

CALENTADOR
LED-BLUE

R2
330

VENTILADOR
LED-BLUE

Fig. 18 Conexin del PIC 16F877A en el simulador PSPICE En esta figura se muestran las conexiones que se realizaron en el simulador para el funcionamiento del dispositivo. El LCD se conect al puerto D del microprocesador, la etapa de potencia est en los pines RC0 y RC1 respectivamente y el sensor se conect a la entrada asignada por el microprocesador para el convertidor analgico-digital (o sea RA0).

9.0 Conclusiones
Como se pudo observar los objetivos del proyecto se cumplieron pues logramos desarrollar un sistema digital capaz de monitorear y controlar los niveles de temperatura en un invernadero. Cabe mencionar que cuando estuvimos llevando a cabo el diseo nos encontramos con detalles lgicos que no estaban contemplados o que a simple vista no se detectaron pero que gracias al trabajo en equipo pudimos resolver estos detalles sin demorar 40

Proyecto de Ingeniera Electrnica I y II

demasiado tiempo. La parte de la simulacin fue muy importante, pues al comenzar con el cdigo y cuando aun no contbamos con capital para poder comprar los materiales necesarios compilbamos una y otra vez haciendo uso de los recursos que nos ofrece el simulador PROTEUS. Como se mencion el sistema consisti en una red de sensores en paralelo el cual tenan la finalidad de sensar la temperatura en distintos puntos del invernadero. Por ltimo podemos agregar que si hubisemos contado con el suficiente capital o el apoyo de algn dueo de un invernadero el proyecto lo hubiramos implementado de manera permanente en dicha instalacin. Ahora solo falta agradecer al Profesor Fausto Casco por el empeo y la atencin que tuvo con nosotros al disear, construir e implementar este proyecto.

10.0 Bibliografa

Microchip PIC16F877A Data Sheet. 2001. (Manual de referencia de la familia de los PIC 16F877A). http://www.microchip.com REVISTA SABER ELECTRONICA TODO SOBRE EL PIC 16F877A APUNTES DE SISTEMAS DIGITALES I,II Y III PROF. MOISES QUEZADA NAQUID UAM-I Manual de simulador PROTEUS Manual de operacion MPLAB PC ARCHITECTURE from ASSEMBLY LANGUAJE to C DAVID HERGERT, NANCY THIBEAULT Ed. Prentice Hall, 1998. DIGITAL AND MICROPROCESSOR FUNDAMENTALS Theory and Applications WILLIAM KLEITZ Ed. Prentice Hall, 1997 Specifications for lcd module. MicroElectronics Corporation. http://www.microelect.com MC78XX/LM78XX Data Sheet. Fairchild Semiconductor. http://www.fairchildsemi.com Keypads Data Sheet. Grayhill Inc. http://www.grayhill.com http://www.electronicafacil.net/circuitos/

41

También podría gustarte