Top Banner
DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE COMPENSACIÓN DE JUNTURA FRÍA PARA TERMOCUPLAS, MEDIANTE LA TÉCNICA DE INSERCIÓN DE METAL Y AJUSTE POR SOFTWARE. JORGE IVAN GONZÁLEZ LONDOÑO OBEYMAR SANTANA CALDAS Trabajo de Grado para optar por el título de Ingeniero Electrónico Asesor: Juan Pablo Urrea Duque. MIng. UNIVERSIDAD DE ANTIOQUIA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA MEDELLÍN 2010
75

Trabajo de Grado Final

Jul 03, 2015

Download

Documents

Obeymar Santana
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Trabajo de Grado Final

DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE COMPENSACIÓN DE

JUNTURA FRÍA PARA TERMOCUPLAS, MEDIANTE LA TÉCNICA DE

INSERCIÓN DE METAL Y AJUSTE POR SOFTWARE.

JORGE IVAN GONZÁLEZ LONDOÑO

OBEYMAR SANTANA CALDAS

Trabajo de Grado para optar por el título de

Ingeniero Electrónico

Asesor: Juan Pablo Urrea Duque. MIng.

UNIVERSIDAD DE ANTIOQUIA

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA

MEDELLÍN

2010

Page 2: Trabajo de Grado Final

2

DEDICATORIA

A mis padres Gabriela y Orlando, a mi esposa Yuli y mi hija Manuela que son lo

mejor que me ha pasado en la vida.

Jorge González

A mis Padres Angel y Mery, a mi Esposa Johanna Meza y mi Hijo Daniel, no

tienen reemplazo.

Obeymar Santana

Page 3: Trabajo de Grado Final

3

AGRADECIMIENTOS

Especial agradecimiento al profesor Orlando Carrillo quien desempeñó un papel

muy importante en la asesoría y desarrollo de este trabajo. También a mi madre

por su gran esfuerzo y dedicación que fue pieza importante en el alcance de este

logro y por último a mi esposa y mi hija por los sacrificios realizados para lograr

este objetivo.

Jorge González

Al final de este logro tan representativo para nosotros como estudiantes, debemos

gratitud por todo lo vivido y experimentado a lo largo de este proceso;

primeramente a Dios que nos permitió culminar de forma exitosa este escalón en

la larga ruta y de forma muy especial a los profesores Orlando Carrillo y Juan

Pablo Urrea, quienes me ayudaron durante toda la carrera y en este proyecto, a mi

esposa Johanna Meza quien tuvo paciencia durante este tiempo, también a mis

hermanos y mis padres que me apoyaron moral y económicamente, a pesar de las

dificultades, a Freddy Castañeda de quien aprendí a moverme en el medio

industrial, y a mis compañeros de carrera sin los cuales no habría podido llegar al

final de esta meta.

Obeymar Santana

Page 4: Trabajo de Grado Final

4

CONTENIDO

CONTENIDO ........................................................................................................................................ 4

INDICE DE TABLAS Y FIGURAS ............................................................................................................ 6

GLOSARIO ........................................................................................................................................... 7

RESUMEN ............................................................................................................................................ 8

INTRODUCCIÓN .................................................................................................................................. 9

PLANTEAMIENTO DEL PROBLEMA ................................................................................................... 10

OBJETIVOS......................................................................................................................................... 11

OBJETIVO GENERAL ...................................................................................................................... 11

OBJETIVOS ESPECIFICOS ............................................................................................................... 11

MARCO TEÓRICO ........................................................................................................................ 12

TEMPERATURA ......................................................................................................................... 12

TÉCNICAS Y ELEMENTOS DE MEDICIÓN DE TEMPERATURA ................................ 12

TERMOCUPLA ........................................................................................................................... 14

PRINCIPIOS FÍSICOS DE LAS TERMOCUPLAS ............................................................ 15

EFECTO SEEBECK ............................................................................................................... 15

LEY DE LOS CIRCUITOS HOMOGÉNEOS ...................................................................... 17

LEY DE METALES INTERMEDIOS .................................................................................... 18

TECNOLOGÍA Y TIPOS DE TERMOCUPLAS .................................................................. 18

NORMAS “DIN” ....................................................................................................................... 19

CARACTERÍSTICA DE TRANSFERENCIA DE TERMOCUPLAS ................................ 20

ENCAPSULADOS PARA TERMOCUPLAS COMERCIALES ........................................ 21

ACONDICIONAMIENTO PARA TERMOCUPLAS ............................................................ 23

COMPENSACIÓN DE JUNTURA FRÍA ................................................................................. 25

COMPENSACIÓN POR HARDWARE ................................................................................ 25

COMPENSACIÓN POR SOFTWARE ................................................................................. 25

CONVERSIÓN ANÁLOGA DIGITAL ....................................................................................... 29

Page 5: Trabajo de Grado Final

5

JAVA ............................................................................................................................................. 32

MySQL ......................................................................................................................................... 32

MICROCONTROLADORES. .................................................................................................... 33

ARQUITECTURA INTERNA DE UN MICROPROCESADOR ........................................ 33

INTERFACES DE ENTRADA Y SALIDA DE LOS MICROPROCESADORES ............ 34

MICROCONTROLADORES PIC ......................................................................................... 35

TERMISTOR LM 35 ................................................................................................................... 35

CARACTERÍSTICAS DE TRANSFERENCIA: (LM 35) .................................................... 36

METODOLOGÍA ............................................................................................................................. 37

SISTEMA DE ADQUISICIÓN DE DATOS .............................................................................. 37

DISEÑO E IMPLEMENTACIÓN DEL PROTOTIPO ............................................................. 39

SOFTWARE ................................................................................................................................ 41

Main: ......................................................................................................................................... 43

NewJFrame: ............................................................................................................................ 43

dataBase: ................................................................................................................................. 44

SerialIO: ................................................................................................................................... 44

RESULTADOS ............................................................................................................................... 49

CONCLUSIONES ........................................................................................................................... 51

WEBGRAFÍA .................................................................................................................................. 53

ANEXOS ............................................................................................. ¡Error! Marcador no definido.

Page 6: Trabajo de Grado Final

6

INDICE DE TABLAS Y FIGURAS

Figura 1. Termocupla, 14

Figura 10 Unión Termocupla con Circuito Impreso, 24

Figura 12 Diagrama de voltajes reales de termocuplas, 26

Figura 13. Conversor analógico digital de seguimiento., 31

Figura 14 Diagrama de Bloques de un procesador digital síncrono, 34

Figura 15 Esquema General Trabajo realizado, 37

Figura 16 Conexión y Amplificación Termocupla, 38

Figura 17 Esquemático montado, 39

Figura 18, Impreso Tarjeta de Adquisición de Datos, 40

Figura 19; Foto Tarjeta Adquisición de Datos, 41

Figura 2 Efecto Seebeck, 15

Figura 20. Diagrama de flujo del programa., 46

Figura 21. Aplicación en ejecución, 48

Figura 22; Resultados temperatura contra Tiempo, 50

Figura 3 Efecto Seebeck, Conducción de los metales, 16

Figura 4 Ley Metales Intermedios, 18

Figura 5 Curva Característica de termocuplas, 21

Figura 6 Dimensione Encapsulado Termocuplas, 21

Figura 7 Encapsulado Aislado, 22

Figura 8 Encapsulado a Masa o Tierra, 22

Figura 9 Encapsulado Expuesto, 23

Figura11 Diagrama eléctrico Unión Termocupla con Circuito Impreso, 24

Tabla 1: Algunos sensores de temperatura y sus características., 13

Tabla 2, Normas DIN para termocuplas, 19

Tabla 3 Característica de Transferencia termocupla Tipo J, 20

Tabla 5; Resultados temperatur, 50

Page 7: Trabajo de Grado Final

7

GLOSARIO

Temperatura Ambiente: medida de la energía cinética de las moléculas

circundantes en determinado espacio físico, en determinado instante.

Compensación: Acción de adicionar o sustraer una cantidad suficiente para

nivelar un sistema.

Sensor: Elemento que traduce o transforma un tipo o forma de energía en otra.

f.e.m: Fuerza electromotriz, también se le conoce como tensión eléctrica y se

mide en voltios.

Hardware: Conjunto de elementos físicos que constituyen determinado sistema,

para este caso, elementos electrónicos.

Software: Conjunto de listas de instrucciones que forman un programa

informático.

Acondicionamiento de una Señal: Conjunto de elementos físicos o informáticos

que permiten a una señal de información, ser leída correctamente.

Característica de Transferencia: Capacidad que tienen los elementos

electrónicos de producir una salida de acuerdo a una entrada en particular.

Page 8: Trabajo de Grado Final

8

RESUMEN

Al realizar mediciones de temperatura en procesos industriales se usan

diversos métodos y elementos, entre estos elementos de medida están los

sensores tipo termopares o termocuplas, los cuales a su vez conllevan a

un proceso de manipulación de los datos obtenidos, mediante equipos

electrónicos, para así visualizarlos en algún tipo de display o proceder a

controlar el proceso industrial.

Desde sus comienzos las termocuplas han traído consigo un problema, y

consiste en que la fuerza electromotriz generada se referencia desde cero grado

centígrado, pero los elementos de medida “nunca” están a esa temperatura, por

el contrario están a temperatura “ambiente”, la cual es cambiante, quedando así

errónea la medida realizada. De ahí se desprende la compensación de punta fría

la cual consiste en adicionarle a la medida de la temperatura con respecto a cero

grado, la medida de la temperatura ambiente.

Hay diversas formas de realizar esta compensación y una de ellas es la técnica

de metal intermedio la cual consiste en poner entre uno de los extremos de la

