Sunteți pe pagina 1din 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.

Objetivos e Introduccin. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1

Objetivos Generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2

Objetivos Particulares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3

Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2.

Antecedentes Tericos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1

Microcontroladores PIC.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.2

Familias de microcontroladores PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.3

Microcontroladores de gama baja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.4

Microcontroladores de gama media. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

2.5

Microcontroladores de gama alta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

2.6

Unidad aritmtica y lgica y el registro W. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.0

Seales de entradas y salidas analgicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1

Funciones bsicas en los sistemas de medida y control. . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2

Mdulo de conversin A/D de 10 bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

3.3

Arquitectura del mdulo de conversin A/D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

4.0

El Sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

4.1

Tipos de sensores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2

Caractersticas y manipulacin de la seal enviada por el sensor. . . . . . . . . . . . . . . . . . .12

4.3

El sensor de temperatura LM35DZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

5.0

Etapa de potencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

5.1

Optoacopladores y funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

5.2

Tipos de Optoacopladores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.3

El Triac y su funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.4

Control mediante el optoacoplador MOC 3031. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14


2

Proyecto de Ingeniera Electrnica I y II

5.5

Funcionamiento etapa de potencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

6.0

Pantalla de cristal lquido LCD 16 x 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6.1

Caractersticas generales de un LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

6.2

Modos de operacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6.3

Comandos de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

7.0

Microcontrolador PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

7.1

Caractersticas del PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

7.2

Arquitectura del PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

7.3

Arquitectura Interna del PIC 16F877A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7.4

Organizacin de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

8.0

Desarrollo del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

8.1

Implementacin fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

8.2

Cdigo generado en MPLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

8.3

Esquema del circuito de diseo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

9.0

Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

10.0

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

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

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

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

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

S/C R/L 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

DL N

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

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

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

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

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

DESCRIPCION

OSC1/CLKIN (9)

Entrada para el oscilador o cristal externo.

OSC2/CLKOUT (10)

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.

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)

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.

RB1 (22)

Puerto B pin 1, bidireccional.

RB2 (23)

Puerto B pin 2, bidireccional.

RB3/PGM (24)

Puerto B pin 3, bidireccional o entrada del voltaje


bajo para programacin.

RB4 (25)

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

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)

RC2/CCP1(13)

RC3/SCK/SCL (14)

RC4/SDI/SDA (15)
RC5/SDO (16)

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.

RC6/TX/CK (17)

E/S digital o patita de transmisin de USART


asncrono o como reloj del sncrono.

RC7/RX/DT (18)

E/S digital o receptor del USART asncrono o como


datos en el sncrono.

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

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.

RE0/RD#/AN5 (8)

RE1/WR#/AN6 (9)

E/S digital o seal de escritura para la puerta


paralela esclava o entrada analgica canal 6.

RE2/CS#/AN7
VSS(8,19)

E/S digital o seal de activacin/desactivacin de


la puerta paralela esclava o entrada analgica.
Tierra.

VDD(20,32)

Fuente (5V).

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

UCP (PROCESADOR)

INSTRUCCIONES

Bus de datos

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

SALTO

CALL
DECF
CALL
BTFSC
GOTO
GOTO

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

MENOS

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

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

D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14

RS
RW
E
4
5
6

1
2
3

VSS
VDD
VEE

LM016L

RV2
10k

U2(+VS)

U2

U1
13
14
1

10.0

VOUT

2
3
4
5
6
7

LM35

8
9
10

B1

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

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

2.55

RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

R1

CALENTADOR

330
LED-BLUE

R2

VENTILADOR

330
LED-BLUE

PIC16F877

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

S-ar putea să vă placă și