50
1 CAPITULO 1 FUNDAMENTOS TEÓRICOS DE LOS CONTROLADORES DE TEMPERATURA 1.1 INTRODUCCIÓN En este capítulo se describen las técnicas de control de temperatura existentes así como los diferentes tipos de controladores disponibles en el mercado. El control de temperatura más difundido para los hornos eléctricos utilizados para cerámica y vidrio consisten de dispositivos llamados pirómetros, los cuales permiten al usuario fijar una temperatura dada, temperatura de operación y mediante control apagado/encendido inician el encendido de los elementos calefactores que consisten de resistencias eléctricas que mediante el paso de la corriente eléctrica generan calor, de ésta manera inicia el proceso de calentamiento. Mediante sensores de temperatura llamados termopares el pirómetro mide la temperatura en el horno y al llegar ésta al

Control Ad Or de Temperatura Simplificado

Embed Size (px)

Citation preview

Page 1: Control Ad Or de Temperatura Simplificado

1

CAPITULO 1

FUNDAMENTOS TEÓRICOS DE LOS

CONTROLADORES DE TEMPERATURA

1.1 INTRODUCCIÓN En este capítulo se describen las técnicas de control de temperatura existentes así como los diferentes tipos de controladores disponibles en el mercado. El control de temperatura más difundido para los hornos eléctricos utilizados para cerámica y vidrio consisten de dispositivos llamados pirómetros, los cuales permiten al usuario fijar una temperatura dada, temperatura de operación y mediante control apagado/encendido inician el encendido de los elementos calefactores que consisten de resistencias eléctricas que mediante el paso de la corriente eléctrica generan calor, de ésta manera inicia el proceso de calentamiento. Mediante sensores de temperatura llamados termopares el pirómetro mide la temperatura en el horno y al llegar ésta al

Page 2: Control Ad Or de Temperatura Simplificado

2

valor preestablecido el pirómetro desconecta las resistencias para de ésta manera mantener la temperatura al valor establecido conectando y desconectando los elementos calefactores según sea necesario. El otro tipo de controlador de temperatura llamado controlador programable de temperatura consiste de una microcomputadora que permite al usuario disponer de diferentes programas preestablecidos de horneado, que incluyen facilidades como:

• Calentamiento del horno de manera gradual a una razón de cambio constante. • Apagar el horno cuando alcaza la temperatura fija. • Mantener el horno a la temperatura fijada y después de un tiempo fijado de

antemano apagar el horno automáticamente. • Iniciar el calentamiento a una hora y fecha fijada de antemano para el siguiente

horneado de piezas. El desarrollo propuesto consiste en diseñar una microcomputadora con las interfaces de hardware y software necesarias para implementar un controlador programable de temperatura con las funciones descritas anteriormente. 1.2 SENSORES DE TEMPERATURA. Para medir la temperatura existen diversos sensores según el rango que se vaya a medir; los más utilizados para los hornos eléctricos utilizados en cerámica y vidrio que operan a un rango de 0 ºC-1200 ºC son los termopares y para temperaturas de 0 -100 ºC son circuitos integrados.

1.2.1 Termopares para medir temperatura Un termopar es un dispositivo de estado sólido que se utiliza para convertir la energía calorífica en voltaje. Consta de dos metales diferentes empalmados en una juntura. Estos dos metales están conectados en dos ensambles, uno para la medida de la temperatura y el otro para la referencia. La diferencia de la temperatura entre los dos ensambles es detectada midiendo el cambio en el voltaje (fuerza electromotriz, F.E.M.) a través de los metales disímiles en el ensamble de la medida de la temperatura. Los

Page 3: Control Ad Or de Temperatura Simplificado

3

termopares se emplean como sensores de temperatura y para su fabricación pueden utilizarse materiales tales como: hierro-constantan, cromo- aluminio. Los termopares están entre los sensores de temperatura más fáciles de utilizar y de obtener, y se utilizan extensamente en ciencia e industria. La elección del tipo óptimo del termopar se basa en la temperatura de aplicación, el medio al que será expuesto, la vida útil necesaria, la exactitud requerida y el costo. Cuando un conductor metálico es sometido a una diferencia de temperatura, entre sus extremidades surge una fuerza electromotriz (F.E.M.), cuyo valor por lo general no excede el orden de magnitud de milivoltios, como consecuencia de la redistribución de los electrones en el conductor cuando éstos se someten a un gradiente de temperatura.

Page 4: Control Ad Or de Temperatura Simplificado

4

La figura 1.1 representa esquemáticamente el fenómeno.

Figura 1.1 Voltaje producido por un termopar El valor del voltaje, depende de la naturaleza del material y del gradiente de temperatura entre sus extremidades. En el caso de un material homogéneo, el valor del voltaje, no depende de la distribución de temperatura a lo largo del conductor, pero si, como hemos dicho anteriormente, de la diferencia de temperatura entre sus extremidades. Este fenómeno es básico para poder entender la termoelectricidad y su aplicación en la medición de temperatura. La siguiente ecuación muestra el voltaje generado en la unión – el voltaje de referencia V = a (tj1 - tref) donde a es el coeficiente de Seebeck del termopar K (Cromo-Aluminio), así para el cromo-aluminio a es de 0.040 mV por grado centígrado. El siguiente paso es medir la temperatura del bloque isotérmico (tref) y emplear esta información para conocer la temperatura de la unión J1 (tj1).

1.2.2 Circuitos integrados para medir temperatura Los circuitos integrados para medir temperatura se pueden clasificar en dos tipos: de salida analógica y de salida digital. Los de salida analógica más populares son: el LM35, es una fuente de tensión estándar industrial y de bajo costo. Nos da directamente la temperatura en °C, el LM34 en °F y el LM135 en °K. En el LM35. El voltaje de salida es directamente proporcional a la temperatura absoluta +10mV/°C, y se relaciona por la siguiente ecuación:

0

0

T

TVV

TToutout

=

Donde:

Page 5: Control Ad Or de Temperatura Simplificado

5

T = temperatura desconocida To = temperatura de referencia Cuando se calibra a 25 °C el LM35 tiene un error de 1°C sobre un rango de 100°C. Sus principales aplicaciones son como: Sensor de temperatura Control de temperatura Algunas de las configuraciones de sus aplicaciones típicas como sensor de temperatura se muestran en las siguientes figuras:

Figura 1.2 LM35 Sensor de temperatura centígrada básico

1.3 SENSADO Y ACONDICIONAMIENTO DE SEÑAL La etapa de sensado y acondicionamiento se encarga de adquirir la señal que proviene del transductor de temperatura, que en este caso se seleccionó un termopar tipo k, el cual entrega una señal de 40 micro volts / ºC y puede operar en un rango de 0 ºc a 1200 ºC, que es el rango de operación del horno. Para su correcta utilización por el controlador se requiere amplificar la señal hasta obtener una señal de 4 mv / ºC. El circuito puede ser calibrado a cualquier temperatura ajustando el valor de la resistencia variable POT 2. Por ejemplo para ajustar a 25 ºC, Mover la resistencia variable hasta obtener a la salida del amplificador operacional una lectura de 100 milivolts (4 milivolts/ºC x 25). Para la compensación a temperatura ambiente del termopar se utiliza el sensor de temperatura Lm35, el cual entrega una señal de 10 mv/ºC y puede operar en un rango de 0ºC a 100 ºC. Los circuitos de la etapa de sensado y acondicionamiento se muestran en la figura 1.3

Page 6: Control Ad Or de Temperatura Simplificado

6

Figura 1.3 Etapa de sensado y acondicionamiento El amplificador operacional utilizado es un LT 1014 de la empresa Linear Technology con las siguientes características relevantes:

• Operación con una sola fuente • Bajo voltaje de offset típico 50 máximo, 180 micro volts • Alta ganancia • Bajo corrimiento 2 micro volts / ºC Máximo • La razón de rechazo al modo común (o CMRR) Mayor a 94 dB

La compensación de temperatura ambiente se hace por programa en el microcontrolador. Ganancia es la ganancia del amplificador operacional El voltaje de salida del Amplificador operacional en modo No inversor está dado por: Ganancia = (1 + RF/RI) Ganancia = 100 RI = 4.7k RF = (100-1)RI = 99(4700) = 465.3K Ohms Siendo RF la resistencia de retroalimentación y RI la resistencia de entrada. Para evitar ruido de alta frecuencia se tiene un filtro pasa bajos pasivo formado por la resistencia R2 y el capacitor C8., siendo su frecuencia de corte: R2 = 4700 ohms C8= .1 Micro f Fc = 1/2piRC = 1/6.28x4700x.0.0000001 = 1/0.029516 FC = 338 HZ

Page 7: Control Ad Or de Temperatura Simplificado

7

La resistencia R1 tiene como función detectar la condición de falla del termopar, cuando este se abre o está desconectado, dando como resultado un voltaje máximo a la salida del amplificador operacional (5 volts).

Page 8: Control Ad Or de Temperatura Simplificado

8

CAPITULO 2

DESCRIPCIÓN DEL MICROCONTROLADOR PIC16F887

Page 9: Control Ad Or de Temperatura Simplificado

9

2.1 INTRODUCCIÓN La Unidad de control y procesamiento está constituida por un Microcontrolador PIC16F887 de la Compañía Microchip, el cual cuenta con los puertos de Entrada/Salida, Memoria de Programa y de Datos, así como los convertidores Analógico digitales necesarios para poder leer las señales analógicas provenientes de los sensores. Se eligió este tipo de microcontrolador por su bajo costo, amplia gama de herramientas de desarrollo disponibles en el mercado proporcionadas por el Proveedor así como de diferentes compañías independientes y su disponibilidad en México

2.2 CPU El PIC16F887 incorpora un CPU RISC de B-bits de datos y 16 bits de memoria de programa a este tipo de arquitectura se le llama arquitectura Harvard, donde la memoria de programa y la memoria de datos se encuentran en buses diferentes, permitiendo mayor velocidad de acceso. Principales características: • Arquitectura RISC • Frecuencia de Operación 0-20 MHz • Oscilador interno de precisión calibrado de fábrica +/- 1% • Selección de frecuencia por Software con un rango de 8MHz a 31KHz • Voltaje de alimentación de 2.0-5.5V • 35 Pines de Entrada/Salida -Alta corriente de salida (source/sink) para operar directamente un LED -Resistencias de pull-up programables individualmente por software • 8K de memoria ROM con tecnología FLASH -El Chip puede ser reprogramado hasta 100.000 veces • Programación Serie In-Circuit. El Chip puede ser programado aun instalado en la tarjeta. • 256 bytes de memoria EEPROM -Los datos Pueden ser escritos en EEPROM más de 1.000.000 de veces • 368 bytes memoria RAM • convertidor: A/D -14-canales -resolución 10-bits • 3 temporizadores/contadores independientes • Temporizador Watch-dog • modulo Mejorado de USART -Soporta RS-485, RS-232 y LIN2.0 -Auto Detección de -Baud

Page 10: Control Ad Or de Temperatura Simplificado

10

2.3 MAPAS DE MEMORIA Y VECTOR DE INTERRUPCIÓN. El microcontrolador tiene tres tipos de memoria ROM, RAM y EEPROM, cada una de ellas será discutida por separado, ya cada una de ellas tiene diferentes funciones, características y organización