termocupla y el elemento trasmisor un fragmento de metal del mismo que tiene

la termocupla en el otro extremo para evitar cambios en la fuerza

electromotriz generada por ésta. Luego de esto se llevan los datos

muestreados a través de un conversor análogo-digital, hasta un computador,

donde se le aplican métodos numéricos, para realizar la compensación que se

denomina; “compensación por software”

En el presente trabajo se utilizó la compensación por software, por medio de la

cual se obtienen menos errores en la medición y un mejor resultado que el

tradicional, adicionalmente una reducción del hardware utilizado en este proceso.

Page 9: Trabajo de Grado Final

9

INTRODUCCIÓN

Muchos procesos industriales dependen parcial o completamente de la variable

temperatura, por lo que se hace indispensable conocer su estado, ya sea para

estar al tanto de la medida actual o para controlar el calentamiento directo de

elementos del proceso.

Se conocen diversos métodos para medir, visualizar y posteriormente controlar la

variable física temperatura, entre los elementos de medida o sensores más

conocidos están las termocuplas o termopares, que son un par de diferentes

metales unidos entre sí y conectados a un sistema electrónico que detecta el

cambio de voltaje en sus extremos, debido al cambio de temperatura en la unión.

En el funcionamiento de los termopares hay un inconveniente que se debe tener

en cuenta a la hora de emplearlos, y es que la medida de temperatura que estos

sensores indican está referenciada con respecto a cero grado centígrado, es decir,

que el elemento sensor está a temperatura del proceso, y el otro extremo está a

cero grado centígrado, lo cual nos es cierto para sistemas abiertos. Dando así

lugar a lo que se llama “compensación de punta fría”, que consiste en adicionar a

la medida arrojada por el termopar, la media de la temperatura ambiente.

Hay varios métodos para efectuar la compensación de punta fría, entre ellos el

que emplea la ley de metal intermedio y ajuste por software, lo cual consiste en

insertar una porción de uno de los metales que conforman el termopar, en el

extremo contrario para alterar la medida, y luego se lleva ésta medida a un

sistema de adquisición de datos donde se le hace la corrección definitiva.

Finalmente los datos que arroja el sistema de adquisición de datos están listos

para ser visualizados o para pasar a controlar el proceso.

Page 10: Trabajo de Grado Final

10

PLANTEAMIENTO DEL PROBLEMA

Siempre que se desea implementar la medición y el posterior control de

temperatura, es necesario utilizar las herramientas adecuadas para obtener

excelentes resultados, y cuando no se hace, se corre con el riesgo de tener

procesos con resultados nefastos y por lo tanto pérdidas no deseadas de dinero.

Los termopares son unos de los elementos más utilizados para la medición de

temperatura en ambientes industriales, ya que tienen mayor rango, robustez,

linealidad y una buena característica de transferencia. Pero su acople con los

elementos que procesan la medición es costoso y complicado debido a la cantidad

de hardware requerido.

Como en la medida de un sensor de temperatura (termopar) se supone que el

extremo del elemento sensor está a 0°C y en la realidad éste se encuentra a

temperatura ambiente, ésta es cambiante de acuerdo a la hora del día y las

condiciones del clima, los elementos de corrección lo que hacen es una segunda

medida; por lo que terminamos haciendo realmente dos mediciones de la variable

física. De lo cual se deriva el inconveniente de más elementos para poder

procesar esta información, compararla y realizar los respectivos ajustes y así

obtener el valor deseado, ya sea para visualizarlo o para controlar el proceso.

Como se puede notar, una toma de una temperatura que se supone sencillo se

convierte en un proceso largo y tedioso, que incluye varios (mínimo dos),

sensores, y con ellos gran cantidad de elementos acondicionadores de la señal,

elevando así los costos del proceso.

Se pretende a final del proyecto, usando termocuplas, mediante la técnica de

metal intermedio, y ajuste por software, obtener resultados que permitan una

correcta visualización y manipulación de la variable temperatura.

Page 11: Trabajo de Grado Final

11

OBJETIVOS

OBJETIVO GENERAL

Diseñar e implementar un sistema que realice la medición de la variable

temperatura, donde se emplee como elemento sensor, una o varias termocuplas,

compensación de punta fría de éstas, mediante la técnica de inserción de metal

intermedio, usando software para realizar el ajuste y así reducir el hardware.

OBJETIVOS ESPECIFICOS

Identificar de acuerdo con las necesidades planteadas en el proyecto, qué tipo de

elementos serían los más adecuados para tener en cuenta en el proceso de

diseño de la solución.

Diseñar un sistema de adquisición de datos simple, donde intervenga un sensor,

un sistema inteligente como un microcontrolador y un conversor análogo-digital, en

el que los datos puedan ser leídos por un computador.

Diseñar e implementar un software que tome los datos enviados por el hardware y

haga las correcciones necesarias para luego imprimirlos en pantalla y enviarlos a

una base de datos.

Page 12: Trabajo de Grado Final

12

MARCO TEÓRICO

TEMPERATURA

Desde el punto de vista del principio cero de la termodinámica se puede

desarrollar el concepto de temperatura, el cual la define como una propiedad

inherente a un sistema físico o región espacial. Quedando la definición de

Temperatura como: Fenómeno o propiedad que poseen los sistemas físicos, que

se percibe a nivel macroscópico, pero que tiene sus orígenes a nivel microscópico,

ya que ésta es la mediad de la energía cinética promedio de cada partícula que

interviene en el sistema.1

TÉCNICAS Y ELEMENTOS DE MEDICIÓN DE TEMPERATURA

La medida de la temperatura es una de las mediciones más comunes y más

importantes que se efectúan en los procesos industriales. Los sistemas de medida

tienen sus limitaciones en cada tipo de aplicación debido a la precisión, la

velocidad de captación de la temperatura, por la distancia entre el elemento de

medida y el aparato receptor, y por el tipo de instrumento indicador, registrador o

controlador necesarios.

Los instrumentos de temperatura utilizan diversos fenómenos que son influidos por

la temperatura y entre los cuales figuran:

a. Variación en volumen o en estado de los cuerpos (sólidos, líquidos y

gases);

b. Variación de resistencia de un conductor (sondas de resistencia);

c. Variación de resistencia de un semiconductor (termistores);

d. f.e.m. creada en la unión de dos metales distintos (termopares);

e. Intensidad de radiación total emitida por el cuerpo (pirómetros de radiación).

1 Tomás Gómez-Acebo(2001), Termodinámica Básica, Capítulo 1 , Universidad de Navarra,

TECNUN Ediciones.

Page 13: Trabajo de Grado Final

13

De este modo se emplean los instrumentos siguientes:

Termómetros de vidrio, termómetros bimetálicos, elementos primarios de bulbo y

capilar rellenos de líquido, gas o vapor, termopares, pirómetros de radiación,

termómetros de resistencia, termómetros ultrasónicos, termómetros de cristal de

cuarzo.2

En la tabla siguiente se muestran algunos tipos de termómetros y sensores de

temperatura usuales junto a algunas de sus características más notables.

Tabla 1: Algunos sensores de temperatura y sus características.

Como se puede notar para medir la temperatura se usan varios tipos de

elementos, en el caso de este proyecto se profundizará en el estudio de los

termopares o termocuplas.

2 Antonio Creus Solé (1998), Instrumentación industrial, Capitulo 6, Sexta edición, México D.F.,

Alfaomega

Page 14: Trabajo de Grado Final

14

TERMOCUPLA

Tipo de elemento que permite la medición o sensado de la temperatura. Este tipo

de sensor consiste en dos hilos de diferentes metales unidos en uno de sus

extremos, el cual está a la temperatura del proceso, y las puntas del otro extremo

están a temperatura ambiente (Figura 1), ésta diferencia de temperatura hace que

se genere una tensión eléctrica en sus extremos, que dependerá de la naturaleza

de los metales, de las temperaturas del proceso y ambiente.

Figura 1. Termocupla

En el ámbito industrial son muy usadas debido a cualidades como:

Exactitud intrínseca elevada.

Amplio rango de temperatura de trabajo.

Rápida respuesta en el tiempo

Robustez mecánica.

Confiabilidad.

Al estudiar el comportamiento de las termocuplas se han logrado establecer una

serie de leyes importantes en el funcionamiento de las termocuplas.

Page 15: Trabajo de Grado Final

15

PRINCIPIOS FÍSICOS DE LAS TERMOCUPLAS

Este tipo de transductor genera una tensión eléctrica, proporcional a la diferencia

de temperatura entre sus extremos, debido a la aparición de una fuerza

electromotriz (f.e.m), producto de la aparición del efecto SEEBECK

EFECTO SEEBECK

Si dos conductores de naturaleza diferente se ponen en contacto eléctrico por uno

de sus extremos, siempre que exista una diferencia de temperatura entre el punto

de contacto, el cual se halla a una temperatura “Tp” y los extremos libres “Tm”,

aparecerá entre los dos hilos una tensión “VT”, cuya polaridad y magnitud

dependerá de la naturaleza de los conductores y de la diferencia de temperatura

(Tp – Tm). Esto con los conductores separados entre sí.

Por el contrario, si se juntan los extremos libres tendremos una corriente continua

“IT” circulando, la cual es de origen termo eléctrico.

Figura 2 Efecto Seebeck

Se sabe que los electrones en un conductor (DE LOS NIVELES DE

CONDUCCIÓN), al calentarse uno de los extremos, los electrones de los últimos

niveles de conducción tienden a difundirse hacia el extremo frió, por consiguiente

Page 16: Trabajo de Grado Final

16

este tenderá a cargarse negativamente con respecto al extremo caliente, dicha

fuerza electromotriz está dada por:

2

1

T

TmT

dTQV

En donde:

VT: Fuerza electromotriz (Voltios)

T1,T2: Temperatura en los extremos (°K)

Qm: Constante de transporte térmico, independiente de la temperatura.

Figura 3 Efecto Seebeck, Conducción de los metales

Por tanto tendremos una relación lineal:

Page 17: Trabajo de Grado Final

17

)(12

TTVT

α = Coeficiente de SEEBECK (Factor constante Volts/°K)

αVARIA TIP: 10 – 60 uV/°C.

El efecto Seebeck es pues una forma de conversión directa de energía “Térmica”

a energía “Eléctrica”. Es de notar que si se tiene generación de energía eléctrica,

deberá haber del otro lado consumo de energía térmica.3

LEY DE LOS CIRCUITOS HOMOGÉNEOS

La cual dice que si los conductores de las termocuplas son homogéneos, no son

afectados por las temperaturas intermedias. Si la juntura de dos elementos

distintos se mantiene a Tp, mientras que la otra es Tm, la f.e.m. térmica que se

desarrolla es independiente y permanece inalterada por cualquier distribución de

temperatura a lo largo de los alambres Ta y Tb.

Es decir, la longitud de los conductores no interfiere en la medida de la

temperatura final, de esta ley depende que los cables extensores en los

termopares sean de los mismos materiales que lo constituyen, lo cual hace que

resulte un poco tedioso instalarlos, y se opte por instalar trasmisores de corriente

para llevar las señales a los tableros de control, en lugar de la señal original de

temperatura.

3 Carrillo Orlando (2010), Notas sobre termocuplas para el curso de Acondicionamiento de

Señales, Universidad de Antioquia.

Page 18: Trabajo de Grado Final

18

LEY DE METALES INTERMEDIOS

Esta ley estipula que se puede introducir un tercer metal en el circuito sin crear

errores, si las junturas del tercer metal con los conductores de la termocupla se

encuentran a la misma temperatura.

Cuando se usan termocuplas, es normalmente necesario introducir metales

adicionales en el circuito. Esto sucede cuando se emplea un instrumento para

medir la salida de la termocupla, y los terminales de entrada son de un metal

diferente (normalmente bronce o cobre) y cuando la juntura está soldada,

parecería que la introducción de un tercer metal cambiaría la salida de la

termocupla e introduciría una señal de error. Sin embargo, en tanto que la juntura

del tercer metal con los otros dos metales esté a la misma temperatura, no se

generará ninguna señal de error.

Figura 4 Ley Metales Intermedios

TECNOLOGÍA Y TIPOS DE TERMOCUPLAS

Mediante la escala termométrica es posible comparar las propiedades

termométricas de los diferentes metales; en ésta se indica la magnitud de la termo

tensión que desarrollan algunos de ellos.

Page 19: Trabajo de Grado Final

19

Cuando se forma un termopar (dos metales) se puede medir la tensión generada

entre los dos metales, resultando valores en milivoltios, los cuales son difíciles de

manipular, dando lugar a tratamientos electrónicos para su correcta manipulación.

Y a realizar estas funciones hace forzoso el contacto con el cobre “Cu” de un

circuito impreso; ésta situación requerirá de un tratamiento especial con la

finalidad de anular dicho efecto parásito el cual se constituye en un factor de error

en la medida.

De acuerdo a los metales empleados en la construcción de cada tipo de

termocupla, existe gran variedad en estos sensores, sin embargo, hay unos tipos

normalizados y de uso comercial.

Los distintos tipos de termocuplas actualmente estandarizados son construidos

con materiales específicos de acuerdo con la aplicación y sensibilidad requerida:

NORMAS “DIN”

TIPO MATERIALES RANGO - TEMPERATURA

J Fe – Constantano -190°C +170°C

T Cu – Constantano -200°C +371°C

K CR -- AL -190°C +1260°C

E CR -- Constantano -100°C +1260°C

S Pt – 10%Rodium – Pt 0°C +1482°C

Tabla 2, Normas DIN para termocuplas

Siendo el Constantano una aleación de 60% de cobre (Cu) y 40% de níquel (Ni)4

4 http://es.wikipedia.org/wiki/Termopar

Page 20: Trabajo de Grado Final

20

CARACTERÍSTICA DE TRANSFERENCIA DE TERMOCUPLAS

Se le denota de esta forma a la capacidad de inherente de cada tipo de

termocupla para generar tensiones de acuerdo a la temperatura a la que está

expuesta, es decir, en que rango de temperaturas puede trabajar y cuál es la

magnitud en voltios de la tensión generada en sus extremos fríos.

Para una termocupla tipo J, se tendrá.

¢ - tipo “J”

TEMPERATURA VTH mV CARCATERÍSTICA DE

TRANSFERENCIA

0.000 0.000 ∆T = 1°C 50uV/°C

1.000 0.050 ∆V = 50uV

100.0 5.268 ∆T = 1°C 54Uv/°C

101.0 5.322 ∆V = 54uV

500.0 27.388 ∆T = 1°C 56uv/°C

501.0 27.444 ∆V = 56uV

750.0 42.283 ∆T = 1°C 64uv/°C

751.0 42.347 ∆V = 64uV

Tabla 3 Característica de Transferencia termocupla Tipo J

Como se ve entre 0°C y 751°C máxima temperatura de operación de una ¢ - J

hay una desviación de 14uV.

Sin embargo se puede tomar como característica de transferencia el valor

promedio 56uV/°C/¢ - J.

Page 21: Trabajo de Grado Final

21

En la siguiente gráfica se puede ver la relación tensión contra temperatura para

los diferentes tipos de termocuplas.

Figura 5 Curva Característica de termocuplas

ENCAPSULADOS PARA TERMOCUPLAS COMERCIALES

Para aplicaciones dentro de los rangos normales de operación característica,

existe una amplia gama de termo elementos normalizados, esto dependiendo del

tipo de proceso a controlar y el tiempo de respuesta.

Figura 6 Dimensiones Encapsulado Termocuplas

Page 22: Trabajo de Grado Final

22

El largo (A) del termo elemento esta normalizado a 30cm y el diámetro del tubo de

protección (B) varía entre 0.25mm – 1cm.

Comercialmente se tienen tres tipos de junturas:

1. AISLADA

2. A MASA O TIERRA.

3. EXPUESTA

AISLADA

Figura 7 Encapsulado Aislado

Estas son empleadas en mediciones de flujo de gases y líquidos corrosivos o

aceites críticamente eléctricos. Tiempo de respuesta 2.5 – 5.0 seg.

A MASA

Figura 8 Encapsulado a Masa o Tierra

Son empleadas en ambientes corrosivos y de altas presiones, pero el medio

deberá ser bajo eléctrico, en los que se requiera respuestas rápidas en el tiempo.

ts = 2 segundos

Page 23: Trabajo de Grado Final

23

EXPUESTA

Figura 9 Encapsulado Expuesto

Es la que ofrece el mejor tiempo de respuesta: tS = 0.2 – 0.3 segundos pero su

uso queda restringido a ambientes no corrosivos.

ACONDICIONAMIENTO PARA TERMOCUPLAS

De acuerdo con la escala termométrica debemos tener tfef < Tmed.

Según las normas DIN como temperaturas de referencia son internacionalmente

aceptadas:

0°C 20°C 50°C

Sin embargo y gracias a los desarrollos de integración desarrollados se empleó de

manera generalizada la simulación de 0°C.

En montajes reales la cabeza de conexión estará relativamente cerca del punto de

medición del proceso, lo cual por simple conducción térmica hará que esta (la

cabeza de conexión) esté a una temperatura próxima a la de medición, como

consecuencia sus bornes no podrán servir como juntura de referencia; por lo cual

de este punto no podrían hacerse conexiones con líneas de cobre, para llevar la

termo tensión a la electrónica de amplificación requerida, ya que se tendría nuevos

Page 24: Trabajo de Grado Final

24

pares de termocuplas adicionales, lo que se constituye en nuevas fuentes de error,

haciéndose necesario usar líneas de extensión un poco más lejanas al punto de

medición, y posteriormente la conexión a las tarjetas de circuitos impresos, donde

se generarán tensiones debidas a las uniones con el metal del impreso, pero

estando estas últimas a la temperatura de referencia

Figura 10 Unión Termocupla con Circuito Impreso

Y su equivalente eléctrico:

Figura11 Diagrama eléctrico Unión Termocupla con Circuito Impreso

Aplicando leyes de circuitos eléctricos:

Donde se puede notar que para efectuar la compensación se adiciona una fuente

de voltaje que anule el efecto de V1- V2, si la temperatura ambiente es constante

muy fácilmente se corrige el problema, pero como ésta es variable es necesario

emplear electrónica que siga el cambio de dicha temperatura y vaya realizando la

compensación. Dicho procedimiento se denomina “simulación de cero grado

centígrado” o “compensación de juntura fría”.

Page 25: Trabajo de Grado Final

25

COMPENSACIÓN DE JUNTURA FRÍA

Industrialmente dos tipos de técnicas de compensación de puta fría son utilizados:

compensación por hardware y compensación por software.

COMPENSACIÓN POR HARDWARE

Esta técnica de compensación se logra introduciendo una fuente de voltaje

variable dentro del circuito para cancelar los voltajes termo-eléctricos parásitos.

Esta fuente genera un voltaje de compensación proporcional a la temperatura

ambiente, el cual será el voltaje de corrección para cancelar las señales termo-

eléctricas inducidas.

La gran desventaja de este método de compensación es que cada termocupla

debe tener un circuito de compensación dedicado lo cual genera un incremento en

los costos.

COMPENSACIÓN POR SOFTWARE Luego de efectuar una medida directa de la temperatura de la juntura de

referencia, mediante software es posible adicionar un valor de voltaje apropiado

con el fin de eliminar los efectos parásitos presentes en la juntura de referencia.

Cualquiera que sea el método o estrategia elegida es necesario implementar la

técnica de adición de metal intermedio, que se vale de la ley de metal intermedio

de termocuplas para realizar parte del trabajo de la compensación, esta consiste

en adicionar al Terminal positivo del termopar, un trozo del terminal negativo a así

anular parte del efecto del termopar formado por la unión termopar-impreso; como

lo muestra el esquema.

Page 26: Trabajo de Grado Final

26

Figura 12 Diagrama de voltajes reales de termocuplas

En el circuito: 4321

VVVVVJJJM

puesto que las junturas J1 y J4 están hechas

con los mismos metales y se encuentran a la misma temperatura:

14 JJVV

23 JJMVVV

)()(23 refJPJM

TVTVV

También tenemos que las junturas J3 y J2 están hechas con los mismos metales

por tanto podemos decir que:

)()(32

TrefVTVJrefJ

Si PCtteJ

VV3

==> )()( TrefVTpVVTCTCn

Page 27: Trabajo de Grado Final

27

Bajo estas condiciones si se conocen Tref y VM y conociendo la función de

transferencia (V/T) de la termocupla empelada es posible conocer la temperatura

en el punto de medición.

cmTT

Actualmente están desarrollados y ampliamente difundidos métodos para

determinar el temperatura Tc (punto caliente) en una termocupla, esto a partir del

voltaje medido en el extremo frío VM y la temperatura en el mismo Tref.

Después de realizar una medida directa de la temperatura de la juntura de

referencia, mediante software es posible adicionar un valor de voltaje apropiado

con el fin de eliminar los efectos parásitos.

Para hacer la compensación por software, debemos utilizar los polinomios de

conversión temperatura – voltaje y voltaje – temperatura.

Los polinomios son:

V = C0 + C1T + C2T2 + … + CNT

N

Polinomio de conversión temperatura a voltaje; acá se toma el valor medido desde

el proceso y se multiplica por los coeficientes dados por la NIST.

T = a0 + a1V + a2V2 + … + aNV

N

Este polinomio toma el valor anteriormente convertido a voltaje, y lo devuelve a

temperatura.

Esta técnica la podemos dividir en dos métodos:

Page 28: Trabajo de Grado Final

28

COMPENSACIÓN POR SOFTWARE MÉTODO I:

Este primer método hace uso de los pasos de conversión Voltaje – Temperatura y

requiere de los siguientes pasos:

1. Medir Tref

2. Para la termocupla elegida convertir esta temperatura en un voltaje

equivalente VTe(Tref)

3. Adicionar este voltaje resultado a VM, con el cual se obtiene el verdadero

voltaje de circuito abierto a una temperatura de referencia 0°C

4. Convertir este voltaje resultado en su temperatura resultado TC

COMPENSACIÓN POR SOFTWARE MÉTODO II:

Este método más simplificado hace uso del hecho de que los voltajes de salida de

las “termocuplas” son aproximadamente lineales sobre pequeñas desviaciones en

temperatura. Bajo estas condiciones para pequeñas desviaciones de temperatura

es posible hacer uso de la expresión:

VTc(T1) – VTc(T2) = VTc(T1 – T2)

Esta suposición es válida si T1 es próxima a T2. Así también si la temperatura de la

termocupla Tc es próxima a Tref podremos:

VM = VTc(Tc) – VTc(Tref) = VTc(Tc + Tref) (A)

se usan las tablas NIST5 de referencia para termocuplas, el voltaje VTc es una

función de la temperatura referenciada a 0°C. Si se asume linealidad y haciendo

uso de la ecuación anterior (A), se podrá asumir que las curvas Voltaje vs

5 http://srdata.nist.gov/its90/download/allcoeff.tab

Page 29: Trabajo de Grado Final

29

Temperatura, con referencia a 0°C, son idénticas a las curvas referenciadas a

“Tref”.

Así ésta temperatura será la diferencia entre las temperaturas TTc-Tref.

Los pasos a seguir con éste método simplificado son los siguientes:

1. Medir la temperatura en la juntura de referencia “Tref”.

2. Convertir el voltaje medido “Vm” en temperatura usando las relaciones

Voltaje-Temp de la termocupla en cuestión

NOTA: Esta temperatura es aproximadamente la diferencia (Tc - Tref) o sea:

∑ [ ( Tc − Tref ) + Tref ) ]

