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

.................................. 20 ENCAPSULADOS PARA TERMOCUPLAS COMERCIALES ............... 14 PRINCIPIOS FÍSICOS DE LAS TERMOCUPLAS ................................................................................... 7 RESUMEN ............................................................................................................................................ 25 COMPENSACIÓN POR SOFTWARE................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 12 TÉCNICAS Y ELEMENTOS DE MEDICIÓN DE TEMPERATURA ........................................................................................................................... 25 CONVERSIÓN ANÁLOGA DIGITAL .................................................................................................................................................................... 19 CARACTERÍSTICA DE TRANSFERENCIA DE TERMOCUPLAS ............................................. 15 LEY DE LOS CIRCUITOS HOMOGÉNEOS ..................... 12 TERMOCUPLA ................................................. 15 EFECTO SEEBECK .......................................................... 25 COMPENSACIÓN POR HARDWARE ....................................................................................................................... 29 4 ............................................. 11 OBJETIVO GENERAL ............................................................ 23 COMPENSACIÓN DE JUNTURA FRÍA .......................................................................................................................................................................................................................... 8 INTRODUCCIÓN ........ 4 INDICE DE TABLAS Y FIGURAS ......................................................................................... 18 TECNOLOGÍA Y TIPOS DE TERMOCUPLAS ...................................................................................................................................................................................................................................................... 9 PLANTEAMIENTO DEL PROBLEMA ...................................... 11 OBJETIVOS ESPECIFICOS ....................................................................................... 18 NORMAS “DIN” ............. 12 TEMPERATURA....... 6 GLOSARIO ...............................................CONTENIDO CONTENIDO ............................................................................................................ 21 ACONDICIONAMIENTO PARA TERMOCUPLAS . 10 OBJETIVOS........................ 17 LEY DE METALES INTERMEDIOS ....... 11 MARCO TEÓRICO ..........................................................................................................................

....................................... 32 MICROCONTROLADORES.............................................. 51 WEBGRAFÍA ....................................................................................... 44 SerialIO: ........................................................................................................................................................................................................................................ 37 SISTEMA DE ADQUISICIÓN DE DATOS................................................................................................................................................................................................................................................................................................................................. 33 INTERFACES DE ENTRADA Y SALIDA DE LOS MICROPROCESADORES .............................................................................................................................................................................................................................................................. 44 RESULTADOS ........................... 34 MICROCONTROLADORES PIC ....................................... 41 Main: .............................................................................................................................................................................................. 5 .......................................................................................................................................... 49 CONCLUSIONES.............................................................................................................. 33 ARQUITECTURA INTERNA DE UN MICROPROCESADOR ............ 39 SOFTWARE ............................ 43 NewJFrame: ................................... ¡Error! Marcador no definido....................................................................... 35 CARACTERÍSTICAS DE TRANSFERENCIA: (LM 35) .......... 35 TERMISTOR LM 35 ........... 43 dataBase: .........................................JAVA ............................. 32 MySQL .................... 37 DISEÑO E IMPLEMENTACIÓN DEL PROTOTIPO .............................................................................................................................................. 36 METODOLOGÍA..................................... ........................................................................................................................ 53 ANEXOS ....................................

37 Figura 16 Conexión y Amplificación Termocupla. Aplicación en ejecución. Diagrama de flujo del programa. 21 Figura 6 Dimensione Encapsulado Termocuplas. 50 Figura 3 Efecto Seebeck. Impreso Tarjeta de Adquisición de Datos. Normas DIN para termocuplas. 38 Figura 17 Esquemático montado.INDICE DE TABLAS Y FIGURAS Figura 1. 41 Figura 2 Efecto Seebeck. 21 Figura 7 Encapsulado Aislado. 15 Figura 20. 23 Figura11 Diagrama eléctrico Unión Termocupla con Circuito Impreso. 24 Figura 12 Diagrama de voltajes reales de termocuplas.. 31 Figura 14 Diagrama de Bloques de un procesador digital síncrono. 16 Figura 4 Ley Metales Intermedios. 34 Figura 15 Esquema General Trabajo realizado. 50 6 . 20 Tabla 5.. Conversor analógico digital de seguimiento. Resultados temperatur. 48 Figura 22. 14 Figura 10 Unión Termocupla con Circuito Impreso. 26 Figura 13. 39 Figura 18. 13 Tabla 2. Foto Tarjeta Adquisición de Datos. 18 Figura 5 Curva Característica de termocuplas. 22 Figura 9 Encapsulado Expuesto. Resultados temperatura contra Tiempo. Conducción de los metales. Termocupla. 24 Tabla 1: Algunos sensores de temperatura y sus características.. 40 Figura 19. 46 Figura 21. 19 Tabla 3 Característica de Transferencia termocupla Tipo J. 22 Figura 8 Encapsulado a Masa o Tierra.

ser leída correctamente. en determinado instante.e. para este caso. Característica de Transferencia: Capacidad que tienen los elementos adicionar o sustraer una cantidad suficiente para electrónicos de producir una salida de acuerdo a una entrada en particular. también se le conoce como tensión eléctrica y se mide en voltios.GLOSARIO Temperatura Ambiente: medida de la energía cinética de las moléculas circundantes en determinado espacio físico. Acondicionamiento de una Señal: Conjunto de elementos físicos o informáticos que permiten a una señal de información. 7 . Compensación: Acción de nivelar un sistema. f. Software: Conjunto de listas de instrucciones que forman un programa informático. Sensor: Elemento que traduce o transforma un tipo o forma de energía en otra. elementos electrónicos.m: Fuerza electromotriz. Hardware: Conjunto de elementos físicos que constituyen determinado sistema.

la cual es cambiante. y consiste en que la fuerza electromotriz generada se referencia desde cero grado centígrado. 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. para realizar la compensación que se denomina. pero los elementos de medida “nunca” están a esa temperatura. donde se le aplican métodos numéricos. 8 . Luego de esto se llevan los datos muestreados a través de un conversor análogo-digital. para así visualizarlos en algún tipo de display o proceder a controlar el proceso industrial. por medio de la cual se obtienen menos errores en la medición y un mejor resultado que el tradicional. por el contrario están a temperatura “ambiente”. los cuales a su vez conllevan a un proceso de manipulación de los datos obtenidos. la medida de la temperatura ambiente. entre estos elementos de medida están los sensores tipo termopares o termocuplas. quedando así errónea la medida realizada. hasta un computador. Desde sus comienzos las termocuplas han traído consigo un problema. mediante equipos electrónicos. 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. “compensación por software” En el presente trabajo se utilizó la compensación por software. adicionalmente una reducción del hardware utilizado en este proceso.RESUMEN Al realizar mediciones de temperatura en procesos industriales se usan diversos métodos y elementos.

