J

Cerrar

"

CATEGORIAs

Ver Categorias

H

Cerrar

MLX90614 Sensor Temperatura y Usos

Disponibles: en nuestra tienda 馃榾

Los MLX90614 forman una familia de term贸metros capaces de determinar la temperatura de un objeto a distancia, sin estar en contacto directo con 茅l, midiendo la radiaci贸n infrarroja que emite.

Principio de funcionamiento de los term贸metros por infrarrojos

La temperatura de un objeto (o de un l铆quido) se puede estimar conociendo su potencia emisiva, ya que se relaciona con ella seg煤n formula la聽ley de Stefan-Boltzmann. Aunque la radiaci贸n se puede producir en un rango amplio de longitudes de onda, el pico de valor de los rangos de temperatura que m谩s com煤nmente se desean monitorizar se encuentra en la zona del聽espectro聽que corresponde a la聽radiaci贸n infrarroja聽(es posible calcularla por la聽ley de desplazamiento de Wien)

Excepto a temperaturas muy altas, medir la luz emitida por un objeto y determinar su temperatura por el color de esta luz (la intensidad en cada longitud de onda) no es muy eficiente,聽es m谩s 贸ptimo atender solamente a la parte infrarroja, es decir, ignorar, filtr谩ndola, la radiaci贸n de menores longitudes de onda.

Aunque ser铆a posible, tampoco es suficientemente eficaz medir la radiaci贸n luminosa como lo hacen un聽fototransistor聽o un聽fotodiodo, por lo que estos dispositivos se suelen aplicar solamente a la detecci贸n de fuentes de calor pero no a la medici贸n de la temperatura.

En las condiciones explicadas,聽la forma que se ha demostrado m谩s eficaz para determinar la temperatura midiendo la radiaci贸n infrarroja es por medio de una聽termopila聽sobre la que se concentra dicha radiaci贸n una vez que ha sido filtrada.

La聽termopila聽est谩 formada por una bater铆a de聽termopares聽conectados entre ellos, normalmente en serie. El principio de funcionamiento de la聽termopila聽es, por tanto, el mismo que el del聽termopar,聽calculan la temperatura considerando la聽FEM聽generada聽(efecto Seebeck o efecto termoel茅ctrico).

Para aprovechar el m谩ximo de radiaci贸n, las聽termopilas聽se disponen sobre sobre superficies negras, que absorben toda la radiaci贸n, y se construyen formando una zona caliente, expuesta a la fuente de calor cuya temperatura se mide, y una fr铆a posterior que potencie el聽efecto Peltier.

Para que la estimaci贸n de la temperatura objetivo sea correcta, los term贸metros basados en聽termopilas, como los basados en聽termopares,聽necesitan compensar la medida considerando la temperatura ambiente. Este tipo de聽circuito integrado聽IC聽suelen incorporar otro term贸metro, frecuentemente聽termistores聽o transistores bipolares que aprovechen el efecto 芦banda prohibida禄, adem谩s de circuiter铆a para amplificar y procesar la se帽al (de muy baja tensi贸n) entregada por la聽termopila.

Caracter铆sticas de los term贸metros de infrarrojos MLX90614

Los聽circuito integrado聽IC聽de la familia MLX90614 comparten formato (TO-39), funcionamiento y la mayor铆a de las caracter铆sticas. La siguiente lista explica las diferencias de los distintos modelos.

Diferencias entre los modelos de MLX90614
  • La聽temperatura m谩xima聽en la serie MLX90614ESFxxx es de 85聽掳C y en la serie MLX90614KSFxxx de 125聽掳C

  • La聽alimentaci贸n聽de la serie MLX90614xSFAxx es de 5聽V y la alimentaci贸n de las series MLX90614xSFBxx y MLX90614xSFDxx es de 3聽V

  • Solamente la serie MLX90614xSFDxx tiene聽precisi贸n para uso m茅dico

  • El聽n煤mero de聽termopilas聽con las que se determina la temperatura var铆a. En la serie MLX90614xSFxAx dispone de una聽termopila聽(una zona), la serie MLX90614xSFxAx tiene dos聽termopilas聽(dos zonas) y la serie MLX90614xSFxCx dispone adem谩s de compensaci贸n del gradiente

  • El campo de visi贸n聽(FOV)聽de la lente de los MLX90614 tiene diferentes 谩ngulos dependiendo de la serie

    • MLX90614xSFxxA聽70掳
    • MLX90614xSFxxC聽35掳
    • MLX90614xSFxxH聽12掳
    • MLX90614xSFxxF聽10掳
    • MLX90614xSFxxI聽聽5掳
  • La serie MLX90614xSFxxH聽dispone de una聽lente refractiva

