Вы находитесь на странице: 1из 13

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS

División de Electrónica y Computación


Departamento de Electrónica

ALUMNO: GALLEGOS BENITEZ ARATH JEAN PAUL

CODIGO: 213003998

MATERIA: SEMINARIO DE SOLUCION DE PROBLEMAS DE


SENSORES Y ACONDICIONAMIENTO DE SEÑALES

MAESTRO: GONZALEZ BECERRA ADRIAN

SECCION: D04

PRACTICA: 10 SENSORES INTELIGENTES


Objetivo

El propósito de esta práctica es monitorear la distribución de temperatura en una placa


metálica en tiempo real (sensar cada segundo).

Marco Teórico

Los DHT11 y DHT22 se componen de un sensor capacitivo para medir la humedad y de


un termistor.

La principal diferencia entre ambos es que el ciclo de operación es menor en el DHT11


que en el DHT22, sin embargo, el DHT22 tiene rangos de medida más amplios y mayor
resolución, a cambio de resultar algo más caro.

Ambos sensores están calibrados en laboratorio y tienen una buena fiabilidad.

Son además muy fáciles de conectar y sólo requieren de un pin de Arduino.

ENCAPSULADO.

Existen en el mercado tres variantes:


El sensor suelto, con un encapsulado azul y cuatro pines disponibles para conectar. (Será
necesario añadir la resistencia pull-up) El sensor con una placa soldada, con tres pines
disponibles para conectar y una resistencia pull-up (normalmente de 4,7-10 kΩ). El mismo
formato que el anterior, pero con un condensador de filtrado (normalmente de 100 nF).

A modo de recomendación, si podéis, comprarlo con la resistencia pull-up y evitar tener


que soldarla, nos hace más sencillo la construcción.

CARACTERÍSTICAS DE CADA UNO DE LOS SENSORES:

Parámetro DHT11 DHT22

Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc

Señal de Salida Digital Digital

Rango de medida Temperatura De 0 a 50 °C De -40°C a 80 °C

Precisión Temperatura ±2 °C <±0.5 °C

Resolución Temperatura 0.1°C 0.1°C

Rango de medida Humedad De 20% a 90% RH De 0 a 100% RH

Precisión Humedad 4% RH 2% RH

Resolución Humedad 1%RH 0.1%RH

Tiempo de respuesta 1s 2s

Tamaño 12 x 15.5 x 5.5mm 14 x 18 x 5.5mm

CICLO DE OPERACIÓN.

Es el tiempo que el sensor tarda en ofrecer una respuesta desde que se le pide.
Formato de datos de un solo bus para la comunicación y sincronización entre MCU y el
sensor. El proceso de comunicación es de 4 ms aproximadamente. 

Una transmisión de datos completa es de 40 bits. Donde obtenemos la temperatura y la


humedad. 

Ejemplo: Recibimos 40 bits:

      0011 0101 0000 0000 0001 1000 0000 0000 0100 1101

High humidity 8 + Low humidity 8 + High temp. 8 + Low temp. = 8 Parity bit

Calculando:

      0011 0101+0000 0000+0001 1000+0000 0000= 0100 1101

Datos correctos recibidos:

 Humedad:0011 0101 = 35H = 53%RH


 Temperatura:0001 1000 = 18H = 24℃

El microcontrolador externo y el microcontrolador que lleva integrado el sensor, se hablan


entre sí de la siguiente manera:

 Se inicia la comunicación.
 El sensor responde estableciendo un nivel bajo de 80us y un nivel alto de 80us.
 El sensor envía 5 bytes con la información de temperatura y humedad.

MLX90614. Termómetro sin contacto por infrarrojos con comunicaciones SMBus.

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
o MLX90614xSFxxA 70°
o MLX90614xSFxxC 35°
o MLX90614xSFxxH 12°
o MLX90614xSFxxF 10°
o 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 C 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ón PEC 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.

Materiales

 MLX90614
 DHT22
 Arduino

Metodología

Utilizaremos las librerías correspondientes para cada sensor y tomar las mediciones.

Desarrollo

Codigo

#include <DHT.h> // importa la Librerias DHT

#include <DHT_U.h>
#include <Wire.h>

#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

double temp_amb;

double temp_obj;

int SENSOR = 2; // pin DATA de DHT22 a pin digital 2

int TEMPERATURA;

int HUMEDAD;

DHT dht(SENSOR, DHT22); // creacion del objeto, cambiar segundo parametro

// por DHT11 si se utiliza en lugar del DHT22

void setup(){

Serial.begin(9600); // inicializacion de monitor serial

Serial.println("Sensor de temperatura MLX90614");

mlx.begin();

dht.begin(); // inicializacion de sensor

void loop(){

TEMPERATURA = dht.readTemperature(); // obtencion de valor de temperatura

HUMEDAD = dht.readHumidity(); // obtencion de valor de humedad

Serial.println();

Serial.println(" DHT22");

Serial.print(" Temperatura: "); // escritura en monitor serial de los valores


Serial.print(TEMPERATURA);

Serial.print(" Humedad: ");

Serial.println(HUMEDAD);

delay(500);

Serial.println();

Serial.println(" MLX90614");

temp_amb = mlx.readAmbientTempC();

temp_obj = mlx.readObjectTempC();

Serial.print(" Ambiente = ");

Serial.println(temp_amb);

Serial.print(" Objeto = ");

Serial.print(temp_obj); Serial.println("*C");

delay(500);

}
Conclusión

La optimización por el canal i2c nos permite llevar acabo transmisiones sin que se crucen
lo que nos da pie a poner multitud de sensores que lleven esa configuración, ya que cada
aunque toda la información venga por el mismo bus de datos no se intervienen entre si.

Вам также может понравиться