Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de...

41
Proyecto de Ingeniería Electrónica I y II 1 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 PEÑA ASESOR: Dr. FAUSTO MARCOS CASCO SANCHEZ FECHA DE ENTREGA: JULIO de 2010

Transcript of Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de...

Page 1: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

1

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 PEÑA

ASESOR: Dr. FAUSTO MARCOS CASCO SANCHEZ

FECHA DE ENTREGA: JULIO de 2010

Page 2: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

2

ÍNDICE

1. Objetivos e Introducción. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

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

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

1.3 Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2. Antecedentes Teóricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 aritmética y lógica y el registro W. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.0 Señales de entradas y salidas analógicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1 Funciones básicas en los sistemas de medida y control. . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Módulo de conversión A/D de 10 bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

3.3 Arquitectura del módulo de conversión A/D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

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

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

4.2 Características y manipulación de la señal 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

Page 3: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

3

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

6.0 Pantalla de cristal líquido LCD 16 x 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6.1 Características generales de un LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

6.2 Modos de operación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

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

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

7.1 Características del PIC 16F877A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

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

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

7.4 Organización de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

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

8.1 Implementación física. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

8.2 Código generado en MPLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

8.3 Esquema del circuito de diseño. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

9.0 Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

10.0 Bibliografia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Page 4: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

4

1.0 Objetivos e Introducción

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

analógicos los cuales estarán conectados en paralelo, los datos recolectados serán procesados

al módulo convertidor analógico digital del microcontrolador el cual se encargará de digitalizar

la información, una vez digitalizados los datos se hará una comparación con un rango de

temperatura establecido para así controlar una etapa de potencia que habilitará un sistema de

calefacción o de enfriamiento según sea el caso que se requiera para estabilizar los niveles de

temperatura.

1.3 Introducción

Hoy en día, la electrónica ha avanzado a pasos agigantados, en su mayoría los sistemas

que se desarrollan son digitales. Existen muchos dispositivos que permiten realizar diversos

diseños 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 más instrucciones y más capacidad que los microcontroladores, generalmente

estos dispositivos se utilizan para diseñar proyectos donde se requiere mucho procesamiento

de los datos. La marca líder en microprocesadores es Intel.

Los microcontroladores son dispositivos de menor capacidad pero estos son ideales

para el diseño y sus instrucciones son más fáciles de manipular y son económicos. Los más

comercializados son los AVR y los PIC.

En nuestro caso decidimos trabajar con los PIC, ya que son los dispositivos más utilizados

hoy en día. Existe una gran variedad de estos dispositivos, elegimos uno de gama media el

PIC16F877A, este dispositivo cumple con nuestras especificaciones de diseño. Ya elegido el PIC,

diseñamos nuestra etapa de potencia, aquí utilizamos un SCR un dispositivo semiconductor de

cuatro etapas y por último buscamos el sensor.

Page 5: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

5

2.0 Antecedentes Teóricos

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 automóvil, en equipos de comunicaciones y de telefonía en

instrumentos electrónicos, en equipos médicos 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 utilización de un microcontrolador en

un circuito reduce notablemente el tamaño y el número de averías 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

características. Cada tipo de microcontrolador sirve para una serie de casos y es el diseñador

del sistema quien debe decidir cuál es el microcontrolador adecuado a sus necesidades.

2.2 Familias de microcontroladores PIC

Los microcontroladores se clasifican de acuerdo al número 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 también 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

Page 6: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

6

(2048) palabras de 12 bits y está organizada en páginas 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 páginas

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 máximo de cuatros bancos.

También 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

comunicación en paralelo con dispositivos externos, cada uno de estos puertos con

características específicas. Disponen también de hasta tres temporizadores, dos módulos de

captura, comparación y modulación de ancho de pulso (PWM), denominados CCP, varios tipos

de puertos serie para la comunicación asíncrona y síncrona, un convertidor A/D de 10 bits

asociado a un multiplexor con varias entradas analógicas.

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 más complejo que incluye, además de

las interrupciones internas de los dispositivos integrados en el microcontrolador, varias

entradas para interrupciones externas entre otras características. Finalmente el número de

dispositivos de entrada y salida es bastante amplio que el de los PIC de gama media.

Los PIC de gama alta están disponibles en dos familias, que comprenden:

Page 7: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

7

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 aritmética y lógica y el registro W

Uno de los componentes fundamentales del CPU del microcontrolador es la unidad

aritmética y lógica (ALU: Aritmetic and Logic Unit). Tal que como indica su nombre, la ALU

realiza las operaciones aritméticas y lógicas 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 operación de la ALU y eventualmente el resultado de la operación

realizada por este registro se denomina Registro de Trabajo (W: Working Register). También se

asocian a la ALU algunos bits que indican algunas características del resultado de la operación

(si el resultado es cero, si se ha producido acarreo o préstamo, el resultado es positivo o

negativo, etc). Estos bits indicadores usualmente forman parte del llamado registro de estado

(STATUS).

3.0 Señales de entradas y salidas analógicas

Las señales analógicas tienen información de amplitud o duración, de modo que para

procesarlas con circuitos digitales, primero hay que digitalizarlas esto exige adaptar sus

características a las de los circuitos digitales.

3.1 Funciones básicas en los sistemas de medida y control

Las señales que se desea medir son magnitudes físicas o químicas no eléctricas. Las

magnitudes que se desea controlar (como temperatura de un cuarto, la humedad de la tierra

etc.) o señales empleadas para comunicar un resultado de medida al usuario. Las funciones

básicas en un sistema de medida son: detectar la magnitud (con un sensor), procesar la

información y comunicarla al usuario o a una computadora donde se van registrando los

eventos. Cuando el sistema es electrónico, a estas tres funciones hay que añadirle el suministro

de una alimentación eléctrica y el control u organización de las funciones, como se observa en

la figura 1. Si el objetivo del sistema es controlar una magnitud, tras la medida y el

Page 8: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

8

procesamiento hay una acción con un actuador, que convierte una señal eléctrica en la acción

física deseada, por ejemplo activar un motor para poner en marcha un calefactor.

Figura 1. Diagrama a bloques de la función básica del sistema de medida

3.2 Módulo de conversión A/D de 10 bits

Generalmente las señales que existen en la naturaleza son de tipo analógico, es decir

son señales continuas en el tiempo, por ejemplo las señales eléctricas, de temperatura, etc. Los

sistemas digitales son sistemas discretos, los que se utilizan actualmente en la electrónica son

binarios, es decir solamente se toman dos valores, 0 (cero volts) y 1 (cinco volts). Como se

observa, debe existir una conversión de analógico a digital para poder procesar la información.

El teorema de muestreo nos dice como hacer esta conversión, o sea nos marca un límite el cual

no debemos pasar ya que si no lo cumplimos podríamos perder nuestra señal con la cual

estemos trabajando.

La conversión analógico-digital (A/D) consiste en la comparación de una tensión

desconocida VX con una tensión de referencia, Vref. En la conversión A/D directa, consiste en la

comparación entre el VX con fracciones de Vref de valor L x Vref/2N, donde L y N son números

enteros. Esta comparación se puede hacer de forma simultánea 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 decisión (convertidores de aproximaciones sucesivas). Los CAD integrados en los

microcontroladores suelen ser de aproximaciones sucesivas. La característica de transferencia

de la conversión se muestra en la figura 2.

Page 9: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

9

Figura 2. Proceso de conversión analógica-digital directa.

En la conversión A/D indirecta, consiste cuando un circuito genera, por ejemplo un

intervalo de tiempo de duración proporcional a la tensión de entrada, y dicha duración se

compara con la de un intervalo de tiempo generado a partir de la tensión de referencia y el

mismo circuito. Ambos intervalos se miden con el mismo contador digital. Otros convertidores

obtienen una frecuencia proporcional a la tensión de entrada, y luego miden la frecuencia con

un contador digital.

3.3 Arquitectura del módulo de conversión 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 módulo son:

Multiplexor analógico de hasta 8 canales de entrada.

Amplificador de muestreo y retención.

Convertidor A/D de aproximaciones sucesivas de 10 bits.

Registros para controlar el módulo (ADCON y ADECON1) y para almacenar el resultado

de la conversión A/D (ADRESH y ADRESL).

Page 10: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

10

Este módulo puede tener hasta ocho entradas analógicas que están disponibles como

funciones alternativas de las terminales de los puertos paralelos. El número de entradas