entre ellos el que emplea la ley de metal intermedio y ajuste por software. en el extremo contrario para alterar la medida. es decir.INTRODUCCIÓN Muchos procesos industriales dependen parcial o completamente de la variable temperatura. En el funcionamiento de los termopares hay un inconveniente que se debe tener en cuenta a la hora de emplearlos. lo cual nos es cierto para sistemas abiertos. visualizar y posteriormente controlar la variable física temperatura. por lo que se hace indispensable conocer su estado. y luego se lleva ésta medida a un sistema de adquisición de datos donde se le hace la corrección definitiva. 9 . y el otro extremo está a cero grado centígrado. 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. Se conocen diversos métodos para medir. lo cual consiste en insertar una porción de uno de los metales que conforman el termopar. Hay varios métodos para efectuar la compensación de punta fría. debido al cambio de temperatura en la unión. entre los elementos de medida o sensores más conocidos están las termocuplas o termopares. que el elemento sensor está a temperatura del proceso. 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. la media de la temperatura ambiente. y es que la medida de temperatura que estos sensores indican está referenciada con respecto a cero grado centígrado. ya sea para estar al tanto de la medida actual o para controlar el calentamiento directo de elementos del proceso. 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.

es necesario utilizar las herramientas adecuadas para obtener excelentes resultados. 10 . una toma de una temperatura que se supone sencillo se convierte en un proceso largo y tedioso. usando termocuplas. Como se puede notar. Los termopares son unos de los elementos más utilizados para la medición de temperatura en ambientes industriales. que incluye varios (mínimo dos). por lo que terminamos haciendo realmente dos mediciones de la variable física. 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. De lo cual se deriva el inconveniente de más elementos para poder procesar esta información. y ajuste por software. mediante la técnica de metal intermedio. los elementos de corrección lo que hacen es una segunda medida. Pero su acople con los elementos que procesan la medición es costoso y complicado debido a la cantidad de hardware requerido.PLANTEAMIENTO DEL PROBLEMA Siempre que se desea implementar la medición y el posterior control de temperatura. obtener resultados que permitan una correcta visualización y manipulación de la variable temperatura. ya que tienen mayor rango. ésta es cambiante de acuerdo a la hora del día y las condiciones del clima. ya sea para visualizarlo o para controlar el proceso. elevando así los costos del proceso. se corre con el riesgo de tener procesos con resultados nefastos y por lo tanto pérdidas no deseadas de dinero. compararla y realizar los respectivos ajustes y así obtener el valor deseado. linealidad y una buena característica de transferencia. Se pretende a final del proyecto. y cuando no se hace. robustez. y con ellos gran cantidad de elementos acondicionadores de la señal. sensores.

Diseñar un sistema de adquisición de datos simple. donde se emplee como elemento sensor. qué tipo de elementos serían los más adecuados para tener en cuenta en el proceso de diseño de la solución. 11 . OBJETIVOS ESPECIFICOS Identificar de acuerdo con las necesidades planteadas en el proyecto. un sistema inteligente como un microcontrolador y un conversor análogo-digital. donde intervenga un sensor. usando software para realizar el ajuste y así reducir el hardware. en el que los datos puedan ser leídos por un computador. una o varias termocuplas. compensación de punta fría de éstas. mediante la técnica de inserción de metal intermedio.OBJETIVOS OBJETIVO GENERAL Diseñar e implementar un sistema que realice la medición de la variable temperatura. 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.

el cual la define como una propiedad inherente a un sistema físico o región espacial. TECNUN Ediciones. Variación en volumen o en estado de los cuerpos (sólidos.MARCO TEÓRICO TEMPERATURA Desde el punto de vista del principio cero de la termodinámica se puede desarrollar el concepto de temperatura. Quedando la definición de Temperatura como: Fenómeno o propiedad que poseen los sistemas físicos. que se percibe a nivel macroscópico. Capítulo 1 .e. y por el tipo de instrumento indicador. d. por la distancia entre el elemento de medida y el aparato receptor. la velocidad de captación de la temperatura. ya que ésta es la mediad de la energía cinética promedio de cada partícula que interviene en el sistema. pero que tiene sus orígenes a nivel microscópico. e. creada en la unión de dos metales distintos (termopares). b. Universidad de Navarra. Variación de resistencia de un semiconductor (termistores). c. f. Los sistemas de medida tienen sus limitaciones en cada tipo de aplicación debido a la precisión.m. Variación de resistencia de un conductor (sondas de resistencia). 12 . 1 Tomás Gómez-Acebo(2001). líquidos y gases).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. registrador o controlador necesarios. Intensidad de radiación total emitida por el cuerpo (pirómetros de radiación). Termodinámica Básica. Los instrumentos de temperatura utilizan diversos fenómenos que son influidos por la temperatura y entre los cuales figuran: a.

pirómetros de radiación. termómetros de cristal de cuarzo. Alfaomega 13 . termopares. Tabla 1: Algunos sensores de temperatura y sus características. Como se puede notar para medir la temperatura se usan varios tipos de elementos. termómetros ultrasónicos.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. elementos primarios de bulbo y capilar rellenos de líquido. México D.F. en el caso de este proyecto se profundizará en el estudio de los termopares o termocuplas. Capitulo 6. Instrumentación industrial. termómetros bimetálicos.De este modo se emplean los instrumentos siguientes: Termómetros de vidrio. termómetros de resistencia. Sexta edición. gas o vapor. 2 Antonio Creus Solé (1998)..

14 . de las temperaturas del proceso y ambiente. Rápida respuesta en el tiempo Robustez mecánica. Este tipo de sensor consiste en dos hilos de diferentes metales unidos en uno de sus extremos. Confiabilidad. Figura 1. ésta diferencia de temperatura hace que se genere una tensión eléctrica en sus extremos.TERMOCUPLA Tipo de elemento que permite la medición o sensado de la temperatura. Al estudiar el comportamiento de las termocuplas se han logrado establecer una serie de leyes importantes en el funcionamiento de las termocuplas. que dependerá de la naturaleza de los metales. y las puntas del otro extremo están a temperatura 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. el cual está a la temperatura del proceso.

Por el contrario. debido a la aparición de una fuerza electromotriz (f. siempre que exista una diferencia de temperatura entre el punto de contacto.PRINCIPIOS FÍSICOS DE LAS TERMOCUPLAS Este tipo de transductor genera una tensión eléctrica. los electrones de los últimos niveles de conducción tienden a difundirse hacia el extremo frió. por consiguiente 15 . si se juntan los extremos libres tendremos una corriente continua “IT” circulando. la cual es de origen termo eléctrico. 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. cuya polaridad y magnitud dependerá de la naturaleza de los conductores y de la diferencia de temperatura (Tp – Tm). proporcional a la diferencia de temperatura entre sus extremos. aparecerá entre los dos hilos una tensión “VT”. Figura 2 Efecto Seebeck Se sabe que los electrones en un conductor (DE LOS NIVELES DE CONDUCCIÓN). Esto con los conductores separados entre sí.m). el cual se halla a una temperatura “T p” y los extremos libres “Tm”. al calentarse uno de los extremos.e.