Caracter铆sticas comunes de los MLX90614

La precisi贸n de los MLX90614 depende principalmente del rango de temperatura. Entre 0聽掳C y 50聽掳C de temperatura ambiente y 0聽掳C y 60聽掳C de temperatura objetivo, el margen de error es de 卤0.5聽掳C y aumenta progresivamente hasta llegar a los 卤4聽掳C en las condiciones m谩s extremas: una temperatura ambiente superior a 100聽掳C y una temperatura objetivo superior a 120聽掳C. Las temperaturas m谩s bajas producen desviaciones algo menores, hasta 卤3聽掳C por debajo de cero tanto en la temperatura ambiente como en la temperatura del objeto monitorizado.

La聽versi贸n m茅dica聽del MLX90614, la serie MLX90614xSFDxx tiene, en un rango de temperatura ambiente entre 0聽掳C y 50聽掳C, una precisi贸n de 卤0.2聽掳C adem谩s de estar dise帽ado para se alimentado f谩cilmente con una bater铆a (3聽V), m谩s adecuado para este tipo de uso.

En menor medida, la precisi贸n tambi茅n depender谩 de lo centrado que est茅 el objetivo en el聽FOV聽del MLX90614. Aunque la tensi贸n tambi茅n afecta a la medida de la temperatura, como se conoce, se puede corregir f谩cilmente.

El聽gestiona las comunicaciones utilizando el聽bus聽SMB聽(SMBus), un subconjunto del聽bus聽I2C聽al que, a los efectos de implementaci贸n y funcionamiento que interesan este art铆culo, se puede equiparar. Trabajando en este modo (que est谩 configurado por defecto) se obtiene una temperatura expresada por dos bytes con una resoluci贸n num茅rica de 0.02聽掳C

Opcionalmente, en lugar de leer los registros de temperatura del MLX90614, tambi茅n puede realizarse una聽lectura continua de la temperatura en formato聽PWM聽con una resoluci贸n de 10聽bits; 0.14聽掳C en un rango de temperatura entre -20聽掳C y 120聽掳C.

Implementaci贸n hardware del MLX90614

Como la familia de term贸metros sin contacto MLX90614 incorpora todo lo necesario para conectarse al sistema que lo explota, su implementaci贸n hardware es muy sencilla, solamente necesita los componentes pasivos que acompa帽en al bus que se utilice.

Adem谩s de su inclusi贸n en circuitos microcontrolados, los que interesan a este art铆culo, los term贸metros de infrarrojos MLX90614 est谩n bien preparados para utilizarse sin programaci贸n, normalmente como termostatos que pueden configurarse previamente utilizando la聽EEPROM聽interna que incorporan

B谩sicamente hay dos tipos de montajes con los que se pueden utilizar los sensores de temperatura MLX90614 control谩ndolos desde un microcontrolador: accediendo cuando sea necesario a sus registros de temperatura por聽SMBus聽/聽bus聽I2C聽o realizando una lectura continua de la temperatura por聽PWM.

Al circuito de aplicaci贸n para usar un MLX90614 con el聽bus聽I2C聽del esquema del ejemplo anterior habr铆a que a帽adir los condensadores que conectan ambas l铆neas a masa para 芦terminar禄 el bus (para filtrar las frecuencias m谩s altas que la de la se帽al) y opcionalmente sustituir por聽fuentes de corriente聽las resistencias聽pull-up.

La conexi贸n para la lectura de la temperatura por聽PWM聽es a煤n m谩s sencilla, ya que solamente necesita la l铆nea que soporta el pulso modulado y que conecta el term贸metro MLX90614 con el聽MCU.

Como puede verse en el siguiente diagrama, que muestra un circuito de aplicaci贸n de ejemplo, en el que el MLX90614 se comunica por聽PWM, tambi茅n debe conectarse聽VZ/SCL聽a la alimentaci贸n (VCC).

Implementaci贸n software del MLX90614

Utilizando聽SMBus聽o聽I2C, frente a la lectura por聽PWM, la explotaci贸n del term贸metro por infrarrojos MLX90614 se realiza utilizando una memoria聽memoria聽EEPROM聽en la que se almacena principalmente la聽configuraci贸n聽y una聽memoria聽RAM, de solo lectura para el usuario, en la que el dispositivo聽almacena los diferentes valores de temperatura聽obtenidos.