analógicas o canales de entrada depende del PIC en particular.

El amplificador de muestreo y retención está compuesto básicamente 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 tensión en el condensador sigue la

evolución de entrada (modo track), y cuando se da una orden el condensador se desconecta

de la entrada analógica y empieza la conversión.

El resultado de la conversión 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

conversión se pueden depositar justificados a la izquierda o a la derecha como se muestra en la

figura. La opción 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 conversión en el registro

ADRESH.

Figura 3. Resultado de una conversión A/D se depositan en los registros ADRESH Y

ADRESL.

La tensión de referencia para la conversión A/D puede ser la tensión de alimentación

del microcontrolador o una tensión externa que se aplique a las terminales AN3/VERF+ y

AN2/VERF- . La selección se hace por software con los bits PCFG3:PCFG0 del registro ADCON1.

En la opción por defecto, la tensión se toma de la alimentación del microcontrolador.

Las conversiones A/D se realizan en sincronía con una señal 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.

Page 11: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

11

Para iniciar la conversión A/D hay que activar el bit de control GO. Cuando ha

terminado la conversión, se activa el bit de estado DONE#. GO y DONE están en el mismo bit

del registro ADCON0. El programador debe poner a uno este bit para iniciar la conversión A/D y

cuando este bit toma el valor de cero, el resultado de la conversión está en los registros

ADRESH y ADRESL. Cuando finaliza la conversión A/D, se activa el bit ADIF del registro PIR para

solicitar la interrupción del microcontrolador para esto el bit GIE del registro INTCON es uno la

solicitud de la interrupción se hace válida.

Figura 4. Registros de configuración del convertidor para el PIC.

En el registro ADCON1, el bit ADFM determina la justificación a la derecha o a la

izquierda del resultado de la conversión A/D en los registros ADRESH y ADRESL. Los bits PCFG3:

PCFG0 configuran las terminales del microcontrolador utilizadas por el módulo de conversión

A/D como entradas analógicas del módulo o como entradas digitales de los puertos paralelos

correspondientes.

4.0 El sensor

Es un dispositivo diseñado para poder captar información de alguna magnitud como:

Química, Física y transformarla en magnitud eléctrica lo cual nos facilita para poder manipular

y cuantificar la información recabada.

4.1 Tipos de sensores

Existe una gran variedad de estos dispositivos según las necesidades a que se les quiera

dar por ejemplo: sensores fotoeléctricos que se basan en la utilización de fuentes luminosas

Page 12: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

12

(diodos LED, diodos laser etc.) y fuentes receptoras de dicha señal 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 robótica para medir la evolución de las diferentes partes

mecánicas etc.

4.2 Características y manipulación de la señal enviada por el sensor

Las señales de salida de los sensores son por lo general analógicas y de baja amplitud.

Existen algunos sensores digitales, como los codificadores de posición 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 señales analógicas se utiliza un convertidor

analógico-digital (CAD) (Figura 5). Para adaptar la señal de salida de sensor al rango de

amplitudes de entrada del CAD, se emplea un acondicionador de señal y, en algunos casos, un

procesador analógico por ejemplo, para obtener un valor eficaz de la señal antes de digitalizar,

o para desmodular su amplitud. La salida del CAD es procesada para obtener la información

deseada, por ejemplo el valor medio de una señal durante un cierto tiempo, o bien

combinando la información de varios sensores para tomar una decisión, por ejemplo sobre la

presencia o ausencia de un intruso en un recinto.

Figura 5. Etapa para la adquisición de señales.

4.3 Sensor de temperatura LM35DZ

El sensor LM35DZ utilizado para monitorear la temperatura del invernadero tiene una

precisión calibrada de 1° Centígrado y un rango de lectura a partir de los 0°C hasta + 100°C.

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 plástico similar a un típico

transistor con tres terminales dos de ellas para alimentarlo (+Vs y GND) y la tercera terminal es

la que envía o entrega un valor de tensión (Vout). Esta tensión de salida es linealmente

Page 13: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

13

proporcional a la escala de grados centígrados. 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

precisión aceptable además 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

Comúnmente utilizamos voltajes de alta tensión (CA). Estos voltajes no podemos aplicar

directamente al microcontrolador pues lo dañaría; por lo que es necesario aislarlo