2.3.1 Flash/ROM La memoria ROM es usada para guardar de forma permanente el programa que va a ser ejecutado. Esta memoria es a menudo llamada “memoria de programa” . El PIC16F887 tiene 8K words de memoria ROM (en total 8192 localidades). Ya que esta ROM está hecha con tecnología de Memoria Flash, su contenido puede ser cambiado mediante un voltaje de programación especial (13V). El diagrama a bloques de la memoria se muestra en la figura 2.1

Figura 2.1 Mapa de memoria FLASH

Page 11: Control Ad Or de Temperatura Simplificado

11

2.3.2 EEPROM Similar a la memoria de programa, el contenido de la EEPROM es guardado de manera permanente, aún cuando haya un corte de energía. Sin embargo, a diferencia de la ROM, el contenido de la EEPROM puede se cambiado durante la operación del microcontrolador. Debido a ésta característica de la memoria EEPROM (256 localidades) es la indicada para salvar los resultados creados y usados durante la operación.

2.3.3 RAM La RAM es el tercero y más complejo tipo de memoria del microcontrolador. En este caso, consiste de dos partes: Registros de propósito general y registros de funciones especiales (SFR). Ambos tipos de registros pierden su información cuando se apaga la fuente de alimentación. Ambos tipos de registros son manufacturados de la misma forma, aunque las funciones que realizan son diferentes. Los Registros de propósito general son usados para almacenamiento temporal de datos y resultados creados durante la operación del microcontrolador. Los Registros especiales son también localidades de RAM, pero a diferencia de los registros de propósito general, su propósito está predeterminado durante el proceso de manufactura y no puede ser alterado, ya que sus bits están físicamente conectados a circuitos particulares en el chip, por ejemplo al convertidor Analógico digital, módulo serie de comunicaciones, etc., cualquier cambio en su contenido afecta la operación del microcontrolador o alguno de sus circuitos. Por ejemplo , cambiando los bits del registro TRISA, la función de cada pin del puerto A puede ser cambiado como entrada o salida. Otra característica de éstas localidades de memoria, es que tienen sus nombres ( los registros y sus bits), facilitando de manera considerable la escritura de programas, ya que los Lenguajes de Alto Nivel, pueden usar la lista de todos los registros con sus direcciones exactas, es suficiente especificar el registro por su nombre, para leer o cambiar su contenido. La memoria RAM está particionada en cuatro bancos. Antes de acceder algún registro durante la escritura del programa ( para leer o cambiar el contenido), es necesario seleccionar el banco que contiene el registro. Son usados dos bits del Registro de estado para seleccionar el banco que contiene el registro. A fin de facilitar la operación, los SFR más usados tienen la misma dirección en todos los bancos. En la figura 2.3 se muestran el mapa de memoria RAM.

Page 12: Control Ad Or de Temperatura Simplificado

12

Figura 2.2 Mapa de memoria RAM

Page 13: Control Ad Or de Temperatura Simplificado

13

2.3.4 Vector de Interrupción Lo primero que hace el microcontrolador cuando llega una petición de interrupción es terminar de ejecutar la instrucción que estaba ejecutando en ese momento, parar el programa normal e inmediatamente después, se guarda automáticamente la siguiente instrucción que iba a ser ejecutada en la pila y se cambia el contador de programa por la dirección por defecto ( predefinida por el fabricante del microcontrolador). Esa dirección a donde el programa continúa la ejecución es llamada el Vector de Interrupción. Para el microcontrolador PIC16F887, esta dirección es la 0004h

Parte del programa que se activa cuando llega una petición de interrupción es llamado rutina de interrupción.

Algunos microcontroladores tienen varios vectores de interrupción (cada petición de interrupción tiene su vector de interrupción), pero en éste caso hay solo un vector de interrupción, de ahí que la primer actividad que hace la rutina de interrupción es identificar cual fue la fuente de interrupción. Finalmente cuando se identificó la fuente de interrupción y se ejecuta el código de la rutina de interrupción, el microcontrolador eventualmente alcanza la instrucción RETIE, en ese momento de manera automática se saca la dirección de retorno de la pila y el programa continúa se ejecución desde donde fue interrumpido.

2.4 LOS PUERTOS DE ENTRADA Y SALIDA Una de la características más importantes de un microcontrolador es la cantidad de pines de entrada/salida (E/S) usados para conexiones con periféricos. En este caso el PIC16F887 cuenta con 35 pines de entradas/salidas genéricas disponibles, los cuales son suficientes para la mayoría de las aplicaciones. Los pines están organizados en puertos de 8 bits similares a los registros, agrupados en cinco registros llamados A,B,C,D y E, todos tienen características comunes. Por razones prácticas, muchos pines E/S tienen dos o tres funciones. Cada puerto tiene su “satélite”, por ejemplo el registro TRIS correspondiente: TRISA, TRISB, TRISC etc. Que determina su desempeño, pero no el contenido del puerto. Poniendo en cero un bit (bit=0) del registro TRIS, el pin correspondiente del puerto se configura como salida. De manera similar poniendo en 1 un bit del registro TRIS (bit=1) el registro correspondiente en el puerto asociado al registro TRIS se configura como entrada. En la figura 2.3 se muestran los pines del microcontrolador PIC16F887 y en la figura 2.4 el diagrama a bloques.

Page 14: Control Ad Or de Temperatura Simplificado

14

Figura 2.1 Pines del Microcontrolador

Figura 2.4 Diagrama bloques del Microcontrolador PIC16F887

Page 15: Control Ad Or de Temperatura Simplificado

15

2.5 EL MÓDULO DE RELOJ El módulo de reloj del microcontrolador tiene tres fuentes de señal de reloj para alimentar otras tres señales que sincronizan la CPU y los periféricos

Las fuentes de reloj son las siguientes:

• Un reloj que puede funcionar con cristales o resonadores cerámicos de baja frecuencia o de alta frecuencia . El modo se selecciona por software.

