Sei sulla pagina 1di 50

CAPITULO 1 FUNDAMENTOS TERICOS DE LOS CONTROLADORES DE TEMPERATURA

1.1 INTRODUCCIN
En este captulo se describen las tcnicas de control de temperatura existentes as como los diferentes tipos de controladores disponibles en el mercado. El control de temperatura ms difundido para los hornos elctricos utilizados para cermica y vidrio consisten de dispositivos llamados pirmetros, los cuales permiten al usuario fijar una temperatura dada, temperatura de operacin y mediante control apagado/encendido inician el encendido de los elementos calefactores que consisten de resistencias elctricas que mediante el paso de la corriente elctrica generan calor, de sta manera inicia el proceso de calentamiento. Mediante sensores de temperatura llamados termopares el pirmetro mide la temperatura en el horno y al llegar sta al 1

valor preestablecido el pirmetro desconecta las resistencias para de sta manera mantener la temperatura al valor establecido conectando y desconectando los elementos calefactores segn 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 razn de cambio constante. Apagar el horno cuando alcaza la temperatura fija. Mantener el horno a la temperatura fijada y despus de un tiempo fijado de antemano apagar el horno automticamente. Iniciar el calentamiento a una hora y fecha fijada de antemano para el siguiente horneado de piezas.

El desarrollo propuesto consiste en disear 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 segn el rango que se vaya a medir; los ms utilizados para los hornos elctricos utilizados en cermica 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 slido que se utiliza para convertir la energa calorfica en voltaje. Consta de dos metales diferentes empalmados en una juntura. Estos dos metales estn 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 travs de los metales dismiles en el ensamble de la medida de la temperatura. Los

termopares se emplean como sensores de temperatura y para su fabricacin pueden utilizarse materiales tales como: hierro-constantan, cromo- aluminio. Los termopares estn entre los sensores de temperatura ms fciles de utilizar y de obtener, y se utilizan extensamente en ciencia e industria. La eleccin del tipo ptimo del termopar se basa en la temperatura de aplicacin, el medio al que ser expuesto, la vida til necesaria, la exactitud requerida y el costo. Cuando un conductor metlico 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 redistribucin de los electrones en el conductor cuando stos se someten a un gradiente de temperatura.

La figura 1.1 representa esquemticamente el fenmeno.

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 homogneo, el valor del voltaje, no depende de la distribucin de temperatura a lo largo del conductor, pero si, como hemos dicho anteriormente, de la diferencia de temperatura entre sus extremidades. Este fenmeno es bsico para poder entender la termoelectricidad y su aplicacin en la medicin de temperatura. La siguiente ecuacin muestra el voltaje generado en la unin 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 centgrado. El siguiente paso es medir la temperatura del bloque isotrmico (tref) y emplear esta informacin para conocer la temperatura de la unin J1 (tj1).

1.2.2 Circuitos integrados para medir temperatura


Los circuitos integrados para medir temperatura se pueden clasificar en dos tipos: de salida analgica y de salida digital. Los de salida analgica ms populares son: el LM35, es una fuente de tensin estndar 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 ecuacin:

VoutT = VoutT 0
Donde:

T T0
4

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

Figura 1.2 LM35 Sensor de temperatura centgrada bsico

1.3 SENSADO Y ACONDICIONAMIENTO DE SEAL


La etapa de sensado y acondicionamiento se encarga de adquirir la seal que proviene del transductor de temperatura, que en este caso se seleccion un termopar tipo k, el cual entrega una seal de 40 micro volts / C y puede operar en un rango de 0 c a 1200 C, que es el rango de operacin del horno. Para su correcta utilizacin por el controlador se requiere amplificar la seal hasta obtener una seal 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 compensacin a temperatura ambiente del termopar se utiliza el sensor de temperatura Lm35, el cual entrega una seal de 10 mv/C y puede operar en un rango de 0C a 100 C. Los circuitos de la etapa de sensado y acondicionamiento se muestran en la figura 1.3

Figura 1.3 Etapa de sensado y acondicionamiento