eléctricamente 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 opción utilizar estos dispositivos pues

tienen una mayor velocidad de conmutación sin causar rebotes en comparación de los

dispositivos relés.

5.2 Tipos de Optoacopladores

Existe una gran variedad de Optoacopladores según 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.

Page 14: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

14

Opto tiristor: Diseñado para el preciso aislamiento de la red eléctrica y señal lógica.

5.3 El Triac y su funcionamiento

El Triac (Tiristor AC conductor) es un semiconductor capaz de bloquear tensión y

conducir corriente en ambos sentidos entre las terminales principales MT1 y MT2 son

dispositivos de conmutación hace la función de interruptor (switch) rápidos, silenciosos sin

partes electromecánicas con la cualidad que se pueden controlar electrónicamente. Su

estructura básica 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 señal negativa en la compuerta (Gate), entre la compuerta y la

terminal MT1.

Figura 7. Símbolo de Triac.

No es necesario que estén presentes las dos ambas polaridades en la compuerta ya que

el Triac puede ser activado por una señal positiva o una señal negativa de compuerta. En la

práctica la sensibilidad varía 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 operación 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á diseñado para usarse como interface

Page 15: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

15

de sistemas lógicos con equipos que tienen alimentarse con los 120V de AC. Su característica

más importante es:

Pequeño y económico encapsulado DIP 6.

Su tensión de aislamiento de 400 V la cual garantiza el aislamiento entre la red eléctrica

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 señal 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 conducción en el siguiente paso por cero de la tensión de red. Una vez que el

Fototriac entre en conducción se comporta como un interruptor cerrado que enciende la carga.

Cuando en la terminal del puerto mande una señal TTL (0 V) el LED del MOC3031 se

apaga. En el siguiente paso por cero de la tensión de red, el triac dejará de conducir

comportándose 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 conducción, la resistencia R2 de 180 Ω limita la corriente

que pasa por el Fototriac drena la corriente a través de la terminal (G) del triac para éste entre

en conducción.

Figura 9. Circuito de etapa de potencia.

Page 16: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

16

6.0 Pantalla de cristal líquido (LCD 2x16)

Las pantallas de cristal líquido LCD o display LCD para mensajes (Liquid Cristal Display)

tienen la capacidad de mostrar cualquier carácter alfanumérico, permitiendo representar la

información que genera cualquier equipo electrónico de una forma fácil y económica.

6.1 Características generales de un LCD

Estos dispositivos electrónicos se utilizan para visualizar cualquier tipo de información

de un sistema. Los LCD más utilizados son de cristal líquido y constan básicamente de una

pantalla o visualizador y un microcontrolador el cual se encarga de su funcionamiento en

hardware y software. La pantalla consta de dos líneas por el cual pueden pasar caracteres

alfanuméricos por línea. El controlador comúnmente utilizado es el HD44780 (Diseñado por

Renesas, antes Hitachi).

Figura 10. LCD 2 x16.

Este tipo puede manejar de una a dos líneas 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 línea.

El módulo más utilizado es el LCD LM016L, este utiliza un controlador HD44780 y un

driver HD44100 el cual maneja una pantalla LCD de 2 líneas con 16 caracteres cada una.

El microcontrolador HD44780 maneja una memoria RAM la cual sirve para almacenar

los códigos ASCII de hasta 80 caracteres alfanuméricos, esta memoria funciona de manera

circular para manejar los datos (En una memoria circular, una vez que se ha alcanzado la

posición final, la lectura o escritura de un nuevo dato se realiza en la posición inicial de la

memoria).

También 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 están diseñados por el

microcontrolador.

Las características principales que maneja este tipo de LCD, se muestran a

continuación:

Page 17: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