este tenderá a cargarse negativamente con respecto al extremo caliente. dicha fuerza electromotriz está dada por: T2 T1 VT Q m dT En donde: VT: Fuerza electromotriz (Voltios) T1. independiente de la temperatura. Figura 3 Efecto Seebeck.T2: Temperatura en los extremos (°K) Qm: Constante de transporte térmico. Conducción de los metales Por tanto tendremos una relación lineal: 16 .

Es decir. 3 Carrillo Orlando (2010). la longitud de los conductores no interfiere en la medida de la temperatura final. la f. deberá haber del otro lado consumo de energía térmica. El efecto Seebeck es pues una forma de conversión directa de energía “Térmica” a energía “Eléctrica”. Notas sobre termocuplas para el curso de Acondicionamiento de Señales. y se opte por instalar trasmisores de corriente para llevar las señales a los tableros de control. Universidad de Antioquia. Es de notar que si se tiene generación de energía eléctrica. Si la juntura de dos elementos distintos se mantiene a Tp. 17 . en lugar de la señal original de temperatura. lo cual hace que resulte un poco tedioso instalarlos.VT (T 2 T1 ) α = Coeficiente de SEEBECK (Factor constante Volts/°K) αVARIA TIP: 10 – 60 uV/°C. de esta ley depende que los cables extensores en los termopares sean de los mismos materiales que lo constituyen. 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. mientras que la otra es Tm. no son afectados por las temperaturas intermedias.e.3 LEY DE LOS CIRCUITOS HOMOGÉNEOS La cual dice que si los conductores de las termocuplas son homogéneos.m.

si las junturas del tercer metal con los conductores de la termocupla se encuentran a la misma temperatura. en tanto que la juntura del tercer metal con los otros dos metales esté a la misma temperatura. 18 .LEY DE METALES INTERMEDIOS Esta ley estipula que se puede introducir un tercer metal en el circuito sin crear errores. no se generará ninguna señal de error. Esto sucede cuando se emplea un instrumento para medir la salida de la termocupla. 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. Cuando se usan termocuplas. en ésta se indica la magnitud de la termo tensión que desarrollan algunos de ellos. Sin embargo. y los terminales de entrada son de un metal diferente (normalmente bronce o cobre) y cuando la juntura está soldada. es normalmente necesario introducir metales adicionales en el circuito. 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.

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 J T K E S MATERIALES Fe – Constantano Cu – Constantano CR -. Y a realizar estas funciones hace forzoso el contacto con el cobre “Cu” de un circuito impreso.wikipedia. sin embargo. De acuerdo a los metales empleados en la construcción de cada tipo de termocupla. é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.AL CR -. dando lugar a tratamientos electrónicos para su correcta manipulación.TEMPERATURA -190°C -200°C -190°C -100°C 0°C +170°C +371°C +1260°C +1260°C +1482°C Pt – 10%Rodium – Pt Tabla 2. hay unos tipos normalizados y de uso comercial. los cuales son difíciles de manipular. existe gran variedad en estos sensores. resultando valores en milivoltios.org/wiki/Termopar 19 .Constantano RANGO .Cuando se forma un termopar (dos metales) se puede medir la tensión generada entre los dos metales. 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.

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. ¢ .322 27.0 50uV/°C 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 ¢ . Para una termocupla tipo J.283 42.444 42.0 501. 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.0 101.000 0. 20 . es decir.0 751. Sin embargo se puede tomar como característica de transferencia el valor promedio 56uV/°C/¢ .J.0 500.050 5.000 100.tipo “J” TEMPERATURA 0.388 27.000 1.347 VTH mV ∆T = 1°C ∆V = 50uV ∆T = 1°C ∆V = 54uV ∆T = 1°C ∆V = 56uV ∆T = 1°C ∆V = 64uV 64uv/°C 56uv/°C 54Uv/°C CARCATERÍSTICA DE TRANSFERENCIA 0.J hay una desviación de 14uV. se tendrá.0 750.268 5.

Figura 6 Dimensiones Encapsulado Termocuplas 21 . Figura 5 Curva Característica de termocuplas ENCAPSULADOS PARA TERMOCUPLAS COMERCIALES Para aplicaciones dentro de los rangos normales de operación característica.En la siguiente gráfica se puede ver la relación tensión contra temperatura para los diferentes tipos de termocuplas. existe una amplia gama de termo elementos normalizados. esto dependiendo del tipo de proceso a controlar y el tiempo de respuesta.

Comercialmente se tienen tres tipos de junturas: 1. A MASA Figura 8 Encapsulado a Masa o Tierra Son empleadas en ambientes corrosivos y de altas presiones. ts = 2 segundos 22 . Tiempo de respuesta 2. pero el medio deberá ser bajo eléctrico. AISLADA 2. A MASA O TIERRA. en los que se requiera respuestas rápidas en el tiempo.0 seg. 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. 3.25mm – 1cm.5 – 5.El largo (A) del termo elemento esta normalizado a 30cm y el diámetro del tubo de protección (B) varía entre 0.

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 termoelé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 n V PCtte V TC (Tref ) V TC (Tp ) 26 .

esto a partir del voltaje medido en el extremo frío VM y la temperatura en el mismo Tref. T = a0 + a1V + a2V2 + … + aNVN Este polinomio toma el valor anteriormente convertido a voltaje. Después de realizar una medida directa de la temperatura de la juntura de referencia. Esta técnica la podemos dividir en dos métodos: 27 . VM y conociendo la función de transferencia (V/T) de la termocupla empelada es posible conocer la temperatura Tm Tc Actualmente están desarrollados y ampliamente difundidos métodos para determinar el temperatura Tc (punto caliente) en una termocupla.Bajo estas condiciones si se conocen T ref y en el punto de medición. mediante software es posible adicionar un valor de voltaje apropiado con el fin de eliminar los efectos parásitos. 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. debemos utilizar los polinomios de conversión temperatura – voltaje y voltaje – temperatura. Para hacer la compensación por software. y lo devuelve a temperatura.

Adicionar este voltaje resultado a VM. el voltaje VTc es una función de la temperatura referenciada a 0°C. 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.gov/its90/download/allcoeff.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. con el cual se obtiene el verdadero voltaje de circuito abierto a una temperatura de referencia 0°C 4. se podrá asumir que las curvas Voltaje vs 5 http://srdata. Si se asume linealidad y haciendo uso de la ecuación anterior (A). Para la termocupla elegida convertir esta temperatura en un voltaje equivalente VTe(Tref) 3. 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.tab 28 . Medir Tref 2.nist. 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.

etc. son idénticas a las curvas referenciadas a “Tref”.Temperatura. 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. 2. con referencia a 0°C. Medir la temperatura en la juntura de referencia “Tref”. Así ésta temperatura será la diferencia entre las temperaturas TTc-Tref. 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 . 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. 29 .Tref) o sea: ∑ [ ( Tc − Tref ) + Tref ) ] 3. Los pasos a seguir con éste método simplificado son los siguientes: 1. compresión. con el propósito de facilitar su procesamiento (codificación.) 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. Adicionar la temperatura Tref a éste valor.