• Un reloj de alta frecuencia que ocupa cristales o resonadores cerámicos de alta frecuencia.

• Un oscilador interno de características RC controlado digitalmente mediante registros de control.

2.5.1 Programación del registro OSCCON

Este registro define si el oscilador es, externo, interno y en este caso la velocidad de operación.

Bit 7 no se usa

Bit 6-4 todos en 1 oscilador interno a 8 MHZBit 3 0 Oscilador interno

Bit2 es de solo lectura

Bit 1 es de solo lectura

Bit 0 1 El oscilador interno es usado como reloj del sistema

OSCCON = 0x71;// oscilador interno a 8 MHZ

.

Page 16: Control Ad Or de Temperatura Simplificado

16

Tabla 2.1 Registro OSCON

Esta flexibilidad en el sistema de reloj está especialmente indicada para ahorrar energía, ya que se puede ocupar un cristal de baja frecuencia, por ejemplo 32 KHz, para los periféricos, mientras la CPU se opera mediante el oscilador interno a una frecuencia que puede ir de los 31 KHz a los 8 MHz, dependiendo de la configuración y características del dispositivo en particular. Además para contrarrestar el efecto de corrimiento de frecuencia del oscilador interno se puede corregir periódicamente con la señal más estable proveniente del oscilador de baja frecuencia controlado por cristal.

2.5.2 Configuración del OPTION_REG,

Page 17: Control Ad Or de Temperatura Simplificado

17

El registro OPTION_REG define los parámetros de resistencias de pull up, el tipo de señal que dispara la interrupción y el factor de división de la frecuencia de reloj que alimentará al temporizador 0 ( TIMER 0) Bit 7 = 1 Resistencias de pull up deshabilitadas Bit 6 = 0 Interrumpe a la subida Bit 5 = 0 Fosc/4 Bit 4 = 0 El temporizador incrementa a la subida Bit 3 = 0 El divisor se asigna al temporizador 0 Bit 2-0 = 1 El divisor es de 256

Tabla 2.2 Registro OPTION_REG

OPTION_REG = 0x87; // Asigna divisor a TMR0 1:256

Page 18: Control Ad Or de Temperatura Simplificado

18

2.5.3 El convertidor análogo a digital Una de las características distintivas de la familia de microcontroladores es la incorporación de un convertidor análogo a digital. El PIC16F887 tiene un ADC que genera una señal de 10 bits mediante aproximaciones sucesivas y almacena el resultado en los registros (ADRESL y ADRESH) con una tasa de muestreo de casi 200 mil muestras por segundo, el inicio de la conversión se puede realizar por software o por señales provenientes de los temporizadores; el término de la conversión puede generar interrupciones para alertar al procesador; la referencia positiva se puede seleccionar entre una señal externa o interna; la referencia negativa se puede seleccionar entre una señal externa o la tensión de tierra negativa. La Figura 2.5 se muestra el diagrama a bloques del ADC.

Figura 2.5 Diagrama a bloques ADC

Page 19: Control Ad Or de Temperatura Simplificado

19

2.5.4 Programación del registro ADCON0 Este registro define el oscilador que utilizará para funcionar el ADC interno, la habilitación del CAD. Bit 7-6 00 osc/2 Bit 2-5 selección de canales Bit 1 bit de estado solo lectura Bit 0 1 se habilita el CAD ADCON0 = 0B00000001 Osc/2, CAD habilitado

Tabla 2.3 Registro ADCON0

Page 20: Control Ad Or de Temperatura Simplificado

20

2.5.5 Programación del registro ADCON1 Este registro define si el resultado de la conversión se justifica a la derecha o izquierda, el voltaje de referencia que utilizará el ADC, Bit 7 1 justificado a la derecha Bit 6 no se usa Bit 5 0 vss es el voltaje de referencia negativa Bit 4 0 vdd es el voltaje de referencia positiva Bit 0-3 no se usan ADCON1 = 0b10000000;//bit 07 1 justificado a la derecha Justificado a la derecha y los voltajes de referencia son 0 y 5 V de la fuente.

Tabla 2.4 Registro ADCON1

Page 21: Control Ad Or de Temperatura Simplificado

21

2.5.5 Programación del registro ANSEL Este registro define cuales de las 8 primeras entradas se configurarán como entradas analógicas, en nuestro caso solo se utilizan las primeras 2. ANSEL = 0B00000011 Configura AN0 y AN1 como entradas analógicas 2.5.6 Programación del registro ANSELH Este registro define cuales de las 4 ultimas entradas se configurarán como entradas analógicas, no se están usando como entradas analógicas por lo tanto se inicializa con 0. . ANSELH = 0; 2.5.7 Programación del registro TRISA Este registro se puede configurar como entrada (1) o salida (0), los primeros 2 bits se están utilizando como entradas y los restantes no se están usando, por lo que lo configuramos como entradas todos los bits escribiendo unos en todos los bits. TRISA = 0xFF;//puerto A como entradas 2.5.8 Programación del registro TRISE Se está usando como salida por lo que se inicializa con 0. TRISE = 0; // PORTE es salida 2.5.9 Programación del registro PORTB. En el Puerto B está conectado el teclado matricial de 3 x 4, el cual debe ser inicializado antes de poder usarlo, la inicialización se hace mediante la rutina de inicialización del teclado que incluye el compilador Mikroc. Keypad_Init(&PORTB); 2.5.10 Programación del registro PORTD En el Puerto D está conectado display LCD, el cual debe ser inicializado antes de poder usarlo, la inicialización se hace mediante la rutina de inicialización del display que incluye el compilador Mikroc. Lcd_Init(&PORTD);

Page 22: Control Ad Or de Temperatura Simplificado

22