3. Adicionar la temperatura Tref a éste valor, este resultado será la temperatura

Tc de la termocupla

Este método ahorra un paso de computación con respecto al primer método

descrito pero es más exacto.

CONVERSIÓN ANÁLOGA DIGITAL

La conversión analógica-digital (A/D) consiste en la trascripción de señales

analógicas en señales digitales, con el propósito de facilitar su procesamiento

(codificación, compresión, etc.) y hacer la señal resultante (la digital) más inmune

al ruido y otras interferencias a las que son más sensibles las señales analógicas.

Page 30: Trabajo de Grado Final

30

Existe un variado número de conversores analógico-digitales con diferentes

características tales como la de velocidad de conversión, el número de bits de la

señal digital, entre otras. Y son estas características las que harán la diferencia a

la hora de elegir uno u otro tipo.

El conversor analógico digital más sencillo consiste en una serie de circuitos

comparadores ajustados cada uno de ellos a niveles de tensión de referencia

sucesivamente cada vez más elevado, obtenidos mediante un divisor resistivo de

una misma fuente de alta estabilidad. Al aplicar una tensión a la entrada del

conversor, conmutan todos los comparadores cuya tensión de referencia sea

menor a la de la entrada. Un circuito lógico codifica la salida de los comparadores

en el formato binario deseado. La gran velocidad de muestreo y el hecho de que la

conversión se haga en un solo pulso de reloj, hace que a este tipo de conversores

se les conozca como conversores flash.

El problema de necesitar muchos elementos de precisión para realizar un

conversor análogo digital ha llevado a realizar otra familia que solo requieren una

referencia de tensión estable: son los conversores de rampa o de integración

basados en cargar un capacitor mediante una corriente proporcional a la tensión

de entrada. Estos conversores, por las condiciones de diseño, presentan una

excelente linealidad y elevada precisión, pudiéndose alcanzar fácilmente 16 bits a

bajo costo. Sin embargo, difícilmente pueden hacer más de unas pocas muestras

por segundo (modelos de 12 bits y superiores). Una cualidad intrínseca de estos

conversores es su gran capacidad de rechazo al ruido, especialmente el inducido

por la red de suministro eléctrico.

Page 31: Trabajo de Grado Final

31

Figura 13. Conversor analógico digital de seguimiento. La salida de un conversor

digital analógico se compara con la señal de entrada, según sea mayor o menor

se incrementa o decrementa un contador asociado al conversor digital analógico.

Según el comparador indique un valor superior o inferior, se incrementa o

decrementa el valor del contador (conversor de seguimiento). Cuando la señal

varía más rápidamente que la velocidad del conversor, los datos leídos quedan

sistemáticamente por encima o por debajo de valor correcto. Además, este tipo de

conversor tiene que invertir un tiempo considerable hasta que el contador alcanza

el valor correcto.6

6http://www.volcanesdecanarias.com/interna/Educacion/download/Instrumentacion/04_SISTEMAS%20DE%20CONVERSION%20ANALOGICA%20DIGITAL.pdf

Page 32: Trabajo de Grado Final

32

Criterios de selección de un modelo de conversor analógico digital:

1. Facilidad y seguridad de suministro

2. Condiciones de operación

3. Velocidad de muestreo

4. Resolución

5. Salida de datos serie o paralelo

6. Señales necesarias para su operación

7. Consumo

8. Precio

JAVA7

Hasta la fecha, la plataforma de Java ha atraído a más de 6.5 millones de

desarrolladores de software.

Se utiliza en los principales sectores de la industria en todo el mundo y está

presente en un gran número de dispositivos, equipos y redes.

Más de 4.500 millones de dispositivos utilizan la tecnología Java, entre los que

encontramos teléfonos móviles y de mano, tarjetas inteligentes, sintonizadores,

impresoras, cámaras web, juegos, sistemas de navegación para automóviles,

dispositivos médicos, etc.

MySQL8

MySQL es el software de bases de datos de fuente abierta más popular del mundo

con más de 100 millones de copias descargadas o distribuidas a lo largo de su

7 http://www.java.com/es/

8 http://www.mysql.com

Page 33: Trabajo de Grado Final

33

historia. Con su velocidad, fiabilidad y facilidad de uso MySQL se ha convertido en

la opción preferida para la Web, Web 2.0, SaaS e ISV.

Cuando se habla de programación orientada a objetos hablamos de Clases. Las

clases son por decirlo así el molde de donde salen los objetos; estas clases para

mayor comodidad las escribimos en un archivo que lleva su mismo nombre.

MICROCONTROLADORES9.

Un microcontrolador es un circuito integrado digital monolítico que contiene todos

los elementos de un procesador digital secuencial síncrono programable de

arquitectura Hardvard o Princeton (Von Neumann). Se suele denominar también

microcomputador integrado o embebido (Embedded Processor) y está

especialmente orientado a tareas de control y comunicaciones a pequeña escala.

Gracias a su tamaño, los microcontroladores permiten empotrar un procesador

programable en diversidad de productos industriales. Por su bajo costo y reducido

consumo de energía y velocidad adaptable, resultan apropiados para

innumerables aplicaciones. Además poseen mecanismos de seguridad de

funcionamiento y proporcionan protección del equipo electrónico contra copias y

modificaciones del programa no autorizados.

ARQUITECTURA INTERNA DE UN MICROPROCESADOR