difícilmente pueden hacer más de unas pocas muestras por segundo (modelos de 12 bits y superiores). hace que a este tipo de conversores se les conozca como conversores flash. obtenidos mediante un divisor resistivo de una misma fuente de alta estabilidad. Un circuito lógico codifica la salida de los comparadores en el formato binario deseado.Existe un variado número de conversores analógico-digitales con diferentes características tales como la de velocidad de conversión. 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. presentan una excelente linealidad y elevada precisión. pudiéndose alcanzar fácilmente 16 bits a bajo costo. Y son estas características las que harán la diferencia a la hora de elegir uno u otro tipo. Una cualidad intrínseca de estos conversores es su gran capacidad de rechazo al ruido. Sin embargo. Al aplicar una tensión a la entrada del conversor. especialmente el inducido por la red de suministro eléctrico. entre otras. 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. por las condiciones de diseño. 30 . el número de bits de la señal digital. conmutan todos los comparadores cuya tensión de referencia sea menor a la de la entrada. La gran velocidad de muestreo y el hecho de que la conversión se haga en un solo pulso de reloj. Estos conversores.

Además.6 6 http://www.pdf 31 .Figura 13. Conversor analógico digital de seguimiento. se incrementa o decrementa el valor del contador (conversor de seguimiento). los datos leídos quedan sistemáticamente por encima o por debajo de valor correcto. Según el comparador indique un valor superior o inferior.volcanesdecanarias. Cuando la señal varía más rápidamente que la velocidad del conversor.com/interna/Educacion/download/Instrumentacion /04_SISTEMAS%20DE%20CONVERSION%20ANALOGICA%20DIGITAL. este tipo de conversor tiene que invertir un tiempo considerable hasta que el contador alcanza el valor correcto. 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.

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 8 http://www.Criterios de selección de un modelo de conversor analógico digital: 1.java. Facilidad y seguridad de suministro 2. equipos y redes.500 millones de dispositivos utilizan la tecnología Java.com/es/ http://www. Precio JAVA7 Hasta la fecha. juegos. Resolución 5. impresoras. tarjetas inteligentes. entre los que encontramos teléfonos móviles y de mano. etc. la plataforma de Java ha atraído a más de 6. dispositivos médicos. Se utiliza en los principales sectores de la industria en todo el mundo y está presente en un gran número de dispositivos.5 millones de desarrolladores de software. Salida de datos serie o paralelo 6.com 32 . Velocidad de muestreo 4. sintonizadores. Señales necesarias para su operación 7. Más de 4. sistemas de navegación para automóviles. Consumo 8. cámaras web. Condiciones de operación 3.mysql.

Gracias a su tamaño. 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. MARCOMBO Ediciones Técnicas. Barcelona (España) 33 . Web 2. Con su velocidad. Las clases son por decirlo así el molde de donde salen los objetos. Enrique (2007). los microcontroladores permiten empotrar un procesador programable en diversidad de productos industriales.historia. Microcontroladores PIC. fiabilidad y facilidad de uso MySQL se ha convertido en la opción preferida para la Web. Primera Edición. 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). Cuando se habla de programación orientada a objetos hablamos de Clases. Sistema integrado para el Autoaprendizaje. 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. estas clases para mayor comodidad las escribimos en un archivo que lleva su mismo nombre. Está formada por una unidad de control 9 Mandado Pérez. Por su bajo costo y reducido consumo de energía y velocidad adaptable.0. SaaS e ISV. MICROCONTROLADORES9. 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.

entre otros. La forma como trabaja la unidad control es lo que se conoce como las diferentes arquitecturas de procesadores digitales síncronos. I2C. están la entrada y salida de datos. Puede manejar estándares como: USB. entre ellas Hardvard y Princeton. que los procesa y devuelve a la memoria según sea el caso. la cual está conformada por dos partes una unidad de memoria y unidad aritmético-lógica (ALU). UART. Los datos ingresan del exterior. se almacenan en la memoria y se van pasando de manera secuencial a la ALU.y una unidad operativa. debido a órdenes de la unidad de control. y realizar tareas como conversión análoga-digital de datos tanto entrantes como salientes. 34 . SCI. 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. También se usan en procesos de contaje y temporización. pueden operar tanto en serie como en paralelo. lo cual hace que tengan gran cantidad de terminales dedicados a este fin. Figura 14. como se puede ver en la figura 19.

y PIC18VTXX. la linealidad de la salida. Es así como se conocen las familias PIC12CXX. alta y mejorada. Microchip ofrece un tipo de PIC. De acuerdo a los requerimientos de cada aplicación. El LM 35 no requiere de ninguna calibración externa para obtener una precisión típica de ± 0. por tanto. PIC18FXX. y llenado todas las expectativas. La baja impedancia de salida. TERMISTOR LM 35 El LM 35 es un tipo de sensor de temperatura de precisión. media. Opera en el rango de temperatura comprendido entre los –55 oC a los +150 oC . número de bits a procesar y un tipo de encapsulado. 35 . gracias a su versatilidad y amplia gama. PIC17CXX. El sensor apenas sufre calentamiento: menos de 0.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. cuya tensión de salida es linealmente proporcional a la temperatura en grados Centígrados.1oC en lugar sin movimiento de aire. así como la precisa calibración inherente hacen que la interface o la circuitería de control sea especialmente simple.25oC en la temperatura de una habitación y ± 0. cubriendo así todos los flancos de los posibles usuarios. 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. los cuales han invadido los mercados mundiales. también es de anotar que son “open Source”. PIC16CXX. Cada una con un número de instrucciones en particular.75oC en el rango –55oC a +150oC. es así como los hay de gama baja. El LM 35. debido a que solo consume 60 µA de su fuente. PIC16FXX. lo cual constituye el factor detonante que lleva a su amplio uso.

25oC • Baja impedancia de salida.net.etb.10 10 http://pwp.co/SAIDPINZON/sensores.0 mV/oC • 0.08oC en un ambiente en calma • Desviación típica de ± 0.CARACTERÍSTICAS DE TRANSFERENCIA: (LM 35) • Calibrado directamente en grados Celsius (Centígrados) • Factor de escala lineal +10.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.html#LM35 36 .

que hace las veces de conversor análogo-digital y trasmisor. Esquema General SISTEMA DE ADQUISICIÓN DE DATOS Se seleccionó un rango de operación para la termocupla tipo J. se decidió usar la compensación de juntura fría por software. como software se empleó java y MySQL. Lo que lleva a usar la técnica de inserción de metal intermedio. y se construyó un sistema de adquisición de datos simple. del fabricante Microchip. ésta a su vez es sustentada en la ley de metales intermedios de termocuplas.METODOLOGÍA Para solucionar el problema planteado. Para saber la temperatura de referencia o temperatura ambiente se usó un termistor LM35 el cual también va conectado al PIC 18F4455. Para acondicionar y amplificar la señal se usó amplificador tipo PGA204. Fe-Constantano. con valores que se pueden ver en la tabla XX 37 . para realizar la conversión análoga-digital y enviar los datos al pc. una termocupla tipo J. El esquema general lo muestra la figura un Figura 15. se usó un microcontrolador de la familia PIC18F4455.

