Sie sind auf Seite 1von 75

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

2
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

3
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

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

5
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

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

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

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

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

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

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

12
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

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

14
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 “T p” 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

15
este tenderá a cargarse negativamente con respecto al extremo caliente, dicha
fuerza electromotriz está dada por:

T2
VT Q m dT
T1

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:

16
VT (T 2 T1 )

α = 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.

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

18
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

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

20
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

21
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

22
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

23
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”.

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

25
Figura 12 Diagrama de voltajes reales de termocuplas

En el circuito: V M V J1 VJ2 VJ3 V4 puesto que las junturas J1 y J4 están hechas

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

VJ4 V J1

VM VJ3 VJ2

VM V J 3 (T P ) V J 2 (T ref )

También tenemos que las junturas J3 y J2 están hechas con los mismos metales
por tanto podemos decir que:

V J 2 (T ref ) V J 3 (Tref )

Si V J 3 V PCtte

==> V n V TC (Tp ) V TC (Tref )

26
Bajo estas condiciones si se conocen T ref 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.

Tm Tc

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 + … + CNTN


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 + … + aNVN


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

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

27
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

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

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

30
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

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

31
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

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

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

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

35
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

36
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

37
Rango de Valor Usado (°C) Rango de Valor Usado (mV)
Operación(°C) Operación (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.

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

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

40
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

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

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

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

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

45
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

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

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

48
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 Termocupla sin termómetro
Compensada Compensar
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

49
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

100
90
80 LM35°C
70
60 Termocupla
50 Compensada
40 Termocupla sin
30 Compensar
20 termómetro
10
0
-10 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35

Figura 22; Gráfica Resultados temperatura contra Tiempo

50
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

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

52
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

53
ÍNDICE DE ANEXOS

TABLAS DE POLINOMIOS Y COEFICIENTES NIST 55

PROGRAMACIÓN DEL PIC 56

ALGORITMO EN JAVA 59

54
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

55
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++;
}

56
}

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

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

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

59
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) {

60
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()) {

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

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

63
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) {

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

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

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

67
// 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)));

/**

68
* 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

69
*/
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);

70
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) {
}
}
}
}

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

72
/**
* 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() {

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

74
/**
* 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());
}
}
}

75

Das könnte Ihnen auch gefallen