El amplificador operacional utilizado es un LT 1014 de la empresa Linear Technology con las siguientes caractersticas relevantes: Operacin con una sola fuente Bajo voltaje de offset tpico 50 mximo, 180 micro volts Alta ganancia Bajo corrimiento 2 micro volts / C Mximo La razn de rechazo al modo comn (o CMRR) Mayor a 94 dB La compensacin 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 retroalimentacin 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

La resistencia R1 tiene como funcin detectar la condicin de falla del termopar, cuando este se abre o est desconectado, dando como resultado un voltaje mximo a la salida del amplificador operacional (5 volts).

CAPITULO 2 DESCRIPCIN DEL MICROCONTROLADOR PIC16F887

2.1 INTRODUCCIN
La Unidad de control y procesamiento est constituida por un Microcontrolador PIC16F887 de la Compaa Microchip, el cual cuenta con los puertos de Entrada/Salida, Memoria de Programa y de Datos, as como los convertidores Analgico digitales necesarios para poder leer las seales analgicas 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 compaas independientes y su disponibilidad en Mxico

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 caractersticas: Arquitectura RISC Frecuencia de Operacin 0-20 MHz Oscilador interno de precisin calibrado de fbrica +/- 1% Seleccin de frecuencia por Software con un rango de 8MHz a 31KHz Voltaje de alimentacin 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 tecnologa FLASH -El Chip puede ser reprogramado hasta 100.000 veces Programacin 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 ms de 1.000.000 de veces 368 bytes memoria RAM convertidor: A/D -14-canales -resolucin 10-bits 3 temporizadores/contadores independientes Temporizador Watch-dog modulo Mejorado de USART -Soporta RS-485, RS-232 y LIN2.0 -Auto Deteccin de -Baud

2.3 MAPAS DE MEMORIA Y VECTOR DE INTERRUPCIN.


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, caractersticas y organizacin

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 tecnologa de Memoria Flash, su contenido puede ser cambiado mediante un voltaje de programacin especial (13V). El diagrama a bloques de la memoria se muestra en la figura 2.1

Figura 2.1 Mapa de memoria FLASH

10

2.3.2 EEPROM
Similar a la memoria de programa, el contenido de la EEPROM es guardado de manera permanente, an cuando haya un corte de energa. Sin embargo, a diferencia de la ROM, el contenido de la EEPROM puede se cambiado durante la operacin del microcontrolador. Debido a sta caracterstica de la memoria EEPROM (256 localidades) es la indicada para salvar los resultados creados y usados durante la operacin.

2.3.3 RAM
La RAM es el tercero y ms complejo tipo de memoria del microcontrolador. En este caso, consiste de dos partes: Registros de propsito general y registros de funciones especiales (SFR). Ambos tipos de registros pierden su informacin cuando se apaga la fuente de alimentacin. Ambos tipos de registros son manufacturados de la misma forma, aunque las funciones que realizan son diferentes. Los Registros de propsito general son usados para almacenamiento temporal de datos y resultados creados durante la operacin del microcontrolador. Los Registros especiales son tambin localidades de RAM, pero a diferencia de los registros de propsito general, su propsito est predeterminado durante el proceso de manufactura y no puede ser alterado, ya que sus bits estn fsicamente conectados a circuitos particulares en el chip, por ejemplo al convertidor Analgico digital, mdulo serie de comunicaciones, etc., cualquier cambio en su contenido afecta la operacin del microcontrolador o alguno de sus circuitos. Por ejemplo , cambiando los bits del registro TRISA, la funcin de cada pin del puerto A puede ser cambiado como entrada o salida. Otra caracterstica 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 algn 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 operacin, los SFR ms usados tienen la misma direccin en todos los bancos. En la figura 2.3 se muestran el mapa de memoria RAM.

11

Figura 2.2 Mapa de memoria RAM

12

2.3.4 Vector de Interrupcin