por lo cual se seleccionó un amplificador de ganancia programable PGA204. 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. Figura 16. Conexión y Amplificación Termocupla Luego la señal pasa al conversor A/D.164mV TABLA 4. que en este caso particular es el PIC18F4455. 38 . fue el rango de trabajo de los componentes de acondicionamiento y adquisición de datos. quedando 5.6mV/°C. Rango de operación Usado El criterio de selección que se tuvo en cuenta para emplear estos valores. que ya es una señal que puede leer el A/D. Uno de los inconvenientes y donde más problemas ocurren en este tipo de aplicaciones. el cual tiene dentro de sus características el acondicionamiento apropiado para termocuplas.095 a 42. configurándole una de sus entradas analógicas para su correcto uso. Como este amplificador tiene ganancia programable se seleccionó una ganancia de 100.919 0 a 25. por otro puerto analógico se conectó el sensor LM35. ya que la señal proveniente de la termocupla es muy débil en promedio 56uV/°C.Rango de Operación(°C) -200 a 750 Valor Usado (°C) Rango de Operación (mV) Valor Usado (mV) 0 a 450 -8. es en el acondicionamiento de la señal.

En el siguiente esquema se muestra todo el circuito realizado. en la figura XX se muestra la tarjeta de desarrollo que se diseñó con el software EAGLE. 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. grandes puestas a tierra. desacople de los integrados. Figura 17. las señales analógicas recorren pequeñas distancias para evitar señales parásitas. 39 . como lo son.

el cual se polariza con +vcc y entrega a la salida –vcc. 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. 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. que es un conversor DC/DC.Figura 18. mediante una conexión USB entre el PC y el PIC. para la PGA que necesita voltaje negativo se usó un integrado TC7660. Finalmente se usó la técnica de planchado para imprimir el diseño en la placa de fibra de vidrio recubierta de cobre. 40 . Como fuente de alimentación para polarizar los integrados se usó el voltaje USB que entrega el PC. se perforó y se le soldaron los componentes.

programación del PIC y el algoritmo de compensación. También se emuló una comunicación serial a través da una interfaz USB. Foto Tarjeta Adquisición de Datos SOFTWARE Se divide en.A.Figura 19. Alfaomega Grupo Editor S. 11 García Breijo Eduardo (2008). Primera Edición. 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. entre el PIC y el PC. México DF 41 . Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC. Programación del PIC Para programar el PIC se usó el “C CCS PIC Compiler” de la empresa microchip11.

esta se puede empaquetar en un archivo de extensión . estos mismos módulos los podemos copiar y utilizar en otras aplicaciones sin ningún inconveniente.Algoritmo de Compensación Como lenguaje de programación se seleccionó Java por los grandes beneficios que éste presta. Es un lenguaje orientado a objetos: esto nos permite crear programas modulares y códigos reutilizables. es decir.class que son los que ejecutan la Máquina Virtual de Java ó JVM (Java Virtual Machine) por sus iniciales en inglés. Es libre: para utilizarlo no necesitamos pagar licencias a ninguna persona o empresa.class de nuestro programa. Dentro de estos encontramos: 1. adicionalmente es uno de los más rápido. 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. Es multiplataforma: cuando realizamos una aplicación en Java.jar que es un archivo que contiene de forma comprimida todos los archivos . se crean unos archivos de extensión . podemos crear pequeños pedazos de código que hacen tareas específicas y luego podemos entrelazarlos para poder realizar tareas más complejas. 3. 2. Existen diferentes versiones de JVM’s para distintos Sistemas Operativos. 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. Para hacer más fácil el uso de la aplicación. Para darle un poco más de robustez a la aplicación. 42 .

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. 43 . Esta es la lista de clases empleadas en la aplicación: Main: Ésta clase es la principal. los paneles. NewJFrame: Es la encargada de todo el entorno gráfico. En esta clase se encuentran los siguientes elementos: JFrame: es el marco principal.Cuando desarrollamos una aplicación en Java. las gráficas y los elementos de menú que se pueden utilizar en la aplicación. 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. los botones. los campos de texto. 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. 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.

conectar: gestiona la conexión con la base de datos. la inserción. guardarDatos: ejecuta sentencias de inserción o actualización a la base de datos. setValue: establece el valor de la temperatura que muestra el termómetro en un instante dado. actualización y eliminación de datos. 44 . desconectar: gestiona la desconexión de la base de datos. Los métodos son: dataBase: el constructor de la clase.dataBase: Es quien gestiona todo lo relacionado con la base de datos tal como la conexión y la desconexión a esta. Los métodos son: jbInit: inicializa y configura la gráfica del termómetro. 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. obtenerDatos: ejecuta sentencias de consulta a la base de datos. adicionalmente hace una conversión de los datos y los envía al método Calcular de la clase Control.

en éste termómetro vamos a imprimir el valor de la temperatura luego de implementar los algoritmos de corrección. 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. 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. 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.Control: Es quien implementa los algoritmos de corrección de punta fría. En este caso particular se tienen las siguientes clases: 45 . Calcular: implementa el algoritmo de corrección de punta fría.

Diagrama de flujo del Algoritmo. lo primero que hace el programa es solicitar un nombre de usuario y una contraseña que se encuentran 46 .Figura 20. Como se puede ver en el diagrama de flujo de la Figura 22.

almacenados en la base de datos. 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. 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. Con estos valores se aplican las ecuaciones de corrección. 47 . 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. como estos datos son enviados al PC cada segundo. 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. Si estos datos son incorrectos se vuelven a solicitar hasta que se ingresen los solicitados. Hacer los cálculos para convertirlos a los valores reales sensados.

sin compensar y la referencia del LM35.Figura 21. 48 . Aplicación en ejecución Como lo muestra la figura 24 el programa muestra los valores de Temperatura medida en el en proceso compensada.

001 -0.291 63.828 24.981 80.001 -0. LM35°C Termocupla Compensada 23.3 65. compensada.3 27.023 60.828 24.828 23.8 23.086 -0.1 termómetro 49 .538 23.428 49.828 23.828 23.219 24.828 23. la de referencia del LM35 y se tomó la temperatura con un termómetro comercial.8 23.811 26.113 71.828 57.219 23.2 86 85.8 77.219 24.8 23.429 86.5 46.219 24.898 54.793 26.793 23.828 24.811 23.828 23.001 3.75 50.98 85.998 73.179 75.RESULTADOS Se tomaron muestras de temperatura en procesos estables de valores en promedio constantes y en procesos de temperatura variable.828 24.815 Termocupla sin Compensar -0. y se almacenaron los datos de la termocupla sin compensar.708 78.315 24.183 26.793 24.9 24.219 23.8 75.057 48.6 74.153 83.3 75.8 23.8 23.001 2.062 62.086 3.001 -0.793 23.8 80.8 23.828 23.001 -0.086 3.828 23.793 23.219 24.219 23. los resultados se muestran a continuación.1 25.958 52.219 23.811 26.