2.5.11 Programación del registro INTCON Este registro define que periféricos pueden interrumpir al procesador. Bit 7 1 Habilita interrupciones globales Bit 6 0 Deshabilita interrupciones al USART Bit 5 1 Habilita interrupciones al TMR0 Bit 4 0 Deshabilita interrupciones externas Bit 3 0 Deshabilita interrupciones al puerto B Bit 0-2 Solo lectura INTCON = 0xA0; Hablita interrupción de TMR0 e interrupciones globales

Tabla 2.5 Registro INTCON

Page 23: Control Ad Or de Temperatura Simplificado

23

2.6 LOS TEMPORIZADORES DE PIC16F887 Existen tres temporizadores/contadores identificados como TMR0, TMR1 y TMR2 completamente independientes disponibles en el microcontrolador PIC16F887.

2.6.1 El temporizador TMR0. El temporizador TMR0 es temporizador/contador de 8 bits con las siguientes características:

• Temporizador/contador de 8 bits

• Divisor de 8 bits

• Fuente programable de reloj interna y externa

• Interrupción en sobre flujo

• Reloj programable externo

El temporizador TMR0 se utiliza como temporizador para generar interrupciones cada 20 ms , que es la base de tiempo que utiliza el sistema para sincronizar y llevar acabo todas las actividades. Para calcular que valor debe ser cargado al temporizador se utiliza la siguiente fórmulas: Periodo de reloj = 1/8000000 = .125 us para f = 8 mhz Valor a cargar = 256-tiempo requerido de interrupción/(4 x periodo de reloj x divisor) Valor = 256 – 20ms/4x.000125 x256 = 256 - 156.25 = 100 TMR0 = 100; valor inicial TIMER0 El temporizador debe ser cargado con el valor 100 para que al llegar el contador a 0 genere una interrupción ( cada 20 ms).

Page 24: Control Ad Or de Temperatura Simplificado

24

Figura 2.6 Diagrama a bloques TIMER0

2.6.2 El temporizador TMR1. El temporizador TMR01 es temporizador/contador de 16 bits con las siguientes características:

• Par de registros (TMR1H:TMR1L) 16 bits temporizador/contador

• Fuente de reloj programable (interna o externa)

• Divisor de 3 bits

• Interrupción de sobre flujo

Cuando usa fuente de reloj interno se utiliza como temporizador, mientras que si usa reloj externo se utiliza como contador. En la figura 2.7 se muestra el diagrama a bloques de temporizador TMR1 y en la tabla 2.8 se muestra el registro de control del TMR1 T1CON.

Page 25: Control Ad Or de Temperatura Simplificado

25

Figura 2.7 Diagrama a bloques del TIMER1

Page 26: Control Ad Or de Temperatura Simplificado

26

Tabla 2.8 T1CON Registro de control del TMR1

Page 27: Control Ad Or de Temperatura Simplificado

27

2.6.3 El temporizador TMR2.

El temporizador TMR012 es temporizador/contador de 8 bits con las siguientes características:

• Registro del RMR2 de 8 bits

• Registro del periodo PR2 de 8 bits

• Interrupción cuando TMR2 y PR2 son iguales

• División de entrada programable por software (1:1, 1:4, 1:16)

• División de salida programable por software (1:1, 1:4, 1:16)

En la figura 2.8 se muestra el diagrama a bloques de TMR2 y en la tabla 2.9 el registro de control del TMR2

Figura 2.8 Diagrama a bloques del TIMER2

Page 28: Control Ad Or de Temperatura Simplificado

28

Tabla 2.9 T2CON Registro de control del TMR2

Page 29: Control Ad Or de Temperatura Simplificado

29

CAPÍTULO 3

DESCRIPCIÓN DEL CONTROLADOR DE TEMPERATURA

Page 30: Control Ad Or de Temperatura Simplificado

30

3.1 INTRODUCCION Para resolver un problema es recomendable dividirlo en varios problemas de menor complejidad y resolver cada uno de estos por separado para finalmente unir las soluciones resultantes y resolver el problema principal. Esta forma de trabajar es de vital importancia en la programación y constituye una herramienta indispensable tanto en el diseño como en la elaboración del código fuente. El diseño propuesto consiste de una microcomputadora con los módulos de entrada necesarios para medir la señal de entrada, interfaz de entrada y salida de datos, así como la etapa de potencia, como se muestra el la figura 3.1

Figura 3.1 Diagrama a bloques del Sistema

3.2 TEMPERATURA

HORNO

TECLADO

SALIDA

ENTRADA

MICROCONTROLADOR PIC 16F887

SENSOR

ENTRADA

SALIDA

RESISTENCIAS

DISPLAY LCD

Page 31: Control Ad Or de Temperatura Simplificado

31

Para la lectura de la temperatura ambiente se utiliza la entrada analógica 1 del convertidor analógico digital (An1), este pin es conectado a la salida del circuito de temperatura, como se muestra a continuación.

Figura 3.2 Circuito de detección de temperatura

Para medir la temperatura dentro del horno se utiliza como sensor el termopar y la circuitería asociada que acondiciona la señal del termopar y queda lista para ser conectada a la entrada An0 del microcontrolador. Después de haber configurado el convertidor analógico digital y dado la orden para que inicie la conversión, al resultado arrojado por el convertidor es necesario realizarle una operación, esto con el fin de obtener una medida confiable, al valor medido por el termopar se le debe sumar la temperatura ambiente detectada por el sensor LM35. La siguiente operación debe ser realizada a cada resultado del convertido analógico a digital.

Temperatura = (Lectura An0x5000)/(1024x4) + (Lectura An1x5000)/(1024x10)