Esta se define como el conjunto de atributos que tienen impacto directo en la

ejecución del proceso que llevan a cabo. Está formada por una unidad de control

9 Mandado Pérez, Enrique (2007), Microcontroladores PIC, Sistema integrado para el

Autoaprendizaje, Primera Edición, MARCOMBO Ediciones Técnicas, Barcelona (España)

Page 34: Trabajo de Grado Final

34

y una unidad operativa, la cual está conformada por dos partes una unidad de

memoria y unidad aritmético-lógica (ALU), como se puede ver en la figura 19.

Los datos ingresan del exterior, se almacenan en la memoria y se van pasando de

manera secuencial a la ALU, que los procesa y devuelve a la memoria según sea

el caso, debido a órdenes de la unidad de control.

La forma como trabaja la unidad control es lo que se conoce como las diferentes

arquitecturas de procesadores digitales síncronos, entre ellas Hardvard y

Princeton.

Figura 14; Diagrama de Bloques de un procesador digital síncrono

INTERFACES DE ENTRADA Y SALIDA DE LOS MICROPROCESADORES

Entre las tareas más comunes de control y comunicaciones que realizan los

microprocesadores, están la entrada y salida de datos, lo cual hace que tengan

gran cantidad de terminales dedicados a este fin, pueden operar tanto en serie

como en paralelo, y realizar tareas como conversión análoga-digital de datos tanto

entrantes como salientes. Puede manejar estándares como: USB, UART, SCI,

I2C, entre otros. También se usan en procesos de contaje y temporización.

Page 35: Trabajo de Grado Final

35

Tiene su propio juego de instrucciones de programación también llamado

“instruction Set”

MICROCONTROLADORES PIC

La marca fabricante de microprocesadores “Microchip” creó su propio grupo de

circuitos integrados llamados PIC, los cuales han invadido los mercados

mundiales, gracias a su versatilidad y amplia gama, también es de anotar que son

“open Source”, lo cual constituye el factor detonante que lleva a su amplio uso.

De acuerdo a los requerimientos de cada aplicación, Microchip ofrece un tipo de

PIC, es así como los hay de gama baja, media, alta y mejorada, cubriendo así

todos los flancos de los posibles usuarios, y llenado todas las expectativas.

Es así como se conocen las familias PIC12CXX, PIC16CXX, PIC16FXX,

PIC17CXX, PIC18FXX, y PIC18VTXX. Cada una con un número de instrucciones

en particular, número de bits a procesar y un tipo de encapsulado.

TERMISTOR LM 35

El LM 35 es un tipo de sensor de temperatura de precisión, cuya tensión de salida

es linealmente proporcional a la temperatura en grados Centígrados. El LM 35, por

tanto, tiene una ventaja respecto a los sensores lineales calibrados en grados

Kelvin: el usuario no necesita sustraer un voltaje constante de su salida para

obtener un conveniente escalado en grados centígrados. El LM 35 no requiere de

ninguna calibración externa para obtener una precisión típica de ± 0.25oC en la

temperatura de una habitación y ± 0.75oC en el rango –55oC a +150oC. La baja

impedancia de salida, la linealidad de la salida, así como la precisa calibración

inherente hacen que la interface o la circuitería de control sea especialmente

simple. El sensor apenas sufre calentamiento: menos de 0.1oC en lugar sin

movimiento de aire, debido a que solo consume 60 µA de su fuente. Opera en el

rango de temperatura comprendido entre los –55 oC a los +150 oC .

Page 36: Trabajo de Grado Final

36

CARACTERÍSTICAS DE TRANSFERENCIA: (LM 35)

• Calibrado directamente en grados Celsius (Centígrados) • Factor de escala lineal

+10.0 mV/oC • 0.5 oC de precisión a 25oC • Apropiado para el rango –55oC a

+150oC • Conveniente para aplicaciones a distancia • Opera en el rango de voltaje

de 4 a 30 V • Consume menos de 60µA de corriente • Poco calentamiento: 0.08oC

en un ambiente en calma • Desviación típica de ± 0.25oC • Baja impedancia de

salida.10

10

http://pwp.etb.net.co/SAIDPINZON/sensores.html#LM35

Page 37: Trabajo de Grado Final

37

METODOLOGÍA

Para solucionar el problema planteado, se decidió usar la compensación de

juntura fría por software. Lo que lleva a usar la técnica de inserción de metal

intermedio, ésta a su vez es sustentada en la ley de metales intermedios de

termocuplas, como software se empleó java y MySQL, y se construyó un sistema

de adquisición de datos simple, para realizar la conversión análoga-digital y enviar

los datos al pc; se usó un microcontrolador de la familia PIC18F4455, del

fabricante Microchip. Para acondicionar y amplificar la señal se usó un

amplificador tipo PGA204, una termocupla tipo J; Fe-Constantano.

Para saber la temperatura de referencia o temperatura ambiente se usó un

termistor LM35 el cual también va conectado al PIC 18F4455, que hace las veces

de conversor análogo-digital y trasmisor.

El esquema general lo muestra la figura

Figura 15; Esquema General

SISTEMA DE ADQUISICIÓN DE DATOS

Se seleccionó un rango de operación para la termocupla tipo J, con valores que

se pueden ver en la tabla XX

Page 38: Trabajo de Grado Final

38

Rango de

Operación(°C)

Valor Usado (°C) Rango de

Operación (mV)

Valor Usado (mV)

-200 a 750 0 a 450 -8.095 a 42.919 0 a 25.164mV

TABLA 4; Rango de operación Usado

El criterio de selección que se tuvo en cuenta para emplear estos valores, fue el

rango de trabajo de los componentes de acondicionamiento y adquisición de

datos.

Uno de los inconvenientes y donde más problemas ocurren en este tipo de

aplicaciones, es en el acondicionamiento de la señal, por lo cual se seleccionó un

amplificador de ganancia programable PGA204, el cual tiene dentro de sus

características el acondicionamiento apropiado para termocuplas. Como este

amplificador tiene ganancia programable se seleccionó una ganancia de 100, ya

que la señal proveniente de la termocupla es muy débil en promedio 56uV/°C,

quedando 5.6mV/°C, que ya es una señal que puede leer el A/D.

Figura 16; Conexión y Amplificación Termocupla

Luego la señal pasa al conversor A/D, que en este caso particular es el

PIC18F4455, configurándole una de sus entradas analógicas para su correcto uso,

por otro puerto analógico se conectó el sensor LM35, las dos lecturas se

digitalizan en este paso y luego el mismo PIC realiza la transmisión vía conexión

serial con el computador.

Page 39: Trabajo de Grado Final

39

En el siguiente esquema se muestra todo el circuito realizado.

Figura 17; Esquemático montado

DISEÑO E IMPLEMENTACIÓN DEL PROTOTIPO

Para llevar a cabo pruebas se diseñó un prototipo teniendo en cuenta las

respectivas técnicas de acondicionamiento de señales, como lo son, desacople de

los integrados, grandes puestas a tierra, las señales analógicas recorren

pequeñas distancias para evitar señales parásitas, en la figura XX se muestra la

tarjeta de desarrollo que se diseñó con el software EAGLE.

Page 40: Trabajo de Grado Final

40

Figura 18, Impreso Tarjeta de Adquisición de Datos

Se tuvo en cuenta que la conexión señal de la termocupla y la del LM35

estuvieran a una corta distancia, para que los valores de referencia en la

compensación estén lo más cercano posible.

Por otra parte para la comunicación serial se emuló un puerto COM, mediante una

conexión USB entre el PC y el PIC. Como fuente de alimentación para polarizar

los integrados se usó el voltaje USB que entrega el PC, para la PGA que necesita

voltaje negativo se usó un integrado TC7660, que es un conversor DC/DC; el cual

se polariza con +vcc y entrega a la salida –vcc.

Finalmente se usó la técnica de planchado para imprimir el diseño en la placa de

fibra de vidrio recubierta de cobre, se perforó y se le soldaron los componentes.

Page 41: Trabajo de Grado Final

41

Figura 19; Foto Tarjeta Adquisición de Datos

SOFTWARE

Se divide en; programación del PIC y el algoritmo de compensación.

Programación del PIC

Para programar el PIC se usó el “C CCS PIC Compiler” de la empresa microchip11,

con el cual se implementó el conversor análogo digital para procesar las señales

provenientes tanto del amplificador de la termocupla, como del LM35. También se

emuló una comunicación serial a través da una interfaz USB, entre el PIC y el PC.

11

García Breijo Eduardo (2008), Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC. Primera Edición, Alfaomega Grupo Editor S.A, México DF

Page 42: Trabajo de Grado Final

42

Algoritmo de Compensación

Como lenguaje de programación se seleccionó Java por los grandes beneficios

que éste presta. Dentro de estos encontramos:

1. Es libre: para utilizarlo no necesitamos pagar licencias a ninguna persona o

empresa.

2. Es multiplataforma: cuando realizamos una aplicación en Java, se crean

unos archivos de extensión .class que son los que ejecutan la Máquina

Virtual de Java ó JVM (Java Virtual Machine) por sus iniciales en inglés.

Existen diferentes versiones de JVM’s para distintos Sistemas Operativos,

por lo que independiente del ordenador en el que ha sido creada la

aplicación esta funcionará en cualquier otro del mercado ya que la JVM es

quien hace la interpretación del código fuente.

3. Es un lenguaje orientado a objetos: esto nos permite crear programas

modulares y códigos reutilizables, es decir, podemos crear pequeños

pedazos de código que hacen tareas específicas y luego podemos

entrelazarlos para poder realizar tareas más complejas; estos mismos

módulos los podemos copiar y utilizar en otras aplicaciones sin ningún