17

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 energía (debido a que utiliza tecnología 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 señales con la secuencia

correcta.

Las señales a considerar son las siguientes:

RS (Register Select, datos/control#) Esta señal indica al módulo LCD, si la señal que se

envía es un dato (RS=1) o una orden (RS=0).

R/W# (Read/Write, lectura/escritura#) Esta señal indica si hay lectura (si está en 1) o en

escritura (si está en 0)

E (Enable, habilitar) Con esta señal en ‘1’ se habilita el dispositivo. La captura de datos u

órdenes por el módulo LCD se realiza con el flanco de caída de esta señal.

DB0 a DB7 (Data bus, bus de datos) Por estas líneas transitan las órdenes y los datos en

ambas direcciones.

6.2 Modos de operación

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

Page 18: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

18

6.3 Comandos de control

Consisten en diferentes códigos que se introducen a través del bus de datos del módulo

LCD:

CLEAR DISPLAY

Borra el módulo LCD y coloca el cursor en la primera posición (dirección 0). Pone el bit

I/D en " 1" por defecto.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 0 1

Tiempo de ejecución: 1.64 µs

HOME

Coloca el cursor en la posición de inicio (dirección 0) y hace que el display comience a

desplazarse desde la posición original. El contenido de la memoria RAM de datos de

visualización (DD RAM) permanecen invariables. La dirección de la memoria RAM de datos para

la visualización (DD RAM) es puesta a 0.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 1 X

Tiempo de ejecución: 1.64 µs

ENTRY MODE SET

Establece la dirección de movimiento del cursor y especifica si la visualización se va

Desplazando a la siguiente posición 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".

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 1 1/D S

Tiempo de ejecución: 40 µs

Page 19: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

19

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).

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 1 D C B

Tiempo de ejecución: 40 µs

CURSOR OR DISPLAY SHIFT

Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos

de visualización DD RAM.

Código:

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 ejecución: 40 µs

FUNCTION SET

Establece el tamaño de interface con el bus de datos (DL), número de líneas del display

(N) y tipo de carácter (F).

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 1 DL N F X X

Tiempo de ejecución: 40 µs

SET THE CG RAM ADDRESS

El módulo LCD además de tener definidos todo el conjunto de caracteres ASCII, permite

al usuario definir 4 u 8 caracteres gráficos. La composición de estos caracteres se va guardando

en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carácter gráfico definido

por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la

CGRAM.

Page 20: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

20

Mediante esta instrucción se establece la dirección de la memoria CG RAM a partir de

la cual se irán almacenando los bytes que definen un carácter gráfico. Ejecutado este comando

todos los datos que se escriban o se lean posteriormente, lo hacen desde esta memoria CG

RAM.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 1 Dirección de la CG RAM

Tiempo de ejecución: 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 instrucción se establece la dirección de memoria DD RAM a partir de la

cual se irán 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 renglón y de la C0h a la CFh con los

16 caracteres del segundo renglón, para este modelo.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 Dirección de la DD RAM

Tiempo de ejecución: 40 µs

READ BUSY FLAG ET ADDRESS

Cuando el módulo LCD está ejecutando cualquiera de estas instrucciones, tarda un

cierto tiempo de ejecución en el que no se le debe mandar ninguna otra instrucción. Para ello

dispone de un flag llamado BUSY (BF) que indica que se está ejecutando una instrucción previa.

Esta instrucción de lectura informa del estado de dicho flag además de proporcionar el valor

del contador de direcciones de la CG RAM o de la DDRAM según la última que se haya

empleado.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Page 21: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

21

0 1 BF Dirección de la CG RAM o de la DD RAM

Tiempo de ejecución: 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 serán los diferentes códigos ASCII de los caracteres a visualizar.

Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar

caracteres gráficos a gusto del usuario. El escribir en uno u otro tipo de memoria depende de si

se ha empleado previamente la instrucción de direccionamiento DD RAM o la de

direccionamiento CG RAM.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 1 Código ASCII o byte del carácter gráfico

Tiempo de ejecución: 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 serán los códigos ASCII de los caracteres visualizados. Igualmente se lee de la memoria

CG RAM los diferentes bytes con los que se ha confeccionado un determinado carácter gráfico.

El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la

instrucción de direccionamiento de la DD RAM o la de direccionamiento CG RAM.

Código:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1 1 Código ASCII o byte del carácter gráfico

Tiempo de ejecución: 40 µs

Abreviaturas

Se listan a continuación las abreviaturas empleadas en los códigos anteriores y su

significado:

S = 1 Desplaza la visualización cada vez que se escribe un dato

S = 0 Modo normal

I/D = 1 Incremento del cursor

Page 22: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

22

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 Módulo ocupado

BF = 0 Módulo disponible

DL = 1 Bus de datos de 8 bits

DL = 0 Bus de datos de 4 bits

N = 1 LCD de 2 líneas

N = 0 LCD de 1 línea

F = 1 Carácter de 5x10 puntos

F = 0 Carácter 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 información, herramientas como: son los programas de

diseño y principalmente la versatilidad en el manejo de los parámetros, alimentación,

consumo, tamaño y velocidad entre otras cualidades.

Page 23: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

23

7.1 Características del PIC 16F877A

Las principales características 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 código, tipo flash.

Hasta 368 bytes de memoria de datos RAM.

256 bytes de memoria de datos EEPROM.

Pila con 8 niveles.

Código de protección programable.

Voltaje de alimentación 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:

Page 24: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

24

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.

MCLR/VPP/THV (1)

Este pin es el reset del microcontrolador, también se usa como entrada o pulso de grabación al momento de programar el dispositivo.

RA0/AN0 (2) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 0).