Debido a las características del circuito de temperatura mencionadas en el capítulo 2 y realizando lo anterior nuestra lectura de temperatura esta lista para ser enviada a través del display de cristal liquido LCD, dicha rutina se muestra a continuación: ADCON0 = 0B00000001;// BIT 0 habilita ADC, BITS 6 Y 7 EN 0 OSC/2 // BITS 6 Y 7 EN 1 FREC OSC RC ADCON1 = 0b10000000;//bit 07 1 justificado a la d erecha //bit 5 0 = referencia - vss bit 04 0 = ref + vdd ANSEL = 0B00000011; // Configura AN0 y AN1 como e ntradas analógicas ANSELH = 0;

Page 32: Control Ad Or de Temperatura Simplificado

32

TMR0 = 100; // Timer0 initial value INTCON = 0xA0; // Enable TMRO interrupt cnt = 0; // Initialize cnt Delay_ms(500); // Delay 15 mili second Keypad_Init(&PORTB); Lcd_Init(&PORTD); // LCD está connected to PORTD Delay_ms(20); // Delay 15 mili second Lcd_Cmd(LCD_CLEAR); Delay_ms(500); // Delay . second Lcd_Out(1,1,"Controlador de Temperatura"); Lcd_Out(2,1,"Elije la opción deseada 1,2,3"); Delay_ms(500); // Delay . second Lcd_Cmd(LCD_CLEAR); do { if (cnt >= 50) { PORTE = ~PORTE; // Toggle PORTB LEDs cnt = 0; tmp++ ; Lcd_Cmd(LCD_CLEAR); Vin0 = Adc_Read(0); // Lee el canal 0 (AN0) Vin1 = Adc_Read(1); // Lee el canal 1 (AN1) T0 =( (Vin0 * 5000) >> 10)/4; // T0 = (Vin0 x 5000 ) /(1024 x 4) T1 =( (Vin1 * 5000) >> 10)/10; // T1 = (Vin1 x 500 0) / (1024 x 10) Temperatura = T0 + T1 Lcd_Out(2,1,"TEMP ºC = "); // Display " TEMP ºC = " LongToStr(Temperatura,op); // Se convierte a string en "op" j=0; for(i=0;i<=11;i++) { if(op[i] != ' ') // If a blank { lcd[j]=op[i]; j++; } } // Display result on LCD // Lcd_Out(2,10,lcd); // salida a LCD Delay_ms(1000); // Espera 1 segundo // Reset cnt } } while(1); }

3.3 MODULO DE DESPLIEGUE El módulo de despliegue es básicamente un display de cristal líquido ( LCD) de 2 renglones por 16 caracteres cada uno compatible con el controlador HD44780 de Hitachi el cual, se utiliza para mostrar el valor de temperatura que hay en el interior del Horno, así como para la programación y el manejo del Horno como se muestra en la Figura 3.3 .

Page 33: Control Ad Or de Temperatura Simplificado

33

Figura 3.3 Módulo de despliegue

El LCD se conecta al puerto D en modo 4 bits, con el fin de minimizar el número de bits del Microcontrolador y facilitar el diseño del circuito impreso, de tal manera que para su manejo se utilizan 4 bits para datos y 2 para control, con lo que se necesitan solo 6 bits de un puerto de 8 bits. En la tabla 3.1 se muestra las señales asociadas al controlador del display.

Función Numero de Pin

Nombre Estado Lógico

Descripción

Tierra 1 Vss - 0V

Fuente 2 Vdd - +5V

Contraste 3 Vee - 0 - Vdd

Control de operación 4 RS

0 1

D0 – D7 son interpretados Como comandos

D0 – D7 son interpretados como datos

Page 34: Control Ad Or de Temperatura Simplificado

34

5 R/W 0 1

escribe datos (del controladorr al LCD)

Lee datos (del LCD al controlador)

6 E 0 1

De 1 a 0

Acceso a LCD deshabilitar operación Normal

Datos/comandos son transferidos al LCD

7 D0 0/1 Bit 0 LSB

8 D1 0/1 Bit 1

9 D2 0/1 Bit 2

10 D3 0/1 Bit 3

11 D4 0/1 Bit 4

12 D5 0/1 Bit 5

13 D6 0/1 Bit 6

Datas / comandos

14 D7 0/1 Bit 7 MSB

Led

15 16

Led – Led +

0 1

Iluminación del display

Tabla 3.1 Señales display Hitachi LCD

Page 35: Control Ad Or de Temperatura Simplificado

35

3.4 MODULO DE ENTRADA DE DATOS Para el manejo de datos de entrada se cuenta con un teclado matricial, por medio del cual el usuario se comunica con el sistema como se muestra en la Figura 3.4.

.

Figura 3.4 Módulo de entrada de datos

La interconexión entre el microcontrolador El Teclado matricial de 3 columnas por 4 renglones, con un total de 12 teclas se conecta al puerto B, este tipo de arreglo permite minimizar el número de bits del Microcontrolador, de tal manera que para su manejo se utilizan 3 bits para columnas y 4 bits para renglones con lo que se necesitan solo 7 bits de un puerto de 8 bits en lugar de 12 si se conectaran 12 interruptores en paralelo.

Page 36: Control Ad Or de Temperatura Simplificado

36

3.5 MODULO DE POTENCIA El módulo de potencia formado por un opto acoplador con salida a triac, el cual nos permite controlar la energía que se suministra al elemento calefactor contenido dentro del horno como y como elemento de aislamiento de la línea de 127 VCA como se muestra en la Figura 3.5

.

Figura 3.5 Módulo de potencia

El opto acoplador es controlado por el bit 0 del puerto D, que a su vez activa el triac de

potencia que controlará la carga resistiva del Horno, o la bobina de un contactor de

Potencia en caso de que la potencia a manejar sea mayor a la capacidad del triac,

.

3.6 MODULO DE FUENTE DE ALIMENTACIÓN

Page 37: Control Ad Or de Temperatura Simplificado

37