inconveniente.

Para hacer más fácil el uso de la aplicación, esta se puede empaquetar en un

archivo de extensión .jar que es un archivo que contiene de forma comprimida

todos los archivos .class de nuestro programa.

Para darle un poco más de robustez a la aplicación, la combinamos con el motor

de bases de datos MySQL que hace parte de los motores de bases de datos libres

que en la actualidad existen en el mercado, adicionalmente es uno de los más

rápido.

Page 43: Trabajo de Grado Final

43

Cuando desarrollamos una aplicación en Java, para más orden y para conservar

la estructura de Programación Orientada a Objetos (POO) creamos una serie de

clases y cada clase va en un archivo diferente cuyo nombre es exactamente el

mismo de la clase.

Esta es la lista de clases empleadas en la aplicación:

Main:

Ésta clase es la principal, es con la que se inicia el programa y tiene el siguiente

método:

main

Aquí se crea una instancia de la clase NewJFrame para iniciar el entorno gráfico.

NewJFrame:

Es la encargada de todo el entorno gráfico, los paneles, los botones, los campos

de texto, las gráficas y los elementos de menú que se pueden utilizar en la

aplicación.

En esta clase se encuentran los siguientes elementos:

JFrame: es el marco principal, donde están contenidos los demás

elementos

jMenuBar1: barra ubicada en la parte superior con los elementos del menú

jPanel1: en este panel se encuentran las etiquetas, campos y botones que

conforman el formulario de acceso a la aplicación

jPanel2: este es el panel principal ya que aquí se visualizan los datos que

llegan del microcontrolador y posteriormente procesados como lo son el

voltaje de la termocupla y la temperatura del sensor LM35, y la gráfica de la

temperatura calculada mediante los algoritmos de la NITS expuestos

anteriormente.

Page 44: Trabajo de Grado Final

44

dataBase:

Es quien gestiona todo lo relacionado con la base de datos tal como la conexión y

la desconexión a esta, la inserción, actualización y eliminación de datos.

Los métodos son:

dataBase: el constructor de la clase.

conectar: gestiona la conexión con la base de datos.

obtenerDatos: ejecuta sentencias de consulta a la base de datos.

guardarDatos: ejecuta sentencias de inserción o actualización a la base de datos.

desconectar: gestiona la desconexión de la base de datos.

SerialIO:

Esta clase es la encargada de manejar la conexión con el puerto serial de la

máquina y también la encargada de mandarle a la clase Control los datos

recibidos.

Los métodos son:

serialEvent: captura y procesa los eventos del puerto serial, adicionalmente hace

una conversión de los datos y los envía al método Calcular de la clase Control.

Los métodos son:

jbInit: inicializa y configura la gráfica del termómetro.

setValue: establece el valor de la temperatura que muestra el termómetro en un

instante dado.

Page 45: Trabajo de Grado Final

45

Control:

Es quien implementa los algoritmos de corrección de punta fría, guarda la

información en la base de datos y envía el valor final de la temperatura a la gráfica

del termómetro.

Los métodos son:

Control: es el constructor de la clase y quien genera una instancia de la clase

serialIO para que se inicie la captura de los datos, también hace visible la gráfica

del termómetro.

Calcular: implementa el algoritmo de corrección de punta fría, ajusta el valor en el

termómetro e inserta la información en la base de datos.

Termómetro:

Crea una gráfica de un termómetro utilizando la librería jfree chart, en éste

termómetro vamos a imprimir el valor de la temperatura luego de implementar los

algoritmos de corrección.

En este caso particular se tienen las siguientes clases:

Page 46: Trabajo de Grado Final

46

Figura 20. Diagrama de flujo del Algoritmo.

Como se puede ver en el diagrama de flujo de la Figura 22, lo primero que hace el

programa es solicitar un nombre de usuario y una contraseña que se encuentran

Page 47: Trabajo de Grado Final

47

almacenados en la base de datos. Si estos datos son incorrectos se vuelven a

solicitar hasta que se ingresen los solicitados.

Cuando se validan los datos de acceso se procede a tomar los datos del puerto

USB al que se ha conectado el sistema de adquisición de datos, como estos datos

son enviados al PC cada segundo, se toma este evento como disparador de las

siguientes acciones que son:

- Separar los datos que vienen juntos en una trama en el voltaje de la

termocupla y el voltaje del LM35.

- Hacer los cálculos para convertirlos a los valores reales sensados.

- Con estos valores se aplican las ecuaciones de corrección.

- Se imprime el valor calculado de la temperatura en un termómetro creado

con la clase jfree chart

- Se imprimen los valores en la gráfica temperatura contra tempo.

- Se guardan estos valores en la base de datos

Los anteriores pasos son realizados por la aplicación cada segundo cuando hay

disponibles datos en el puerto COM y se hacen indefinidamente hasta que se

cierra la ventana de la aplicación.

Page 48: Trabajo de Grado Final

48

Figura 21. Aplicación en ejecución

Como lo muestra la figura 24 el programa muestra los valores de Temperatura

medida en el en proceso compensada, sin compensar y la referencia del LM35.

Page 49: Trabajo de Grado Final

49

RESULTADOS

Se tomaron muestras de temperatura en procesos estables de valores en

promedio constantes y en procesos de temperatura variable, y se almacenaron

los datos de la termocupla sin compensar, compensada, la de referencia del LM35

y se tomó la temperatura con un termómetro comercial, los resultados se muestran

a continuación.

LM35°C Termocupla

Compensada

Termocupla sin

Compensar

termómetro

23,828 23,793 -0,001 23,8

23,828 23,793 -0,001 23,8

23,828 23,793 -0,001 23,8

23,828 26,811 3,086 23,8

23,828 26,811 3,086 23,8

23,828 26,811 3,086 23,8

23,828 23,793 -0,001 23,9

23,828 23,793 -0,001 24,1

24,219 24,183 -0,001 25,3

23,828 26,057 2,315 27,5

24,219 48,113 24,428 46,3

23,828 71,98 49,062 65,8

24,219 85,429 62,291 75,2

24,219 86,153 63,023 86

24,219 83,981 60,828 85,8

23,828 80,708 57,898 80,8

24,219 78,179 54,958 77,3

24,219 75,998 52,75 75,6

24,219 73,815 50,538 74,1

Page 50: Trabajo de Grado Final

50

24,219 72,357 49,061 71,9

23,828 70,521 47,584 71,1

23,828 68,331 45,363 69,3

23,828 66,868 43,88 67,6

23,828 66,137 43,137 66,3

24,219 65,051 41,651 64,9

23,828 62,474 39,42 63,7

23,828 62,474 39,42 62,5

23,828 61,006 37,929 61

24,219 59,917 36,436 59,8

24,219 59,182 35,69 58,9

23,828 58,066 34,943 58

23,828 57,33 34,195 57,2

24,219 56,238 32,697 55,9

24,219 54,765 31,198 55,1

Tabla 5; Resultados

Figura 22; Gráfica Resultados temperatura contra Tiempo

-10

0

10

20

30

40

50

60

70

80

90

100

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35

LM35°C

TermocuplaCompensada

Termocupla sinCompensar

termómetro

Page 51: Trabajo de Grado Final

51

CONCLUSIONES

Durante el proceso se observó que para la construcción de prototipos de

circuitos electrónicos, es indispensable tener en cuenta el

acondicionamiento de las señales, y la distribución correcta de los

componentes del montaje. También se notó que para el diseño de los

impresos trabajar con la herramienta EAGLE, trae muchas facilidades; ya

que en sus librerías tiene la mayoría de los componentes de uso común. Y

finalmente para placas base de impresos es más versátil trabajar con fibra

de vidrio que con baquelita tradicional, ya que es más resistente y de mejor

textura, lo que facilita la construcción de los prototipos.

Al implementar este tipo de algoritmos en un programa libre como JAVA, se

cuenta con el valor agregado de no adquirir licencias de software industrial,

el cual es de costos muy elevados, reduciéndose así los gastos del

proyecto.

Se corroboró que en el método de compensación por software se alcanza

un de error de 1.54°C, que equivale a un porcentaje 0.1% dentro del rango

de medida seleccionado, lo cual constituye una gran ventaja al momento

de medir la temperatura en procesos industriales. Además como se

manejan los datos desde una terminal de cómputo, se obtienen múltiples

beneficios como; resultados históricos, gráficas en tiempo real y posibilidad

de consultar los datos remotamente.

Se pudo notar que en situaciones donde la temperatura de proceso es

menor que la temperatura ambiente se puede presentar ligeras

perturbaciones, ya que la señal de voltaje entregada por la termocupla es

muy cercana a cero y muy débil, de ahí que se necesite una mayor

amplificación en este punto, lo que hace que se requiera mayor

acondicionamiento y más procesamiento de cómputo. Razón por la cual se

Page 52: Trabajo de Grado Final

52

recomienda usar esta técnica en procesos de calentamiento donde la

temperatura sea mayor que la del ambiente.

Se observó que mediante este método se puede llegar a tener de los datos

de varias termocuplas en un solo sistema de adquisición de datos, con

estos valores es posible realizar la compensación de manera simultánea, se

pueden manipular los datos para; comparar, hacer promedios, sumatorias,

y llevar registros, lo cual permitiría tener un control más exacto del proceso

que se está monitoreando.

Finalmente se concluye que el método de compensación de punta fría para

termocuplas mediante software, es práctico para procesos que requieren de

varias mediciones y además donde se necesite monitorear en línea el

estado del proceso, y donde se necesite almacenar los datos para su

posterior uso.

Page 53: Trabajo de Grado Final

53

BIBLIOGRAFÍA

[1] Carrillo Orlando (2010), Notas sobre termocuplas para el curso de