3 67.219 23.066 57.828 24. Gráfica Resultados temperatura contra Tiempo 50 .2 55.828 24.219 72.219 24.9 55.24.051 62.006 59.828 23.5 61 59.3 64.943 34.765 49.219 24.828 23.917 59.1 Tabla 5.828 24.88 43.42 39.929 36.828 23.474 62.238 54.828 23.219 23.828 23.9 63.7 62.331 66.651 39.42 37.9 58 57.357 70.69 34.474 61.436 35.521 68.219 23.9 71.828 23.061 47.33 56.363 43.137 65.137 41.697 31.1 69.584 45.8 58.182 58.6 66.195 32.868 66.198 71. Resultados 100 90 80 70 60 50 40 30 20 10 0 -10 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 Termocupla Compensada Termocupla sin Compensar termómetro LM35°C Figura 22.

Y finalmente para placas base de impresos es más versátil trabajar con fibra de vidrio que con baquelita tradicional. lo que facilita la construcción de los prototipos. el cual es de costos muy elevados. lo cual constituye una gran ventaja al momento de medir la temperatura en procesos industriales.  Se pudo notar que en situaciones donde la temperatura de proceso es menor que la temperatura ambiente se puede presentar ligeras perturbaciones. trae muchas facilidades. de ahí que se necesite una mayor amplificación en este punto. ya que es más resistente y de mejor textura. es indispensable tener en cuenta el acondicionamiento de las señales.CONCLUSIONES  Durante el proceso se observó que para la construcción de prototipos de circuitos electrónicos.  Se corroboró que en el método de compensación por software se alcanza un de error de 1. gráficas en tiempo real y posibilidad de consultar los datos remotamente.54°C. Razón por la cual se 51 . resultados históricos. y la distribución correcta de los componentes del montaje. Además como se manejan los datos desde una terminal de cómputo. se cuenta con el valor agregado de no adquirir licencias de software industrial. ya que en sus librerías tiene la mayoría de los componentes de uso común. lo que hace que se requiera mayor acondicionamiento y más procesamiento de cómputo. ya que la señal de voltaje entregada por la termocupla es muy cercana a cero y muy débil. se obtienen múltiples beneficios como. reduciéndose así los gastos del proyecto.1% dentro del rango de medida seleccionado.  Al implementar este tipo de algoritmos en un programa libre como JAVA. También se notó que para el diseño de los impresos trabajar con la herramienta EAGLE. que equivale a un porcentaje 0.

hacer promedios. 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 llevar registros. lo cual permitiría tener un control más exacto del proceso que se está monitoreando. comparar. con estos valores es posible realizar la compensación de manera simultánea.recomienda usar esta técnica en procesos de calentamiento donde la temperatura sea mayor que la del ambiente. 52 . sumatorias. y donde se necesite almacenar los datos para su posterior uso.  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.  Finalmente se concluye que el método de compensación de punta fría para termocuplas mediante software. se pueden manipular los datos para.

TECNUN Ediciones.F.co/SAIDPINZON/sensores. [2] Creus Solé. Notas sobre termocuplas para el curso de Acondicionamiento de Señales. Instrumentación industrial.A. Barcelona (España) WEBGRAFÍA [1] http://es. México D. Alfaomega [3] García Breijo Eduardo (2008).java.html#LM35 53 .volcanesdecanarias. MARCOMBO Ediciones Técnicas.com/es/ [5] http://www. Termodinámica Básica. México DF [4] Gómez-Acebo. Alfaomega Grupo Editor S.tab [3]http://www. Sistema integrado para el Autoaprendizaje. Primera Edición. Capítulo 1.com/interna/Educacion/download/Instrumentacio n/04_SISTEMAS%20DE%20CONVERSION%20ANALOGICA%20DIGITAL. Universidad de Antioquia.nist. [5] Mandado Pérez.pdf [4] http://www.BIBLIOGRAFÍA [1] Carrillo Orlando (2010). Microcontroladores PIC.mysql.etb.. Universidad de Navarra.gov/its90/download/allcoeff.com [6] http://pwp. Capitulo 6. Antonio (1998).org/wiki/Termopar [2] http://srdata. Primera Edición. Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC. Enrique (2007). Tomás (2001). Sexta edición.net.wikipedia.

ÍNDICE DE ANEXOS TABLAS DE POLINOMIOS Y COEFICIENTES NIST PROGRAMACIÓN DEL PIC ALGORITMO EN JAVA 59 56 55 54 .

E.TABLAS DE POLINOMIOS Y COEFICIENTES NIST Reference Function Coefficients Definitions: The general form for the emf.118343200000x10-3 a2 = 0. there is an additional term to account for a magnetic ordering effect: where e is the natural logarithm constant. For type K thermocouples above 0 °C.0. The constants a0 . and a2 have the values: a0 = 0.118597600000x100 a1 = . and t90 is in °C. as a function of t90 for all except type K thermocouples is: where E is in mV and t90 is in °C.126968600000x103 55 . E is in mV. a1 .

usbdiv.cpudiv1.PROGRAMACIÓN DEL PIC include <18f4455. enviar=1.nowdt. } else{ contador++. #INT_RTCC void tiempo(){ if(contador==20){ contador=0.nodebug.h> int contador=0.NOPROTECT. int datof=0.nomclr #use delay(clock=48000000) // #use standard_io(a) #define usb_con_sense_pin pin_D7 #include <usb_cdc.pll5.nolvp. int1 enviar=0. } 56 . //int dato=0.vregen. int i=0. int dato2=0.h> #device adc=8 #fuses Hspll. int16 dato1=0.

SETUP_COUNTERS(RTCC_INTERNAL.} void main(){ SET_TRIS_A(0XFF). ENABLE_INTERRUPTS(GLOBAL). 57 . SETUP_ADC_PORTS(AN0_TO_AN1|VSS_VREF). SET_TRIS_D(0b10111111).RTCC_DIV_2 ). do{ usb_task(). USB_INIT(). USB_CDC_INIT(). //} //datof=(int)(dato1>>2). SETUP_ADC(ADC_CLOCK_DIV_16). //set_adc_channel((dato&0x07)). if(usb_enumerated()){ //if( usb_cdc_kbhit()==1){ //dato= usb_cdc_getc(). SET_TRIS_B(0X00). set_adc_channel(0). //usb_cdc_putc(read_adc()). // SET_TRIS_C(0X00). ENABLE_INTERRUPTS(INT_RTCC).

dato1 = 0. usb_cdc_putc(dato2). } } } while(true). delay_ms(1). usb_cdc_putc(datof).i<=3.if(enviar==1){ enviar = 0. set_adc_channel(0). } 58 . for(i=0. dato2=read_adc().i++){ dato1=dato1+read_adc(). delay_us(10). delay_ms(1). delay_ms(1). set_adc_channel(1). } datof=(int)(dato1>>2).