La fuente de alimentación está formada por un regulador de voltaje lineal que genera 5 v y los capacitares de desacoplo en la entrada y salida de la fuente. Para su operación, se requiere una fuente externa de 9v cc no regulada o alimentación de baterías.

Figura 3.6 Fuente de alimentación

Page 38: Control Ad Or de Temperatura Simplificado

38

3.7 SISTEMA DE DESARROLLO El sistema de desarrollo de software y hardware utilizado para desarrollar éste proyecto consiste de:

• Computadora personal con el Sistema operativo Windows XP

• Compilador Mikroc Versión 8.1 de la Compañía Mikroelectronika

• MPLAB IDE de la Compañía Microchip Technology Inc.

• Programador de PIC MPLAB ICD 2 de la Compañía Microchip Technology

• Tarjeta de desarrollo PICDEM 2 de la Compañía Microchip Technology

Figura 3.7 Programador ICD 2 y Tarjeta Picdem 2

Page 39: Control Ad Or de Temperatura Simplificado

39

3.8 MÓDULOS DE SOFTWARE Hay básicamente dos módulos donde se realizan las funciones principales del sistema. El Módulo de interrupciones se ejecuta cada 20 ms, y es el que lleva el conteo del tiempo, así como la lectura de temperatura a través de las entradas analógicas y el control del horno. El diagrama de estados se muestra en la figura 3.8

Figura 3.8 Diagrama de estados

3.8.1 MAQUINAS DE ESTADOS FINITOS Hay dos tipos de maquinas de estados finitos: Mealy cambia su acción basada en el estado actual y sus entradas.

Moore cambia su acción solamente basada en su estado actual.

Page 40: Control Ad Or de Temperatura Simplificado

40

La parte mas importante del método de máquinas de estados finitos es dibujar los diagramas de estado que nos permite concentrarnos en el problema, más que en las variables o en el código a desarrollar. En una máquina de estados hay una variable de control llamada variable de estado, que representa el estado actual de la máquina. Cada valor de la variable de estado direcciona a la máquina de estados a un estado diferente y permanece en ese estado hasta que la variable de estado cambie. La ventaja de utilizar máquinas de estados es que fácilmente se pasa de la gráfica de estados al código en cualquier lenguaje de programación. En lenguaje C con la siguiente estructura de programa se representan los estados de la máquina de estados representada en la Figura 3.5 enum maquina_de_estado { espera, paso1,paso2,paso3,paso4,paso5 }

enum maquina_de_estado estado La condición describe cuando el estado de la maquina de estados debe ir de la condición

actual al siguiente.

La acción describe que pasa cuando la condición se cumple, que acciones se deben tomar

en el estado actual.

Page 41: Control Ad Or de Temperatura Simplificado

41