Acondicionamiento de Señales, Universidad de Antioquia.

[2] Creus Solé, Antonio (1998), Instrumentación industrial, Capitulo 6, Sexta

edición, México D.F., Alfaomega

[3] García Breijo Eduardo (2008), Compilador C CCS y Simulador PROTEUS para

Microcontroladores PIC. Primera Edición, Alfaomega Grupo Editor S.A, México DF

[4] Gómez-Acebo, Tomás (2001), Termodinámica Básica, Capítulo 1, Universidad

de Navarra, TECNUN Ediciones.

[5] Mandado Pérez, Enrique (2007), Microcontroladores PIC, Sistema integrado

para el Autoaprendizaje, Primera Edición, MARCOMBO Ediciones Técnicas,

Barcelona (España)

WEBGRAFÍA

[1] http://es.wikipedia.org/wiki/Termopar

[2] http://srdata.nist.gov/its90/download/allcoeff.tab

[3]http://www.volcanesdecanarias.com/interna/Educacion/download/Instrumentacio

n/04_SISTEMAS%20DE%20CONVERSION%20ANALOGICA%20DIGITAL.pdf

[4] http://www.java.com/es/

[5] http://www.mysql.com

[6] http://pwp.etb.net.co/SAIDPINZON/sensores.html#LM35

Page 54: Trabajo de Grado Final

54

ÍNDICE DE ANEXOS

TABLAS DE POLINOMIOS Y COEFICIENTES NIST 55

PROGRAMACIÓN DEL PIC 56

ALGORITMO EN JAVA 59

Page 55: Trabajo de Grado Final

55

TABLAS DE POLINOMIOS Y COEFICIENTES NIST

Reference Function Coefficients Definitions:

The general form for the emf, E, as a function of t90

for all except type K thermocouples is:

where E is in mV and t90 is in °C. For type K thermocouples

above 0 °C, there is an additional term to account for

a magnetic ordering effect:

where e is the natural logarithm constant, E is in mV,

and t90 is in °C. The constants a0 , a1 , and a2 have

the values:

a0 = 0.118597600000x100

a1 = - 0.118343200000x10-3

a2 = 0.126968600000x103

Page 56: Trabajo de Grado Final

56

PROGRAMACIÓN DEL PIC

include <18f4455.h>

#device adc=8

#fuses

Hspll,nowdt,NOPROTECT,nolvp,nodebug,usbdiv,pll5,cpudiv1,vregen,nomclr

#use delay(clock=48000000)

// #use standard_io(a)

#define usb_con_sense_pin pin_D7

#include <usb_cdc.h>

int contador=0;

int1 enviar=0;

//int dato=0;

int16 dato1=0;

int dato2=0;

int datof=0;

int i=0;

#INT_RTCC

void tiempo(){

if(contador==20){

contador=0;

enviar=1;

}

else{

contador++;

}

Page 57: Trabajo de Grado Final

57

}

void main(){

SET_TRIS_A(0XFF);

SET_TRIS_B(0X00);

// SET_TRIS_C(0X00);

SET_TRIS_D(0b10111111);

SETUP_ADC(ADC_CLOCK_DIV_16);

SETUP_ADC_PORTS(AN0_TO_AN1|VSS_VREF);

set_adc_channel(0);

ENABLE_INTERRUPTS(INT_RTCC);

SETUP_COUNTERS(RTCC_INTERNAL,RTCC_DIV_2 );

ENABLE_INTERRUPTS(GLOBAL);

USB_CDC_INIT();

USB_INIT();

do{

usb_task();

if(usb_enumerated()){

//if( usb_cdc_kbhit()==1){

//dato= usb_cdc_getc();

//set_adc_channel((dato&0x07));

//usb_cdc_putc(read_adc());

//}

//datof=(int)(dato1>>2);

Page 58: Trabajo de Grado Final

58

if(enviar==1){

enviar = 0;

dato1 = 0;

set_adc_channel(0);

for(i=0;i<=3;i++){

dato1=dato1+read_adc();

delay_ms(1);

}

datof=(int)(dato1>>2);

set_adc_channel(1);

delay_us(10);

dato2=read_adc();

delay_ms(1);

usb_cdc_putc(datof);

delay_ms(1);

usb_cdc_putc(dato2);

}

}

} while(true);

}

Page 59: Trabajo de Grado Final

59

ALGORITMO EN JAVA

package correctorpf;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Enumeration;

import java.util.TooManyListenersException;

import javax.comm.CommPortIdentifier;

import javax.comm.NoSuchPortException;

import javax.comm.PortInUseException;

import javax.comm.SerialPort;

import javax.comm.SerialPortEvent;

import javax.comm.SerialPortEventListener;

/**

* Realiza la conexión mediante el puerto serial entre el sistema embebido y el PC

* @author Jorge González

* @author Obeymar Santana

* @version 1.0

*/

public class serialIO implements SerialPortEventListener {

public Control controlar;

static CommPortIdentifier idPort;

static SerialPort sPort;

static OutputStream salida;

public InputStream entrada;

Page 60: Trabajo de Grado Final

60

static String datos;

static Enumeration enumpuertos;

public double VTermoCupla;

public double TLM35;

public int Contador = 0;

public serialIO(Control controlador) {

controlar = controlador;

try {

idPort = CommPortIdentifier.getPortIdentifier("COM1");

try {

sPort = (SerialPort) idPort.open("Puerto COM11",

4000);

sPort.setSerialPortParams(19200,

sPort.DATABITS_8,

sPort.STOPBITS_1,

sPort.PARITY_NONE);

sPort.setFlowControlMode(sPort.FLOWCONTROL_NONE);

sPort.setInputBufferSize(3);

try {

salida = sPort.getOutputStream();

entrada = sPort.getInputStream();

try {

sPort.addEventListener(this);

sPort.notifyOnDataAvailable(true);

} catch (TooManyListenersException e) {

}

} catch (IOException e) {

Page 61: Trabajo de Grado Final

61

System.err.println("ERROR de I/O" + e);

}

} catch (PortInUseException e) {

System.err.println("ERROR al abrir puerto " + e);

} catch (Exception e) {

System.err.println("Error al abrir el puerto! STATUS: " +

e);

}

} catch (NoSuchPortException e) {

System.err.println("ERROR al identificar puerto " + e);

}

}

/**

* Captura los eventos del puerto serial y procesa la información tomada de

este

* @param event evento del puerto serial

*/

public void serialEvent(SerialPortEvent event) {

int numBytes = 0;

byte[] bufferLectura = new byte[8];

switch (event.getEventType()) {

case SerialPortEvent.BI:

case SerialPortEvent.OE:

case SerialPortEvent.FE:

case SerialPortEvent.PE:

case SerialPortEvent.CD:

System.out.print("CD pasa a ");

if (event.getNewValue()) {

Page 62: Trabajo de Grado Final

62

System.out.println("cierto");

} else {

System.out.println("falso");

}

break;

case SerialPortEvent.CTS:

System.out.print("CTS pasa a ");

if (event.getNewValue()) {

System.out.println("cierto");

} else {

System.out.println("falso");

}

break;

case SerialPortEvent.DSR:

System.out.print("DSR pasa a ");

if (event.getNewValue()) {

System.out.println("cierto");

} else {

System.out.println("falso");

}

break;

case SerialPortEvent.RI:

System.out.print("RI pasa a ");

if (event.getNewValue()) {

System.out.println("cierto");

} else {

System.out.println("falso");

}

break;

Page 63: Trabajo de Grado Final

63

case SerialPortEvent.OUTPUT_BUFFER_EMPTY:

System.out.println("Buffer vacio");

break;

case SerialPortEvent.DATA_AVAILABLE:

// System.out.println("Datos disponibles");

try {

while (entrada.available() > 0) {

numBytes = entrada.read(bufferLectura);

}

String DatosLeidos = new String(bufferLectura);

// System.out.println("Bytes: " + numBytes);

// System.out.println("Datos: " + DatosLeidos);

char arrayDatos[];

arrayDatos = new char[2];

if (numBytes == 2) {

Contador = 0;

arrayDatos[0] =

DatosLeidos.charAt(0);

arrayDatos[1] =

DatosLeidos.charAt(1);

VTermoCupla = arrayDatos[0];

TLM35 = arrayDatos[1];

VTermoCupla = (VTermoCupla * 1.0) /

256;

VTermoCupla = VTermoCupla / 100;

TLM35 = (TLM35 * 1.0) / 256;

Page 64: Trabajo de Grado Final

64

TLM35 = TLM35 * 100;

controlar.Calcular(VTermoCupla, TLM35);

} else if (numBytes == 1) {

Contador++;

if (Contador == 1) {

arrayDatos[0] =

DatosLeidos.charAt(0);

VTermoCupla = arrayDatos[0];

VTermoCupla = (VTermoCupla *

1.0) / 256;

VTermoCupla = VTermoCupla /

100;

} else if (Contador == 2) {

arrayDatos[0] =

DatosLeidos.charAt(0);

TLM35 = arrayDatos[0];

TLM35 = (TLM35 * 1.0) / 256;

TLM35 = TLM35 * 100;

Contador = 0;

controlar.Calcular(VTermoCupla,

TLM35);

}

}

} catch (IOException e) {

System.out.println("Error IO durante la lectura: " +

e);

} catch (Exception e) {

Page 65: Trabajo de Grado Final

65

System.out.println("Error durante la lectura: " +

e);

}

break;

}

}

/**

* Envía los bytes de datos al sistema embebido

* @param dato String con información para enviar al micro del sistema

embebido

*/

public void enviarMicro(String dato) {

try {

datos = new String(dato);

System.out.println(datos);

salida.write(datos.getBytes());

// salida.flush();

} catch (IOException e) {

System.out.println("Error IO durante la escritura: " + e);

} catch (Exception e) {

System.out.println("Error durante la escritura: " + e);

}

}

}

