Академический Документы
Профессиональный Документы
Культура Документы
CODIGO: 213003998
SECCION: D04
Marco Teórico
ENCAPSULADO.
Precisión Humedad 4% RH 2% RH
Tiempo de respuesta 1s 2s
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.
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:
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.
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.
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).
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
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.
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.
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.
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_U.h>
#include <Wire.h>
#include <Adafruit_MLX90614.h>
double temp_amb;
double temp_obj;
int TEMPERATURA;
int HUMEDAD;
void setup(){
mlx.begin();
void loop(){
Serial.println();
Serial.println(" DHT22");
Serial.println(HUMEDAD);
delay(500);
Serial.println();
Serial.println(" MLX90614");
temp_amb = mlx.readAmbientTempC();
temp_obj = mlx.readObjectTempC();
Serial.println(temp_amb);
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.