RA1/AN1 (3) Similar a RA0/AN0

RA2/AN2/VREF- (4) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 2) o entrada negativa de voltaje de referencia.

RA3/AN3/VREF+ (5) Puede actuar como línea digital de E/S o como entrada analógica del conversor A/D (canal 3) o entrada positiva de voltaje de referencia.

RA4/T0CKI (6) Línea digital de E/S o entrada del reloj del timer 0.

Salida con colector abierto.

RA5/SS#/AN4 (7) Línea digital de E/S, entrada analógica o selección como esclavo de la puerta serie síncrona.

RB0/INT (21) Puerto B pin 0, bidireccional. Este pin puede ser la

entrada para solicitar una interrupción.

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 programación.

RB4 (25) Puerto B pin 4, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado.

RB5 (26) Puerto B pin 5, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado.

RB6/PGC( 27) Puerto B pin 6, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado. En la programación serie recibe las señales de reloj.

RB7/PGD (28) Puerto B pin 7, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado. En la programación serie actúa

Page 25: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

25

como entrada de datos.

RC0/T1OSO/T1CK1 (11)

Línea digital de E/S o salida del oscilador del timer 1 o como entrada de reloj del timer 1.

RC1/T1OSI/CCP2 (12)

Línea digital de E/S o entrada al oscilador del timer 1 o entrada al módulo captura 2/salida comparación 2/ salida del PWM 2

RC2/CCP1(13) E/S digital. También puede actuar como entrada captura 1,/salida comparación 1/ salida de PWM 1.

RC3/SCK/SCL (14)

E/S digital o entrada de reloj serie síncrona /salida de los módulos SP1 e I2C.

RC4/SDI/SDA (15) E/S digital o entrada de datos en modo SPI o I/O datos en modo I2C.

RC5/SDO (16) E/S digital o salida digital en modo SPI.

RC6/TX/CK (17) E/S digital o patita de transmisión de USART

asíncrono o como reloj del síncrono.

RC7/RX/DT (18) E/S digital o receptor del USART asíncrono o como

datos en el síncrono.

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

Las ocho patitas de esta puerta pueden actuar como E/S digitales o como líneas para la transferencia de información en la comunicación de la puerta paralela esclava. Solo están disponibles en los PIC 16F874/7.

RE0/RD#/AN5 (8)

E/S digital o señal de lectura para la puerta paralela esclava o entrada analógica canal 5.

RE1/WR#/AN6 (9)

E/S digital o señal de escritura para la puerta paralela esclava o entrada analógica canal 6.

RE2/CS#/AN7 E/S digital o señal de activación/desactivación de la puerta paralela esclava o entrada analógica.

VSS(8,19) 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 número de instrucciones es pequeño y además casi todas se realizan en la misma cantidad de tiempo, por otro lado posee unidades que trabajan en paralelo conectadas por tuberías. Este tipo de procesador emplea una arquitectura Harvard lo que significa que trabaja las zonas de memoria de programa y

Page 26: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

26

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

Bus de datos

Arquitectura Harvard:

Bus de direcciones Bus de direcciones

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 posición un valor. Para recoger o dejar un valor en una determinada

posición es necesario primero indicar cuál es la dirección a leer o escribir en la memoria, en

consecuencia hay un grupo de líneas que nos permite hacer esa función conocida como el bus