Page 66: Trabajo de Grado Final

66

package correctorpf;

import java.sql.SQLException;

import javax.swing.JLabel;

import org.jfree.data.time.Millisecond;

import org.jfree.ui.RefineryUtilities;

/**

*Realiza el control principal de la aplicación

* @author Jorge González

* @author Obeymar Santana

*/

public class Control {

/**

* Las constantes C son válidas para termocuplas tipo J desde -210 a 760 °C

* Las constantes A son válidas para termocuplas tipo J desde 0 a 760 °C

*/

final double C0 = 0.0;

final double C1 = 0.503811878150E-01;

final double C2 = 0.304758369300E-04;

final double C3 = -0.856810657200E-07;

final double C4 = 0.132281952950E-09;

final double C5 = -0.170529583370E-12;

final double C6 = 0.209480906970E-15;

final double C7 = -0.125383953360E-18;

final double C8 = 0.156317256970E-22;

final double A0 = 0.0;

final double A1 = 1.978425E+01;

Page 67: Trabajo de Grado Final

67

final double A2 = -2.001204E-01;

final double A3 = 1.036969E-02;

final double A4 = -2.549687E-04;

final double A5 = 3.585153E-06;

final double A6 = -5.344285E-08;

final double A7 = 5.099890E-10;

double V_LM, V_TOTAL, T_TOTAL, T_MEDIDA;

int contadorSQL = 0;

int acumuladorTemp = 0;

double temperaturaC = 0;

double temperaturaS = 0;

NewJFrame panel;

Termometro termo_c;

Termometro termo_s;

serieTiempo serie;

/**

* Constructor de la clase

* @param panel

*/

public Control(NewJFrame mainPanel) {

termo_c = new Termometro();

termo_s = new Termometro();

termo_c.thermo1.addSubtitle("Temp. compensada");

termo_s.thermo1.addSubtitle("Temp. sin compensar");

panel = mainPanel;

serie = new serieTiempo("Gráfica de temperaturas contra el tiempo");

serie.pack();

RefineryUtilities.positionFrameOnScreen(serie, 0, 0);

Page 68: Trabajo de Grado Final

68

// serie.setVisible(true);

JLabel jLabel1 = new JLabel();

jLabel1.setBackground(new java.awt.Color(102, 153, 255));

jLabel1.setFont(new java.awt.Font("BankGothic Md BT", 1, 12));

jLabel1.setForeground(new java.awt.Color(255, 255, 255));

jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel1.setText("Panel de Control del Sistema Embebido");

jLabel1.setOpaque(true);

/**

* Termómetro compensado

*/

org.jdesktop.layout.GroupLayout graficaLayout = new

org.jdesktop.layout.GroupLayout(panel.grafica);

panel.grafica.setLayout(graficaLayout);

graficaLayout.setHorizontalGroup(

graficaLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).ad

d(graficaLayout.createSequentialGroup().addContainerGap().add(termo_c,

org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 148,

Short.MAX_VALUE).addContainerGap()));

graficaLayout.setVerticalGroup(

graficaLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).ad

d(graficaLayout.createSequentialGroup().addContainerGap().add(termo_c).addCo

ntainerGap(183, Short.MAX_VALUE)));

/**

Page 69: Trabajo de Grado Final

69

* Termómetro sin compensar

*/

org.jdesktop.layout.GroupLayout grafica1Layout = new

org.jdesktop.layout.GroupLayout(panel.grafica1);

panel.grafica1.setLayout(grafica1Layout);

grafica1Layout.setHorizontalGroup(

grafica1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).a

dd(grafica1Layout.createSequentialGroup().addContainerGap().add(termo_s,

org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 148,

Short.MAX_VALUE).addContainerGap()));

grafica1Layout.setVerticalGroup(

grafica1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).a

dd(grafica1Layout.createSequentialGroup().addContainerGap().add(termo_s).add

ContainerGap(183, Short.MAX_VALUE)));

panel.grafica.setVisible(true);

panel.grafica1.setVisible(true);

serialIO serial = new serialIO(this);

}

/**

* Calcula la temperatura real de la termocupla aplicando los polinomios de

conversión de punta fría

* @param Vt Voltaje de la termocupla

* @param T_LM Temperatura en el extremo frío de la termocupla la cual es

sensada por el LM35

Page 70: Trabajo de Grado Final

70

*/

public void Calcular(double Vt, double T_LM) {

double V_T_TEMP;

V_LM = C0 + C1 * T_LM + C2 * Math.pow(T_LM, 2) + C3 * Math.pow(T_LM,

3) + C4 * Math.pow(T_LM, 4);

V_TOTAL = (V_LM * 1E-03) + Vt;

V_TOTAL = V_TOTAL * 1E+03;

V_T_TEMP = Vt * 1E+03;

T_TOTAL = A0 + A1 * V_TOTAL + A2 * Math.pow(V_TOTAL, 2) + A3 *

Math.pow(V_TOTAL, 3) + A4 * Math.pow(V_TOTAL, 4);

T_MEDIDA = A0 + A1 * V_T_TEMP + A2 * Math.pow(V_T_TEMP, 2) + A3 *

Math.pow(V_T_TEMP, 3) + A4 * Math.pow(V_TOTAL, 4);

temperaturaC += T_TOTAL;

temperaturaS += T_MEDIDA;

acumuladorTemp++;

if (acumuladorTemp == 4) {

acumuladorTemp = 0;

temperaturaC = temperaturaC / 4;

temperaturaS = temperaturaS / 4;

termo_c.setValue(temperaturaC);

termo_s.setValue(temperaturaS);

serie.series1.add(new Millisecond(), temperaturaS);

serie.series2.add(new Millisecond(), temperaturaC);

panel.datoSerial.setText(Vt + " - " + T_LM);

Page 71: Trabajo de Grado Final

71

temperaturaC = 0;

temperaturaS = 0;

}

contadorSQL++;

if (contadorSQL == 10) {

contadorSQL = 0;

dataBase mysql = new dataBase();

mysql.conectar();

try {

mysql.guardarDatos("INSERT INTO historial (v_termocupla, t_lm35,

temp_calculada, temp_medida, fecha) VALUES ('" + Vt + "', '" + T_LM + "', '" +

T_TOTAL + "', '" + T_MEDIDA + "', now())");

mysql.desconectar();

} catch (SQLException e) {

}

}

}

}

Page 72: Trabajo de Grado Final

72

ackage correctorpf;

import java.awt.BorderLayout;

import java.awt.Color;

import java.text.DecimalFormat;

import javax.swing.JPanel;

import org.jfree.chart.ChartPanel;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.JThermometer;

import org.jfree.chart.plot.MeterPlot;

import org.jfree.data.general.DefaultValueDataset;

/**

*

* @author Jorge González

* @author Obeymar Santana

*/

public class Termometro extends JPanel {

/**

* Conjunto de datos

*/

private DefaultValueDataset data = new DefaultValueDataset(0.0);

/**

* Trama del medidor

*/

private MeterPlot meterplot = new MeterPlot(this.data);

Page 73: Trabajo de Grado Final

73

/**

* Gráfica del medidor

*/

private JFreeChart meterchart = new JFreeChart("Termómetro",

JFreeChart.DEFAULT_TITLE_FONT, this.meterplot, false);

/**

* Diseño del borde

*/

private BorderLayout borderLayout1 = new BorderLayout();

/**

* Panel del medidor

*/

private ChartPanel panelMeter = new ChartPanel(this.meterchart);

/**

* Panel 1

*/

private JPanel jpanel1 = new JPanel();

/**

* Termómetro 1

*/

public JThermometer thermo1 = new JThermometer();

/**

* Constructor de la clase

*/

public Termometro() {

Page 74: Trabajo de Grado Final

74

try {

jbInit();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* Inisializa la clase

* @throws java.lang.Exception

*/

void jbInit() throws Exception {

this.thermo1.setValue(0.0);

this.thermo1.setOutlinePaint(null);

this.thermo1.setUnits(2);

this.thermo1.setShowValueLines(true);

this.thermo1.setFollowDataInSubranges(true);

this.thermo1.setForeground(Color.BLUE);

this.thermo1.setRange(0.0, 500.0);

this.thermo1.setSubrangeInfo(0, 000.0, 100.0, 0.0, 500.0);

this.thermo1.setSubrangeInfo(1, 100.0, 200.0, 0.0, 500.0);

this.thermo1.setSubrangeInfo(2, 200.0, 300.0, 0.0, 500.0);

this.thermo1.setSubrangeInfo(3, 300.0, 400.0, 0.0, 500.0);

this.thermo1.setSubrangeInfo(4, 400.0, 500.0, 0.0, 500.0);

// this.thermo1.addSubtitle("Temperatura Compensada");

this.thermo1.setValueFormat(new DecimalFormat("0.0"));

this.jpanel1.setLayout(this.borderLayout1);

this.jpanel1.add(this.thermo1, BorderLayout.CENTER);

add(this.jpanel1, null);

}

Page 75: Trabajo de Grado Final

75

/**

* Marca la temperatura del termómetro dado

* @param value

*/

public void setValue(final double value) {

try {

this.thermo1.setValue(value);

} catch (Exception ex) {

ex.printStackTrace();

}

}

/**

* Marcar el valor de medida

* @param value

*/

public void setMeterValue(final double value) {

try {

double newValue = value;

if (this.data.getValue() != null) {

newValue += this.data.getValue().doubleValue();

}

this.data.setValue(new Double(newValue));

} catch (Exception e) {

System.err.println(e.getMessage());

}

}

}