Lo primero que hace el microcontrolador cuando llega una peticin de interrupcin es terminar de ejecutar la instruccin que estaba ejecutando en ese momento, parar el programa normal e inmediatamente despus, se guarda automticamente la siguiente instruccin que iba a ser ejecutada en la pila y se cambia el contador de programa por la direccin por defecto ( predefinida por el fabricante del microcontrolador). Esa direccin a donde el programa contina la ejecucin es llamada el Vector de Interrupcin. Para el microcontrolador PIC16F887, esta direccin es la 0004h Parte del programa que se activa cuando llega una peticin de interrupcin es llamado rutina de interrupcin. Algunos microcontroladores tienen varios vectores de interrupcin (cada peticin de interrupcin tiene su vector de interrupcin), pero en ste caso hay solo un vector de interrupcin, de ah que la primer actividad que hace la rutina de interrupcin es identificar cual fue la fuente de interrupcin. Finalmente cuando se identific la fuente de interrupcin y se ejecuta el cdigo de la rutina de interrupcin, el microcontrolador eventualmente alcanza la instruccin RETIE, en ese momento de manera automtica se saca la direccin de retorno de la pila y el programa contina se ejecucin desde donde fue interrumpido.

2.4 LOS PUERTOS DE ENTRADA Y SALIDA


Una de la caractersticas ms importantes de un microcontrolador es la cantidad de pines de entrada/salida (E/S) usados para conexiones con perifricos. En este caso el PIC16F887 cuenta con 35 pines de entradas/salidas genricas disponibles, los cuales son suficientes para la mayora de las aplicaciones. Los pines estn organizados en puertos de 8 bits similares a los registros, agrupados en cinco registros llamados A,B,C,D y E, todos tienen caractersticas comunes. Por razones prcticas, muchos pines E/S tienen dos o tres funciones. Cada puerto tiene su satlite, por ejemplo el registro TRIS correspondiente: TRISA, TRISB, TRISC etc. Que determina su desempeo, 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.

13

Figura 2.1 Pines del Microcontrolador

Figura 2.4 Diagrama bloques del Microcontrolador PIC16F887

14

2.5 EL MDULO DE RELOJ


El mdulo de reloj del microcontrolador tiene tres fuentes de seal de reloj para alimentar otras tres seales que sincronizan la CPU y los perifricos Las fuentes de reloj son las siguientes: Un reloj que puede funcionar con cristales o resonadores cermicos de baja frecuencia o de alta frecuencia . El modo se selecciona por software. Un reloj de alta frecuencia que ocupa cristales o resonadores cermicos de alta frecuencia. Un oscilador interno de caractersticas RC controlado digitalmente mediante registros de control.

2.5.1 Programacin del registro OSCCON


Este registro define si el oscilador es, externo, interno y en este caso la velocidad de operacin. Bit 7 no se usa 0

Bit 6-4 todos en 1 oscilador interno a 8 MHZBit 3 Oscilador interno Bit2 Bit 1 Bit 0 es de solo lectura es de solo lectura

1 El oscilador interno es usado como reloj del sistema

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

15

Tabla 2.1 Registro OSCON

Esta flexibilidad en el sistema de reloj est especialmente indicada para ahorrar energa, ya que se puede ocupar un cristal de baja frecuencia, por ejemplo 32 KHz, para los perifricos, 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 configuracin y caractersticas del dispositivo en particular. Adems para contrarrestar el efecto de corrimiento de frecuencia del oscilador interno se puede corregir peridicamente con la seal ms estable proveniente del oscilador de baja frecuencia controlado por cristal.

2.5.2 Configuracin del OPTION_REG,

16

El registro OPTION_REG define los parmetros de resistencias de pull up, el tipo de seal que dispara la interrupcin y el factor de divisin 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

17

2.5.3 El convertidor anlogo a digital


Una de las caractersticas distintivas de la familia de microcontroladores es la incorporacin de un convertidor anlogo a digital. El PIC16F887 tiene un ADC que genera una seal 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 conversin se puede realizar por software o por seales provenientes de los temporizadores; el trmino de la conversin puede generar interrupciones para alertar al procesador; la referencia positiva se puede seleccionar entre una seal externa o interna; la referencia negativa se puede seleccionar entre una seal externa o la tensin de tierra negativa. La Figura 2.5 se muestra el diagrama a bloques del ADC.