enum maquina_de_estado { espera, paso1,paso2,paso3, paso4,paso5 }; enum maquina_de_estado estado = Espera; while(1) { // (1) switch ( stado ) { case Espera : if bandera == 1 conecta resistencia() estado = paso1; break; case Paso1 : break; case Paso2 : break; case Paso3 : break; case Paso4 : break; case Paso5 : estado = Espera; break; } // switch } // While Infinito }

El programa principal, donde se inicializan los periféricos, se analizan los comandos de usuario para iniciar el proceso y posteriormente quedarse en un ciclo infinito, leyendo el teclado para leer comandos como se muestra en la Figura 3.9.

Page 42: Control Ad Or de Temperatura Simplificado

42

Figura 3.9 diagrama de flujo del programa principal

Page 43: Control Ad Or de Temperatura Simplificado

43

CAPÍTULO 4

CONCLUCIONES

Page 44: Control Ad Or de Temperatura Simplificado

44

• Con éste desarrollo se cumple con las premisas de tener un producto de buenas características , precio económico que pueda ser adquirido por artesanos de bajos recursos de nuestro país. • Para diseñar e implementar un sistema con microcontroladores, es necesario conocer la arquitectura del microcontrolador, conocer las herramientas de desarrollo disponibles, el compilador de C para el microcontrolador en cuestión , así como conocer la filosofía de programación en tiempo real para poder usar las facilidades al máximo tanto de las herramientas como las del microcontrolador. • La programación del microcontrolador en un lenguaje de alto nivel como el lenguaje C, tiene las ventajas de reducir los costos y tiempos de desarrollo y que las aplicaciones puedan portarse con relativa facilidad a otros microcontroladores existentes en el mercado. • El costo neto del controlador de temperatura en cantidades de 100 es de $500.00 el cual es un precio competitivo con los controladores de temperatura mas censillos que se venden en nuestro país. • Los microcontroladores actuales tienen la suficiente versatilidad, poder y bajo costo como para implementar una gran variedad de aplicaciones industriales con un mínimo de componentes externas, lo que redunda en bajo costo, confiabilidad y bajo consumo de energía. • Si el diseño de la tarjeta del microcontrolador se hace pensando en utilizarla para diferentes proyectos, el costo se incrementa de manera insignificante pero permitiría la reutilización del hardware y gran parte del software minimizando contos en proyectos futuros y reduciendo drásticamente el tiempo de tener en el mercado un producto nuevo.

Page 45: Control Ad Or de Temperatura Simplificado

45

Apéndice A: ESPECIFICACIONES Temperatura Escala de temperatura Celsius °C Rango de medición 0ºC a +1200°C Resolución 1°C Exactitud +/- 2 ºC a 1000°C

Page 46: Control Ad Or de Temperatura Simplificado

46

Apéndice C: GLOSARIO ADC.- Convertidor Analógico a Digital. Arquitectura Harvard.- Es una arquitectura de computadoras que utilizan almacenamiento separado para datos y programa. CPU.- Unidad Central de Procesamiento (Central Processing Unit), o simplemente el procesador, es el componente en una computadora que interpreta las instrucciones y procesa los datos. LM35: Sensor de precisión de temperatura de salida analógica LSB.- Bit menos significativo (Least-Significant Bit). MCLK.- Reloj maestro. MIPS.- Es el acrónimo de "millones de instrucciones por segundo". Es una forma de medir la potencia de los procesadores. MSB.- Bit mas significativo (Most-Significant Bit). PIC16FXXX.- Es una familia de microcontroladores producidos por Microchip Technology. Pirómetro: La radiación se enfoca hacia un filamento y un sensor óptico. El filamento es calentado por una corriente eléctrica hasta que adquiere el mismo color que el objeto caliente por lo que desaparece por el fondo de este. La corriente del filamento es entonces una medida de la temperatura.

RAM.- Memoria de acceso aleatorio (Random Access Memory). RISC.- De Arquitectura computacional, RISC (Reduced Instruction Set Computer), Computadora con Conjunto de Instrucciones Reducidas ROM.- Memoria de solo lectura (Read Only Memory).

Termopar: Cuando dos alambres de distinto material se unen en sus terminales y una de ellas se calienta, existe corriente continua que fluye en el circuito termoeléctrico.

UART.- "Universal Asynchronous Receiver-Transmitter" ("Transmisor-Receptor Asíncrono Universal"). Este controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo.

Page 47: Control Ad Or de Temperatura Simplificado

47

APENDICE D PROGRAMAS /* * Nombre del Proyecto: Control de Horno electrico * * Descripción: Controlador de Temperatura de un Horno electrico * Configuracion de prueba: MCU: PIC16F887 Oscillador: Interno , 8.0000 MHz SW: mikroC 8.1 para PIC * NOTAS: */ unsigned short kp, cnt, oldstate = 0; char txt[5]; void interrupt() { cnt++; // increment counter kp = Keypad_Read(); TMR0 = 100; INTCON = 0x20; // clear TMR0IF } void main() { unsigned char K,a,u = 1; unsigned long Vin, mV,tmp=0; unsigned char op[12]; unsigned char i,j,lcd[6]; //OPTION_REG = 0x84; // Asiga prescaler a TMR0 1:32 OPTION_REG = 0x87; // Asigna prescaler a TMR0 1:256 //OSCCON = 0x60;// oscilador interno a 4 MHZ OSCCON = 0x71;// oscilador interno a 8 MHZ ADCON0 = 0B00000001;// BIT 0 habilita ADC, BITS 6 Y 7 EN 0 OSC/2 // BITS 6 Y 7 EN 1 FREC OSC RC ADCON1 = 0b10000000;//bit 07 1 justificado a la derecha //bit 5 0 = referencia - vss bit 04 0 = ref + vdd ANSEL = 0B00000011; // Configura AN0 y AN1 como entradas analógicas ANSELH = 0; TRISB = 0; //PORTB = 0xFF; // Initialize PORTB TRISE = 0; // PORTE como salida PORTE = 0xFF; // Inicialisa PORTB TRISA = 0xFF;//puerto a como entradas

Page 48: Control Ad Or de Temperatura Simplificado

48

TMR0 = 100; // Timer0 initial value INTCON = 0xA0; // Enable TMRO interrupt cnt = 0; // Initialize cnt Delay_ms(500); // Delay 15 mili second Keypad_Init(&PORTB); Lcd_Init(&PORTD); // LCD is connected to PORTD Delay_ms(20); // Delay 15 mili second Lcd_Cmd(LCD_CLEAR); Delay_ms(500); // Delay . second Lcd_Out(1,1,"PRUEBA 1"); Lcd_Out(2,1,"PRUEBA 2"); Delay_ms(500); // Delay . second Lcd_Cmd(LCD_CLEAR); do { if (cnt >= 50) { PORTE = ~PORTE; // Toggle PORTB LEDs cnt = 0; tmp++ ; Lcd_Cmd(LCD_CLEAR); Vin = Adc_Read(1); // Read from channel 0 (AN0) Lcd_Out(2,1,"TEMP C = "); // Display "mV = " mV =( (Vin * 5000) >> 10)/10; // mv = Vin x 5000 / 1024 LongToStr(mV,op); // Convert to string in "op" // LongToStr(tmp,op); // Convert to string in "op" j=0; for(i=0;i<=11;i++) { if(op[i] != ' ') // If a blank { lcd[j]=op[i]; j++; } } // Display result on LCD // Lcd_Out(2,10,lcd); // Output to LCD Delay_ms(1); // Wait 1 second // Reset cnt } } while(1); }

Page 49: Control Ad Or de Temperatura Simplificado

49

APENDICE E Diagrama eléctrico

Page 50: Control Ad Or de Temperatura Simplificado

50

BIBLIOGRAFÍA Programming and customizing the PIC Microcontroller. Predko, Myke USA,Mc Graw Hill 2008 1263 p Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC 18F Series Dogan , Ibrahim UK, ISBN, 2008 544 P Modeling Software with Finite State Machines A Practical Approach Wagner, Ferdinand Schmuki, Ruedi Wagner, Thomas Wolstenholme, Peter USA, CRC Press 2006 362P

REFERENCIAS INFORMÁTICAS http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf Tema: MPLAB® IDE User’s Guide, Microchip Technology Inc. Consulta: febrero 2009 http://ww1.microchip.com/downloads/en/DeviceDoc/41291F.pdfTema: MPLAB® IDE Tema: PIC16F887 Data Sheet, Microchip Technology Inc. Consulta: febrero 2009 http://www.datasheetcatalog.net/es/datasheets_pdf/L/M/3/5/LM35.shtml Tema: LM35 Datasheet, National Semiconductor Consulta: mayo 2009 http://www.mikroe.com/pdf/mikroc/mikroc_manual.pdf Tema: “mikroC User´s Manual” , MikroElectronika 2008. Consulta: Febrero de 2009