de direcciones, también existe un bus de datos que son líneas paralelas por donde los valores

de cada dirección.

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 posición de memoria tiene una dirección 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 dirección, a diferencia del bus de datos que tiene la

característica de ser bidireccional.

UCP

(PROCESADOR)

INSTRUCCIONES

DATOS

INSTRUCCIONES

UCP (PROCESADOR)

DATOS

Page 27: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

27

La arquitectura Harvard tiene un mejor ancho de banda porque el bus de datos es de

14 bits en comparación 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, periféricos,

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, también 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 aritmética lógica) el registro de trabajo W.

Tenemos los periféricos I/O Port A, B, C, D, E el TMR0 (temporizador contador de eventos),

TMR1 y TMR2 entre otros módulos. También contamos con un registro de instrucción que se

carga cada vez que la ALU solicita una nueva instrucción 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 instrucción 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 dirección de la instrucción a

ejecutar. El registro en cuestión 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 instrucción de bifurcación de por medio o puede haber alguna instrucción de llamada a

función y/o procedimiento. También observamos el bloque de la pila, la función 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 función (incluyendo interrupciones). Por tanto el nivel de

anidamiento es de hasta 8 llamadas. También está presente el FSR reg. Que es el registro que

cumple una función similar a la del contador de programa direccionando en este caso la RAM,

el FSR es un puntero a una dirección de la RAM. La aparición 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

posición cero por tanto el microcontrolador toma la instrucción que se encuentra en esa

posición en la memoria de programa y la ejecuta. Al momento de ejecutarla procede a informar

si se ha llevado a cabo alguna operación en particular registrándola en el registro de estado

(STATUS). Si la instrucción es de salto o bifurcación evaluará las condiciones para saber si

continua o no con la siguiente instrucción, en caso que no sea así saltará a otra posición de

memoria. En caso el programa haga un llamado a una función guardará en la pila el valor del

Page 28: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

28

contador de programa ejecutará la rutina y al momento que termina restituirá el valor

correspondiente para seguir con la siguiente instrucción.

Figura 13. Arquitectura interna del PIC 16F877A

Page 29: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

29

7.4 Organización 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 propósito 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 líneas del puerto A.

GFR (General Funtion Register) Registro de propósito 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 están 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 dirección y obtener o dejar el valor. Para poder utilizarla se requiere de otros registros adicionales es decir, se utiliza indirectamente.

Page 30: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

30

Figura 14. Organización de la memoria RAM.

Page 31: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

31

8.0 Desarrollo del proyecto

8.1 Implementación física

El rango o intervalo de temperatura que se estableció para controlar la temperatura

mínima como se puede observar en el display de la figura 15 es de L= 22° C y la temperatura

máxima H=28° C. Dentro de este rango se considera una temperatura ideal para el desarrollo

de la producción de los Jitomates dentro de un invernadero. Por lo que, fuera de este rango

sería poco propicio para el desarrollo y maduración del Jitomate. Por lo tanto, el sistema de

control de temperatura entre aquí en funcionamiento para mantener una temperatura ideal

según nuestras investigaciones que es dentro del rango de los 22° y 28° Centígrados.

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° centígrados

como se puede apreciar en el Display está indicando una lectura del sensor en esos instantes

de una temperatura de 15° centígrados por lo que, el microcontrolador manda una señal 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.

Page 32: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

32

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 25°C.

Figura 16. El sistema se encuentra desactivado.

Cuando se registra una temperatura mayor a los 28°C, 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 29°C como se puede visualizar en el display.

Page 33: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

33

Figura 17. El sistema de control registra una temperatura de 29°C.

A continuación se muestra el programa en ensamblador del código que se realizó para

el diseño del proyecto.

8.2 Código generado en MPLAB

LIST P=16F877A

RADIX HEX

INCLUDE <P16F877A.INC>

INCLUDE <MACROPIC.INC>

__CONFIG _XT_OSC &_LVP_OFF &_WDT_OFF

TEMPERATURA_H EQU 0x21

TEMPERATURA_L EQU 0x22

T_1 EQU 0x22

T_2 EQU 0x23

CENTENAS EQU 0x24

DECENAS EQU 0x25

UNIDADES EQU 0x26

ASCII_H EQU 0x27