Por su dise帽o hardware compacto, el MLX90614 no dispone de patillaje con el que establecer una direcci贸n (o parte de ella) en el bus. En su lugar,聽la direcci贸n del MLX90614 se almacena en la memoria聽EEPROM, concretamente en la direcci贸n聽0B00001110聽(0x0E) de esta memoria. La direcci贸n por defecto del MLX90614 en el bus es聽0B01011010聽(0x5A). Para poder utilizar varios term贸metros MLX90614 en el mismo bus es necesario primero cambiar su direcci贸n almacen谩ndola en la聽EEPROM聽y despu茅s resetear el dispositivo o, para las series de 5聽V, retirar la alimentaci贸n antes de usarlos con la nueva direcci贸n.

Conforme al protocolo definido para el聽bus聽SMB, el sensor de temperatura MLX90614聽env铆a a cada lectura y espera de cada escritura que se a帽ada a los datos un c贸digo de verificaci贸nPEC聽que permite comprobar que la informaci贸n transmitida es correcta. Como en otras ocasiones, buscando que el c贸digo de ejemplo de aplicaci贸n se entienda por la mayor铆a de lectores, se utiliza聽Arduino聽y su librer铆a聽Wire聽para las comunicaciones聽I2C.

Como esta librer铆a, por trabajar a alto nivel, oculta parte de la trama聽I2C, si se decide verificar que los datos recibidos son correctos deber谩 calcularse 芦manualmente禄 a帽adiendo, cuando corresponda, por ejemplo, los bytes聽SA_W聽y聽SA_R, transparentes para el usuario, adem谩s de las 贸rdenes y los datos enviados, de los que el usuario s铆 es consciente.

El m茅todo de c谩lculo del聽CRC8 que se utiliza con el bus聽SMB聽para obtener el聽PEC聽utiliza un desarrollo polin贸mico de grado 8, que le da nombre, con la forma:聽C(x)=x8+x2+x1+x0聽que se representa con el valor binario聽0B100000111.


Como se ve en el ejemplo anterior, el problema de este algoritmo puede ser el tiempo de c谩lculo que consume. Si el uso del sensor de temperatura MLX90614 requiere optimizarlo, se puede utilizar una聽tabla de b煤squeda (LuT). Para los siguientes ejemplos se utiliza esta聽funci贸n de c谩lculo del聽PEC聽con el algoritmo CRC-8 del聽SMBus, dado que los tiempos de acceso ser谩n m谩s largos que el tiempo de c谩lculo.

Lectura de la temperatura del MLX90614 por I2C

Las temperaturas calculadas por el MLX90614 se almacenan en la memoria聽RAM. La primera聽temperatura del objetivo en la direcci贸n聽0x07, la segunda, si el modelo de la familia MLX90614 tiene dos聽termopilas, en la聽0x08聽y la聽temperatura ambiente en la聽0x06.

El valor de la temperatura se expresa como un entero de 16聽bits que representa los incrementos de 0,2聽掳C empezando en el聽cero absoluto聽(鈭273,15聽掳C). Para calcular la temperatura, por tanto, habr谩 que multiplicar por 0,2 el valor que devuelve el MLX90614 y restarle 鈭273,15 lo que resulta en un valor expresado en 掳C.

Como en otras ocasiones, para no complicar inicialmente el c贸digo, no se incluye un tiempo de espera m谩ximo para la recepci贸n de los datos que el MLX90614 enviar谩 por聽I2C. Pese a esa omisi贸n, lo m谩s probable es que el programa funcione sin problemas

El c贸digo de lectura de temperatura del ejemplo anterior se puede generalizar y disponer en funciones para reutilizarlo en la lectura de ambas聽termopilas聽y de la temperatura ambiente. Como el c谩lculo sobre la temperatura para expresarla en 掳C y ya se ha visto c贸mo calcular el valor del聽PEC聽con el algoritmo del聽CRC8 del聽bus聽SMB, solamente queda separar el c贸digo que lee la memoria聽RAM.

En la funci贸n para la lectura de la聽RAM聽del c贸digo anterior ya聽se implementa un tiempo de espera m谩ximo聽(en las l铆neas 7, 8, 13 y 14) con el que detener la ejecuci贸n hasta la llegada de los datos pero sin bloquear indefinidamente el programa.