comm. static OutputStream salida. import java.comm. /** * Realiza la conexión mediante el puerto serial entre el sistema embebido y el PC * @author Jorge González * @author Obeymar Santana * @version 1.ALGORITMO EN JAVA package correctorpf. public InputStream entrada.InputStream. import javax.comm. import javax.0 */ public class serialIO implements SerialPortEventListener { public Control controlar. import java. import java.NoSuchPortException.SerialPortEvent.comm. import javax.OutputStream.SerialPortEventListener.SerialPort.io. import javax. 59 .util.PortInUseException.CommPortIdentifier. static CommPortIdentifier idPort.io.comm. import javax. import javax. import java.Enumeration.io.util.TooManyListenersException.IOException. static SerialPort sPort.comm. import java.

STOPBITS_1.setInputBufferSize(3). sPort. sPort. public int Contador = 0.DATABITS_8. public double TLM35. sPort.getOutputStream(). 4000).static String datos.notifyOnDataAvailable(true). try { salida = sPort.PARITY_NONE). sPort.getInputStream(). try { sPort.setSerialPortParams(19200. static Enumeration enumpuertos. sPort.FLOWCONTROL_NONE).open("Puerto COM11". public serialIO(Control controlador) { controlar = controlador. entrada = sPort. sPort.setFlowControlMode(sPort. sPort.getPortIdentifier("COM1").addEventListener(this). public double VTermoCupla. } catch (TooManyListenersException e) { } } catch (IOException e) { 60 . try { idPort = CommPortIdentifier. try { sPort = (SerialPort) idPort.

getNewValue()) { 61 .println("ERROR de I/O" + e).System.err.getEventType()) { case SerialPortEvent. } catch (Exception e) { System.print("CD pasa a "). byte[] bufferLectura = new byte[8].BI: case SerialPortEvent.out.println("ERROR al abrir 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.PE: case SerialPortEvent. } } catch (PortInUseException e) { System.err.err. if (event.FE: case SerialPortEvent.err. } } catch (NoSuchPortException e) { System.println("ERROR al identificar puerto " + e).println("Error al abrir el puerto! STATUS: " + e).OE: case SerialPortEvent. switch (event.CD: System.

if (event.out.out.out.println("falso"). } else { System.println("falso"). if (event.getNewValue()) { System. case SerialPortEvent.getNewValue()) { System.println("falso").out.DSR: System.print("DSR pasa a ").println("cierto").System.out.println("falso").out.out. case SerialPortEvent.print("RI pasa a ").RI: System.print("CTS pasa a "). } break.out.CTS: System.out.println("cierto"). case SerialPortEvent.println("cierto"). if (event. } break.println("cierto").out. } else { System. } else { System. } break. } else { System.out.getNewValue()) { System. } break. 62 .

0) / 256.charAt(0).read(bufferLectura).println("Bytes: " + numBytes). TLM35 = (TLM35 * 1. } String DatosLeidos = new String(bufferLectura). System. case SerialPortEvent.DATA_AVAILABLE: // System.println("Datos: " + DatosLeidos). if (numBytes == 2) { Contador = 0. = = VTermoCupla TLM35 = arrayDatos[0]. arrayDatos = new char[2].println("Datos disponibles"). 63 . arrayDatos[0] DatosLeidos. break.out.out. try { while (entrada. char arrayDatos[].OUTPUT_BUFFER_EMPTY: System.out.println("Buffer vacio"). VTermoCupla = (VTermoCupla * 1. // // System.out. VTermoCupla = VTermoCupla / 100.available() > 0) { numBytes = entrada. = arrayDatos[1].charAt(1).case SerialPortEvent. arrayDatos[1] DatosLeidos.0) / 256.

out.0) / 256. TLM35 = arrayDatos[0]. if (Contador == 1) { arrayDatos[0] = DatosLeidos. VTermoCupla = VTermoCupla / 100. VTermoCupla = arrayDatos[0]. TLM35). controlar. VTermoCupla = (VTermoCupla * 1. TLM35). } catch (Exception e) { 64 .Calcular(VTermoCupla. } } } catch (IOException e) { System. TLM35 = TLM35 * 100. } else if (Contador == 2) { arrayDatos[0] = DatosLeidos. } else if (numBytes == 1) { Contador++.0) / 256.Calcular(VTermoCupla. Contador = 0.charAt(0).TLM35 = TLM35 * 100. controlar. TLM35 = (TLM35 * 1.println("Error IO durante la lectura: " + e).charAt(0).

} } /** * 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).out.println(datos). } catch (Exception e) { System. // salida.println("Error durante la escritura: " + e).out.flush().println("Error IO durante la escritura: " + e). } break.out.println("Error durante la lectura: " + e).System.getBytes()). salida. } catch (IOException e) { System. } } } 65 . System.write(datos.out.

final double C7 = -0. /** *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. final double C3 = -0.170529583370E-12. 66 .RefineryUtilities.ui.Millisecond. final double C8 = 0. import javax.JLabel.125383953360E-18.856810657200E-07. final double C5 = -0.sql. import org. final double C2 = 0.304758369300E-04. import org.156317256970E-22.data.package correctorpf.209480906970E-15. final double C4 = 0.0. final double C1 = 0. final double C6 = 0.jfree. final double A1 = 1.503811878150E-01. final double A0 = 0.SQLException.swing.time.978425E+01.132281952950E-09.0. import java.jfree.

67 . final double A6 = -5. NewJFrame panel. T_TOTAL.pack(). 0). termo_s. final double A7 = 5.585153E-06.099890E-10.036969E-02. double temperaturaS = 0. Termometro termo_s. serie = new serieTiempo("Gráfica de temperaturas contra el tiempo").001204E-01.final double A2 = -2.positionFrameOnScreen(serie. compensada").thermo1. /** * Constructor de la clase * @param panel */ public Control(NewJFrame mainPanel) { termo_c = new Termometro(). panel = mainPanel. T_MEDIDA. final double A4 = -2.addSubtitle("Temp. sin compensar"). Termometro termo_c. int contadorSQL = 0. RefineryUtilities. double V_LM.344285E-08.549687E-04. int acumuladorTemp = 0. double temperaturaC = 0. termo_c. final double A5 = 3. 0. V_TOTAL.addSubtitle("Temp. final double A3 = 1. serieTiempo serie.thermo1. termo_s = new Termometro(). serie.

setLayout(graficaLayout). jLabel1.addContainerGap().jdesktop.addContainerGap())).createParallelGroup(org.addContainerGap().Font("BankGothic Md BT". graficaLayout.ad d(graficaLayout.GroupLayout. /** * Termómetro compensado */ org. /** 68 .setOpaque(true).setHorizontalGroup( graficaLayout.layout.setVisible(true).createSequentialGroup().setText("Panel de Control del Sistema Embebido").grafica).layout. panel.Color(255.createSequentialGroup().jdesktop.GroupLayout. 153.setVerticalGroup( graficaLayout. org.jdesktop.grafica.addCo ntainerGap(183. JLabel jLabel1 = new JLabel().layout. jLabel1. jLabel1.swing. 255)). 255. graficaLayout. 148.LEADING).ad d(graficaLayout.// serie.awt.jdesktop.MAX_VALUE))). Short.awt.layout.layout.SwingConstants. jLabel1.setHorizontalAlignment(javax.CENTER).setFont(new java.DEFAULT_SIZE.add(termo_c).createParallelGroup(org. jLabel1.Color(102.setForeground(new java.GroupLayout(panel. Short.setBackground(new java. jLabel1.GroupLayout. 1. 255)).LEADING).add(termo_c.MAX_VALUE). 12)).jdesktop.awt.GroupLayout graficaLayout = new org.

setHorizontalGroup( grafica1Layout.jdesktop.add(termo_s).MAX_VALUE).a dd(grafica1Layout.addContainerGap().setVisible(true).LEADING).grafica.DEFAULT_SIZE.layout. panel.jdesktop.createParallelGroup(org.grafica1).jdesktop.createParallelGroup(org.createSequentialGroup().setVisible(true). serialIO serial = new serialIO(this).addContainerGap())).GroupLayout(panel.createSequentialGroup().layout.jdesktop.a dd(grafica1Layout. org. grafica1Layout.LEADING). panel. Short.grafica1. grafica1Layout.add(termo_s. 148.layout.setVerticalGroup( grafica1Layout.layout.setLayout(grafica1Layout).GroupLayout.GroupLayout grafica1Layout = new org.GroupLayout. panel.GroupLayout.jdesktop.addContainerGap(). Short.* Termómetro sin compensar */ org.add ContainerGap(183.layout.MAX_VALUE))).grafica1. } /** * 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 .

if (acumuladorTemp == 4) { acumuladorTemp = 0.pow(V_TOTAL. 3) + A4 * Math. serie.pow(T_LM. temperaturaC += T_TOTAL. V_TOTAL = V_TOTAL * 1E+03. serie. 3) + A4 * Math.setText(Vt + " . termo_s. temperaturaS). acumuladorTemp++. temperaturaS = temperaturaS / 4. 4). temperaturaC = temperaturaC / 4. 2) + A3 * Math.pow(V_TOTAL. V_TOTAL = (V_LM * 1E-03) + Vt. T_MEDIDA = A0 + A1 * V_T_TEMP + A2 * Math.*/ public void Calcular(double Vt.pow(V_T_TEMP. 2) + C3 * Math. 3) + C4 * Math. temperaturaS += T_MEDIDA. V_LM = C0 + C1 * T_LM + C2 * Math. 4).add(new Millisecond().setValue(temperaturaC).pow(T_LM. 70 .add(new Millisecond(). 2) + A3 * Math.pow(T_LM. V_T_TEMP = Vt * 1E+03. double T_LM) { double V_T_TEMP. termo_c.pow(V_TOTAL. temperaturaC).setValue(temperaturaS).datoSerial.series2. T_TOTAL = A0 + A1 * V_TOTAL + A2 * Math.series1." + T_LM).pow(V_T_TEMP.pow(V_TOTAL. 4). panel.

} catch (SQLException e) { } } } } 71 .desconectar(). temp_calculada. if (contadorSQL == 10) { contadorSQL = 0. dataBase mysql = new dataBase(). fecha) VALUES ('" + Vt + "'. try { mysql. } contadorSQL++. mysql. now())"). '" + T_MEDIDA + "'.guardarDatos("INSERT INTO historial (v_termocupla. '" + T_TOTAL + "'. mysql. temp_medida. '" + T_LM + "'. temperaturaS = 0.temperaturaC = 0. t_lm35.conectar().

general.BorderLayout.data).DecimalFormat.text. import java.chart.JThermometer. import java.DefaultValueDataset.jfree. import java. import org.chart.jfree.JPanel. import javax.Color.ChartPanel. /** * Trama del medidor */ private MeterPlot meterplot = new MeterPlot(this. import org. import org.data.jfree. /** * * @author Jorge González * @author Obeymar Santana */ public class Termometro extends JPanel { /** * Conjunto de datos */ private DefaultValueDataset data = new DefaultValueDataset(0.jfree.awt.JFreeChart.plot. import org.swing. import org. 72 .chart.0).jfree.awt.MeterPlot.ackage correctorpf.plot.chart.

/** * Constructor de la clase */ public Termometro() { 73 . this./** * Gráfica del medidor */ private JFreeChart meterchart = new JFreeChart("Termómetro". JFreeChart. /** * Termómetro 1 */ public JThermometer thermo1 = new JThermometer(). /** * Panel del medidor */ private ChartPanel panelMeter = new ChartPanel(this. false).meterplot. /** * Diseño del borde */ private BorderLayout borderLayout1 = new BorderLayout().meterchart).DEFAULT_TITLE_FONT. /** * Panel 1 */ private JPanel jpanel1 = new JPanel().

setValue(0. 500.borderLayout1).0.thermo1.setSubrangeInfo(2. this. 500.setSubrangeInfo(3.0.0). this. 300.0. this.Exception */ void jbInit() throws Exception { this. 000. 500.0.0. 200.setFollowDataInSubranges(true). 300.0.0).setSubrangeInfo(1.setSubrangeInfo(0.0.jpanel1.jpanel1. this. add(this.0. this.jpanel1.thermo1.printStackTrace(). this. 400. // this. this.setLayout(this.setSubrangeInfo(4.0).try { jbInit().setForeground(Color. 400.thermo1. 500. this.add(this. BorderLayout. null). 0. this.thermo1.0).setValueFormat(new DecimalFormat("0. this.thermo1. 0.0. 100.setOutlinePaint(null).thermo1.0. 500.setRange(0. this.lang.0")). 500.addSubtitle("Temperatura Compensada").thermo1. } 74 .0. 0.thermo1. this.CENTER).0).thermo1.0.thermo1. 0.thermo1. 200. this.thermo1.thermo1.thermo1.setShowValueLines(true).setUnits(2).thermo1.0).0. } catch (Exception e) { e. this.0. } } /** * Inisializa la clase * @throws java. 500.0).0.BLUE). 100. 0.0.

printStackTrace().getValue().data.doubleValue().thermo1. } catch (Exception ex) { ex.setValue(value). } } } 75 . if (this.println(e.data.data.getValue() != null) { newValue += this. } this./** * Marca la temperatura del termómetro dado * @param value */ public void setValue(final double value) { try { this. } } /** * Marcar el valor de medida * @param value */ public void setMeterValue(final double value) { try { double newValue = value.getMessage()). } catch (Exception e) { System.setValue(new Double(newValue)).err.

Sign up to vote on this title
UsefulNot useful