ASCII_M EQU 0x28

Page 34: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

34

ASCII_L EQU 0x29

HEXADECIMAL EQU 0x2A

Key_var EQU 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 ;conversión 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

Page 35: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

35

MOVLW '-'

CALL EnviaCarLCD

MOVLW 'I'

CALL EnviaCarLCD

MOVLW '='

CALL EnviaCarLCD

MOVLW ' '

CALL EnviaCarLCD

MOVF ASCII_H,0 ; envía las centenas de temp.

CALL EnviaCarLCD

MOVF ASCII_M,0 ; envía las decenas de temp.

CALL EnviaCarLCD

MOVF ASCII_L,0 ; envía las unidades de temp.

CALL EnviaCarLCD

MOVLW 0xDF ; símbolo 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

Page 36: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

36

CALL BIN_A_BCD

MOVF CENTENAS,W

ADDLW '0'

CALL EnviaCarLCD

MOVF DECENAS,W

ADDLW '0'

CALL EnviaCarLCD

MOVF UNIDADES,W

ADDLW '0'

CALL EnviaCarLCD

MOVLW 0XDF

CALL EnviaCarLCD

MOVLW 'C'

CALL EnviaCarLCD

MOVLW 0X20

CALL EnviaCarLCD

MOVLW 0X20

CALL EnviaCarLCD

MOVLW 'H'

CALL EnviaCarLCD

MOVLW '='

CALL EnviaCarLCD

MOVLW .50

SUBWF TEMPERATURA_H,W

BTFSS STATUS,Z

GOTO FINAL1

MOVLW .99

GOTO IMPRIME1

FINAL1

MOVF TEMPERATURA_H,W

IMPRIME1 ; ESTA FUNC IMPRIME LA TEMP ACTUAL

CALL BIN_A_BCD

MOVF CENTENAS,0

ADDLW '0'

CALL EnviaCarLCD

MOVF DECENAS,0

ADDLW '0'

CALL EnviaCarLCD

MOVF UNIDADES,0

ADDLW '0'

CALL EnviaCarLCD

MOVLW 0XDF

CALL EnviaCarLCD

MOVLW 'C'

CALL EnviaCarLCD

RETURN

PRINCIPAL

BTFSC PORTB,2

GOTO S.POINT

GOTO INICIO

Page 37: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

37

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

;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'

Page 38: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

38

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

Page 39: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

39

GOTO SALTO

MENOS

CALL RETARDO

DECF TEMPERATURA_L,F

CALL MUESTRA.S.POINT

BTFSC PORTB,0

GOTO $-1

GOTO SALTO

MAS

CALL RETARDO

INCF TEMPERATURA_L,F

CALL MUESTRA.S.POINT

BTFSC PORTB,1

GOTO $-1

GOTO SALTO

FIN.S.POINT

CALL RETARDO

BTFSS PORTB,2

GOTO PRINCIPAL

GOTO FIN.S.POINT

RETURN

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

;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

Page 40: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

40

8.3 Esquema del circuito de diseño.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

U2(+VS)

R1

330

R2

330

CALENTADOR

LED-BLUE

VENTILADOR

LED-BLUE

B12.55

RV210k

10.0

3

1

VOUT2

U2

LM35

Fig. 18 Conexión 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 analógico-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 diseño nos

encontramos con detalles lógicos 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

Page 41: Proyecto de Ingeniería Electrónica I y II148.206.53.233/tesiuami/UAMI15662.pdf · proyecto de ingeniería electrónica i y ii 1 proyecto de ingenieria electronica i y ii “control

Proyecto de Ingeniería Electrónica I y II

41

demasiado tiempo. La parte de la simulación fue muy importante, pues al comenzar con el

código y cuando aun no contábamos con capital para poder comprar los materiales necesarios

compilábamos 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

tenían la finalidad de sensar la temperatura en distintos puntos del invernadero. Por último

podemos agregar que si hubiésemos contado con el suficiente capital o el apoyo de algún

dueño de un invernadero el proyecto lo hubiéramos implementado de manera permanente en

dicha instalación. Ahora solo falta agradecer al Profesor Fausto Casco por el empeño y la

atención que tuvo con nosotros al diseñar, construir e implementar este proyecto.

10.0 Bibliografía

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/