El c贸digo de abajo es un ejemplo de uso de la funci贸n anterior en el que se leen los tres valores de temperatura del MLX90614.聽Se ha utilizado el valor cero como c贸digo de temperatura incorrecta聽(corresponder铆a al聽cero absoluto, que el term贸metro MLX90614 no es capaz de medir). Si el dispositivo no dispone de dos聽termopilas聽el segundo valor de temperatura objetivo aparecer谩 como incorrecta.

Tanto el ejemplo como los dos documentos de las funciones deben estar (en este caso) en la misma carpeta. Para hacer pruebas con un dispositivo f铆sico, se pueden聽descargar el ejemplo y las funciones de gesti贸n del term贸metro de infrarrojos MLX90614.

Acceder a la EEPROM del MLX90614

Como dec铆a al principio, el sensor de temperatura MLX90614 utiliza una memoria聽EEPROM聽para almacenar la configuraci贸n; par谩metros como la correcci贸n de la聽emisividad, el periodo del聽PWM聽o las temperaturas m谩xima y m铆nima. En la direcci贸n聽0x0E聽de la聽EEPROM聽se almacena el byte m谩s significativo de la direcci贸n en el聽bus聽SMB聽o en el聽I2C.

Para acceder a la memoria聽EEPROM聽se usa como orden su direcci贸n como en el caso de la聽RAM, estableciendo adem谩s el bit 5 a nivel alto. Por ejemplo, para acceder a leer o escribir la direcci贸n聽0x04聽(que contiene el coeficiente de correcci贸n de la聽emisividad) habr铆a que usar como comando聽0x24聽(0B00000100|0B00100000聽en binario o聽0x04|0x20聽en hexadecimal).聽.

En el siguiente c贸digo se muestra una funci贸n de lectura de la memoria聽EEPROM聽del term贸metro MLX90614. Aunque esta funci贸n se encarga de la obtenci贸n del c贸digo de la orden a partir de la direcci贸n de la memoria, se puede conseguir lo mismo con la funci贸n de lectura de la聽RAM聽si se definen las direcciones de los registros de la聽EEPROM聽a帽adi茅ndoles聽0x20, en cualquier caso, tambi茅n puedes聽descargar aqu铆 la funci贸n de lectura de la聽EEPROM聽si adem谩s de como ejemplo te parece 煤til.

El c贸digo de abajo muestra c贸mo probar la funci贸n del ejemplo anterior. Para usarla se accede al valor de la temperatura m铆nima con la que se calcula el valor de temperatura cuando se lee usando聽PWM, que tiene diferente resoluci贸n al de la memoria del MLX90614.

La funci贸n del siguiente c贸digo de ejemplo permite grabar un valor de 16 bits en un registro de la聽EEPROM聽del term贸metro. En la p谩gina 9 de la聽hoja de datos del MLX90614聽del fabricante se indica que es necesario borrar (escribiendo el valor cero) antes de grabar el valor definitivo en la聽EEPROM聽y que hay que esperar al menos 5聽ms despu茅s de grabar o borrar la聽EEPROM.

En el siguiente ejemplo se utilizan las funciones de lectura y escritura en la聽EEPROM.

En el siguiente enlace se puede聽descargar el c贸digo de las funciones de lectura y escritura de la聽EEPROM聽y el ejemplo, pero recuerda que es posible ahorrar unos bytes usando la funci贸n de lectura de la聽RAM聽y expresando las direcciones de los registros de la聽EEPROM聽a帽adiendo聽0x20. Adem谩s de no ser necesaria una funci贸n diferente para leer cada tipo de memoria, la funci贸n de escritura en la聽EEPROM聽ya no necesitar谩 reconvertir las direcciones con聽direccion_eeprom|=0x20;聽y deber谩 suprimirse.

Usar varios MLX90614 en el mismo bus SMB o I2C

Como el MLX90614 usa la聽EEPROM聽tambi茅n para almacenar la direcci贸n del bus (no dispone de patillas para modificar la direcci贸n), es necesario cambiar este valor (borrarlo y almacenar uno nuevo) para poder usar varios term贸metros MLX90614 en el mismo bus.

Con el m茅todo que ilustra el c贸digo del ejemplo anterior (la funci贸n para grabar en la聽EEPROM) es muy sencillo cambiar la direcci贸n en el bus del MLX90614, sin embargo no es frecuente hacerlo en dise帽os para tiradas grandes, donde suele se suele recurrir a hardware para conmutar entre uno y otro, ya que, hacerlo por software, implicar铆a cierto posprocesado manual para cambiar las direcciones de algunos de los dispositivos y disponerlos posteriormente en el circuito.

0
    0
    Tu carrito
    Tu carrito est谩 vac铆oRegresar