Figura 2.5 Diagrama a bloques ADC

18

2.5.4 Programacin del registro ADCON0 Este registro define el oscilador que utilizar para funcionar el ADC interno, la habilitacin del CAD. Bit 7-6 00 osc/2 Bit 2-5 seleccin 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

19

2.5.5 Programacin del registro ADCON1 Este registro define si el resultado de la conversin se justifica a la derecha o izquierda, el voltaje de referencia que utilizar el ADC, Bit 7 1 Bit 6 Bit 5 0 Bit 4 0 Bit 0-3 justificado a la derecha no se usa vss es el voltaje de referencia negativa vdd es el voltaje de referencia positiva 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

20

2.5.5 Programacin del registro ANSEL Este registro define cuales de las 8 primeras entradas se configurarn como entradas analgicas, en nuestro caso solo se utilizan las primeras 2. ANSEL = 0B00000011 Configura AN0 y AN1 como entradas analgicas

2.5.6 Programacin del registro ANSELH Este registro define cuales de las 4 ultimas entradas se configurarn como entradas analgicas, no se estn usando como entradas analgicas por lo tanto se inicializa con 0. . ANSELH = 0; 2.5.7 Programacin del registro TRISA Este registro se puede configurar como entrada (1) o salida (0), los primeros 2 bits se estn utilizando como entradas y los restantes no se estn 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 Programacin del registro TRISE Se est usando como salida por lo que se inicializa con 0.

TRISE = 0;

// PORTE es salida

2.5.9 Programacin 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 inicializacin se hace mediante la rutina de inicializacin del teclado que incluye el compilador Mikroc. Keypad_Init(&PORTB); 2.5.10 Programacin del registro PORTD En el Puerto D est conectado display LCD, el cual debe ser inicializado antes de poder usarlo, la inicializacin se hace mediante la rutina de inicializacin del display que incluye el compilador Mikroc. Lcd_Init(&PORTD);

21

2.5.11 Programacin del registro INTCON Este registro define que perifricos pueden interrumpir al procesador. Bit 7 1 Bit 6 0 Bit 5 1 Bit 4 0 Bit 3 0 Bit 0-2 Habilita interrupciones globales Deshabilita interrupciones al USART Habilita interrupciones al TMR0 Deshabilita interrupciones externas Deshabilita interrupciones al puerto B Solo lectura Hablita interrupcin de TMR0 e interrupciones globales

INTCON = 0xA0;

Tabla 2.5 Registro INTCON

22

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 caractersticas:

Temporizador/contador de 8 bits Divisor de 8 bits Fuente programable de reloj interna y externa Interrupcin 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 frmulas: Periodo de reloj = 1/8000000 = .125 us para f = 8 mhz Valor a cargar = 256-tiempo requerido de interrupcin/(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 interrupcin ( cada 20 ms).

23

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 caractersticas:

Par de registros (TMR1H:TMR1L) 16 bits temporizador/contador Fuente de reloj programable (interna o externa) Divisor de 3 bits Interrupcin 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.

24

Figura 2.7 Diagrama a bloques del TIMER1

25

Tabla 2.8 T1CON Registro de control del TMR1

26

2.6.3 El temporizador TMR2.


El temporizador TMR012 es temporizador/contador de 8 bits con las siguientes caractersticas:

Registro del RMR2 de 8 bits Registro del periodo PR2 de 8 bits Interrupcin cuando TMR2 y PR2 son iguales Divisin de entrada programable por software (1:1, 1:4, 1:16) Divisin 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

27

Tabla 2.9 T2CON Registro de control del TMR2

28

CAPTULO 3 DESCRIPCIN DEL CONTROLADOR DE TEMPERATURA

29

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 programacin y constituye una herramienta indispensable tanto en el diseo como en la elaboracin del cdigo fuente. El diseo propuesto consiste de una microcomputadora con los mdulos de entrada necesarios para medir la seal de entrada, interfaz de entrada y salida de datos, as como la etapa de potencia, como se muestra el la figura 3.1

DISPLAY LCD

SALIDA

RESISTENCIAS

SALIDA MICROCONTROLADOR PIC 16F887

SENSOR

ENTRADA ENTRADA

HORNO

TECLADO

Figura 3.1 Diagrama a bloques del Sistema

3.2 TEMPERATURA
30

Para la lectura de la temperatura ambiente se utiliza la entrada analgica 1 del convertidor analgico digital (An1), este pin es conectado a la salida del circuito de temperatura, como se muestra a continuacin.

Figura 3.2 Circuito de deteccin de temperatura

Para medir la temperatura dentro del horno se utiliza como sensor el termopar y la circuitera asociada que acondiciona la seal del termopar y queda lista para ser conectada a la entrada An0 del microcontrolador. Despus de haber configurado el convertidor analgico digital y dado la orden para que inicie la conversin, al resultado arrojado por el convertidor es necesario realizarle una operacin, 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 operacin debe ser realizada a cada resultado del convertido analgico a digital. Temperatura = (Lectura An0x5000)/(1024x4) + (Lectura An1x5000)/(1024x10) Debido a las caractersticas del circuito de temperatura mencionadas en el captulo 2 y realizando lo anterior nuestra lectura de temperatura esta lista para ser enviada a travs del display de cristal liquido LCD, dicha rutina se muestra a continuacin:
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 analgicas ANSELH = 0;

31

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 opcin 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 5000) / (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 mdulo de despliegue es bsicamente un display de cristal lquido ( 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 programacin y el manejo del Horno como se muestra en la Figura 3.3 .

32

Figura 3.3 Mdulo de despliegue

El LCD se conecta al puerto D en modo 4 bits, con el fin de minimizar el nmero de bits del Microcontrolador y facilitar el diseo 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 seales asociadas al controlador del display.

Funcin Tierra Fuente Contraste Control de operacin

Numero de Pin 1 2 3

Nombre Vss Vdd Vee

Estado Lgico 0 1

Descripcin 0V +5V 0 - Vdd D0 D7 son interpretados Como comandos D0 D7 son interpretados como datos

RS

33

R/W

0 1

escribe datos (del controladorr al LCD) Lee datos (del LCD al controlador) Acceso a LCD deshabilitar operacin Normal Datos/comandos son transferidos al LCD Bit 0 LSB Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 MSB Iluminacin del display

0 1 De 1 a 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0 1

7 8 9 Datas / comandos 10 11 12 13 14 Led 15 16

D0 D1 D2 D3 D4 D5 D6 D7 Led Led +

Tabla 3.1 Seales display Hitachi LCD

34

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 Mdulo de entrada de datos

La interconexin 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 nmero 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.

35

3.5 MODULO DE POTENCIA


El mdulo de potencia formado por un opto acoplador con salida a triac, el cual nos permite controlar la energa que se suministra al elemento calefactor contenido dentro del horno como y como elemento de aislamiento de la lnea de 127 VCA como se muestra en la Figura 3.5

.
Figura 3.5 Mdulo 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 ALIMENTACIN

36

La fuente de alimentacin 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 operacin, se requiere una fuente externa de 9v cc no regulada o alimentacin de bateras.

Figura 3.6 Fuente de alimentacin

37

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 Versin 8.1 de la Compaa Mikroelectronika MPLAB IDE de la Compaa Microchip Technology Inc. Programador de PIC MPLAB ICD 2 de la Compaa Microchip Technology Tarjeta de desarrollo PICDEM 2 de la Compaa Microchip Technology

Figura 3.7 Programador ICD 2 y Tarjeta Picdem 2

38

3.8 MDULOS DE SOFTWARE


Hay bsicamente dos mdulos donde se realizan las funciones principales del sistema. El Mdulo de interrupciones se ejecuta cada 20 ms, y es el que lleva el conteo del tiempo, as como la lectura de temperatura a travs de las entradas analgicas 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 accin basada en el estado actual y sus entradas. Moore cambia su accin solamente basada en su estado actual.

39

La parte mas importante del mtodo de mquinas de estados finitos es dibujar los diagramas de estado que nos permite concentrarnos en el problema, ms que en las variables o en el cdigo a desarrollar. En una mquina de estados hay una variable de control llamada variable de estado, que representa el estado actual de la mquina. Cada valor de la variable de estado direcciona a la mquina de estados a un estado diferente y permanece en ese estado hasta que la variable de estado cambie. La ventaja de utilizar mquinas de estados es que fcilmente se pasa de la grfica de estados al cdigo en cualquier lenguaje de programacin. En lenguaje C con la siguiente estructura de programa se representan los estados de la mquina de estados representada en la Figura 3.5 enum maquina_de_estado { espera, paso1,paso2,paso3,paso4,paso5 } enum maquina_de_estado estado La condicin describe cuando el estado de la maquina de estados debe ir de la condicin actual al siguiente. La accin describe que pasa cuando la condicin se cumple, que acciones se deben tomar en el estado actual.

40

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 perifricos, 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.

41

Figura 3.9 diagrama de flujo del programa principal

42

CAPTULO 4 CONCLUCIONES

43

Con ste desarrollo se cumple con las premisas de tener un producto de buenas caractersticas , precio econmico que pueda ser adquirido por artesanos de bajos recursos de nuestro pas. Para disear 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 cuestin , as como conocer la filosofa de programacin en tiempo real para poder usar las facilidades al mximo tanto de las herramientas como las del microcontrolador. La programacin 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 pas.

Los microcontroladores actuales tienen la suficiente versatilidad, poder y bajo costo como para implementar una gran variedad de aplicaciones industriales con un mnimo de componentes externas, lo que redunda en bajo costo, confiabilidad y bajo consumo de energa. Si el diseo de la tarjeta del microcontrolador se hace pensando en utilizarla para diferentes proyectos, el costo se incrementa de manera insignificante pero permitira la reutilizacin del hardware y gran parte del software minimizando contos en proyectos futuros y reduciendo drsticamente el tiempo de tener en el mercado un producto nuevo.

44

Apndice A: ESPECIFICACIONES
Temperatura
Escala de temperatura Celsius C Rango de medicin 0C a +1200C Resolucin 1C Exactitud +/- 2 C a 1000C

45

Apndice C:

GLOSARIO

ADC.- Convertidor Analgico a Digital. Arquitectura Harvard.- Es una arquitectura almacenamiento separado para datos y programa. de computadoras que utilizan

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 precisin de temperatura de salida analgica LSB.- Bit menos significativo (Least-Significant Bit). MCLK.- Reloj maestro. MIPS.- Es el acrnimo 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. Pirmetro: La radiacin se enfoca hacia un filamento y un sensor ptico. El filamento es calentado por una corriente elctrica 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 termoelctrico. UART.- "Universal Asynchronous Receiver-Transmitter" ("Transmisor-Receptor Asncrono Universal"). Este controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo.

46

APENDICE D PROGRAMAS
/* * Nombre del Proyecto: Control de Horno electrico * * Descripcin: Controlador de Temperatura de un Horno electrico * Configuracion de prueba: MCU: PIC16F887 Oscillador: Interno , 8.0000 MHz SW: * NOTAS: */ mikroC 8.1 para PIC

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 analgicas ANSELH = 0; TRISB = 0; //PORTB = 0xFF; // Initialize PORTB TRISE = 0; // PORTE como salida PORTE = 0xFF; // Inicialisa PORTB TRISA = 0xFF;//puerto a como entradas

47

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); }

48

APENDICE E Diagrama elctrico

49

BIBLIOGRAFA
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 INFORMTICAS
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf Tema: MPLAB IDE Users 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 Users Manual , MikroElectronika 2008. Consulta: Febrero de 2009

50

Potrebbero piacerti anche