Sensor de Temperatura sin Contacto MLX90614

[MLX90614-PCB] Sensor de Temperatura sin Contacto MLX90614

https://electrofranko.com/web/image/product.template/2659/image_1920?unique=fc69f51

S/ 140.00 140.0 PEN S/ 140.00

S/ 140.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: MLX90614-PCB

Sensor Infrarrojo Digital MLX90614 de Temperatura Sin Contacto

Termómetro digital e inteligente de alta resolución con salida I2C y PWM compatible con microcontroladores de 3.3V y 5V.

El MLX90614 es un sensor de temperatura infrarrojo de alto rendimiento diseñado para mediciones térmicas precisas a distancia y sin contacto físico directo. Su arquitectura interna encapsula en una unidad compacta tipo TO-39 un detector de termopila sensible a la radiación IR y un chip de procesamiento de señal especializado (ASIC) con un ADC de 17 bits de bajo ruido. Este transductor proporciona dos lecturas simultáneas e independientes mediante registros internos: la temperatura interna del propio encapsulado (ambiente) y la temperatura real del objeto situado en su campo de visión (FOV). Gracias a su calibración de fábrica y su compensación térmica dinámica, entrega tramas lógicas directas en grados Celsius bajo el estándar SMBus (compatible con I2C) o mediante una señal de modulación por ancho de pulso (PWM) continua. Su robustez lo convierte en la elección ideal para termómetros médicos digitales, control de procesos industriales de calor y monitoreo automotriz.

Especificaciones Técnicas

Parámetro OperativoRango / Valor Oficial
Sistemas CompatiblesArduino, ESP32, Raspberry Pi, STM32, PIC
Voltaje de Operación3.3 V a 5.0 V DC (Según versión del módulo)
Consumo de Corriente1.5 mA a 2.5 mA (Operación normal continua)
Protocolo PrincipalSMBus (Compatible con bus de datos I2C)
Salida SecundariaPWM configurable de 10 bits independiente
Rango Objeto (TO)-70 °C a +382.2 °C (Medición IR a distancia)
Rango Ambiente (TA)-40 °C a +125 °C (Temperatura del chip)
Parámetro Mecánico / SeñalRango / Valor Oficial
Precisión Médica±0.5 °C en el rango corporal (36°C a 38°C)
Resolución de Salida0.02 °C de sensibilidad por registro digital
Campo de Visión (FOV)90° estándar (Modelos BAA/DCI varían a 35° o 10°)
Resolución del ADCConvertidor interno de 17 bits integrado
Dirección I2C por Defecto0x5A de 7 bits (Modificable en la EEPROM)
Tipo de EncapsuladoHermético metálico TO-39 con filtro óptico
Peso Neto del Módulo2.1 gramos (Ensamblado en PCB breakout)

Compatibilidad y Ventajas en Arduino, ESP32 y Raspberry Pi

Lectura Térmica Dual e Independiente: El firmware adquiere de manera simultánea tanto la temperatura ambiental propia del nodo como la temperatura infrarroja del objeto apuntado, facilitando cálculos avanzados de compensación ambiental en sistemas inteligentes sin añadir termistores secundarios.

Tolerancia de Voltaje e Integración en Módulos: Las placas breakout comerciales incorporan diodos de protección y un regulador de voltaje LDO de 3.3V, permitiendo su acoplamiento directo tanto a microcontroladores de 5V como el **Arduino Uno** como a procesadores de 3.3V como el **ESP32**.

Precisión de Grado Médico Calibrada: Su bajo coeficiente de error de ±0.5 °C dentro de los rangos de temperatura humana lo convierte en el dispositivo ideal para construir arcos de control de accesos automáticos, quioscos de salud inteligentes y proyectos IoT sanitarios portátiles.

La comunicación con el MLX90614 se gestiona de forma nativa a través del protocolo SMBus, cuyas tramas y temporizaciones son compatibles con el estándar físico de bus de dos hilos I2C. El módulo utiliza dos terminales de alimentación y dos dedicados a las señales lógicas síncronas de datos y reloj.

Galería Dinámica de Conexiones de Hardware

Esquema 1: Arduino Uno MLX90614
Esquema 3: Raspberry Pi MLX90614
Esquema 2: ESP32 MLX90614
Esquema 4: Configuración Pinout Módulo MLX90614
Guía de Cableado Interplataforma: Conecte el terminal **VIN / VCC** a la alimentación recomendada de su módulo (**5V para placas Arduino** con regulador en la PCB o **3.3V para ESP32 y Raspberry Pi**) y **GND** al retorno común del sistema. Enlace la línea de datos **SDA** al terminal analógico A4 en Arduino Uno, al GPIO 21 en el ESP32, o al Pin físico 3 en Raspberry Pi. La línea de reloj **SCL** debe enlazarse firmemente al terminal analógico A5 en Arduino, GPIO 22 en ESP32, o al Pin físico 5 en Raspberry Pi. Se requiere verificar que las resistencias pull-up estén habilitadas en el bus para asegurar estabilidad en la señal.
🎓 Consideraciones de Firmware y Gestión de Registros en el Bus SMBus

Para garantizar una lectura libre de ruidos electromagnéticos y aprovechar al máximo las prestaciones digitales del MLX90614, revise con atención las siguientes pautas de ingeniería:

  • Compatibilidad de Librería Adafruit: Este programa fuente emplea la librería Adafruit_MLX90614. Esta clase encapsula de forma nativa las tramas estructuradas de repetición de inicio (Repeated Start condition) que exige el protocolo SMBus del chip, resolviendo de manera transparente los desfases temporales que suelen trabar el bus estándar Wire en procesadores antiguos.
  • Comprensión del Factor FOV (Cono de Medición): La zona de lectura del sensor expande un cono óptico de aproximadamente 90 grados en las versiones estándar (MLX90614ESF-BAA). Esto significa que a mayor distancia, el sensor promediará la radiación del objeto junto con la del fondo del entorno. Para lecturas puntuales a más de 5 cm de distancia, se recomienda utilizar variantes focalizadas como la DCI o DCH (campo estrecho de 10° o 5°).
  • Efectos Térmicos por Conducción: Si el encapsulado metálico TO-39 del MLX90614 se calienta por la proximidad de reguladores, pantallas o las propias pistas calientes del circuito, el registro de temperatura ambiente variará falseando la compensación interna. Se recomienda aislarlo físicamente de fuentes térmicas locales.
// Código Universal para Sensor Infrarrojo MLX90614 (Arduino y ESP32) // Diseñado bajo bus SMBus/I2C. Requiere instalar la librería: "Adafruit MLX90614 Library" #include #include // Instanciación de la clase del sensor infrarrojo Adafruit_MLX90614 mlx = Adafruit_MLX90614(); void setup() { // Inicialización del terminal serial para depuración a alta velocidad Serial.begin(115200); Serial.println("--- Inicializando Termometro Infrarrojo Sin Contacto MLX90614 ---"); // Inicialización física del módulo en su dirección I2C nativa de fábrica (0x5A) if (!mlx.begin()) { Serial.println("[ ERROR ]: No se logro comunicar con el sensor MLX90614."); Serial.println("[ REVISAR ]: Verifique la alimentacion (3.3V/5V) y la continuidad en SDA/SCL."); while (1) { delay(10); } // Bucle de bloqueo de seguridad } Serial.println("[ CONFIG ]: Sensor MLX90614 inicializado correctamente."); Serial.println("-----------------------------------------------------------------------------------------"); delay(500); // Pausa de estabilización electrónica } void loop() { // ADQUISICIÓN DE REGISTROS DE TEMPERATURA DUALES // 1. Lectura de la temperatura interna del silicio (Ambiente) float tempAmbienteC = mlx.readAmbientTempC(); // 2. Lectura de la temperatura de la superficie del objeto apuntado (Infrarrojo) float tempObjetoC = mlx.readObjectTempC(); // LECTURA OPCIONAL EN GRADOS FAHRENHEIT (Descomentar en caso de requerirse) // float tempAmbienteF = mlx.readAmbientTempF(); // float tempObjetoF = mlx.readObjectTempF(); // DESPLIEGUE SISTEMÁTICO DE DATOS EN LA CONSOLA DE MONITOREO Serial.print("[ TELEMETRÍA TÉRMICA ] "); Serial.print("T. Ambiente: "); Serial.print(tempAmbienteC, 2); // Muestra el dato con dos decimales de precisión Serial.print(" °C | "); Serial.print("T. Objeto (IR): "); Serial.print(tempObjetoC, 2); Serial.print(" °C"); // Alerta cualitativa en caso de detectar un rango cercano a la temperatura corporal humana if (tempObjetoC >= 36.0 && tempObjetoC <= 38.0) { Serial.print(" -> Rango: [ CORPORAL NORMAL ]"); } else if (tempObjetoC > 38.0) { Serial.print(" -> Rango: [ ALTA TEMPERATURA / CALIENTE ]"); } Serial.println(); Serial.println("-----------------------------------------------------------------------------------------"); // TIEMPO DE ESPERA ENTRE MUESTREOS: Mantiene el bus despejado y estabiliza el integrador analógico del ASIC delay(1500); }
1. ¿Por qué el sensor marca valores erróneos o fluctúa abruptamente cuando mido a más de 10 cm?
Esto se debe al Campo de Visión (FOV). El modelo estándar del MLX90614 posee un FOV amplio de 90°. A una distancia de 10 cm, el sensor proyecta un cono de medición circular con un diámetro significativamente grande, integrando y promediando en su registro tanto la radiación del objeto deseado como la de la pared o superficies circundantes.
2. ¿Se puede alterar la dirección del bus I2C/SMBus nativa del MLX90614?
Sí, a diferencia de otros sensores con direcciones inmutables por hardware, la dirección del MLX90614 (0x5A por defecto) está guardada en su memoria interna EEPROM configurable. Para cambiarla, es necesario escribir comandos específicos de borrado y escritura en dicha dirección de registro empleando código de bajo nivel.
3. ¿Qué diferencia real existe entre el bus I2C convencional y el protocolo SMBus del sensor?
Físicamente son muy similares, pero el SMBus posee límites de temporización de reloj más estrictos y exige la condición de "Inicio Repetido" para las operaciones de lectura de registros. Por ello, algunas librerías genéricas de I2C pueden congelar el código si no implementan correctamente estos tiempos de espera.
4. ¿Es posible utilizar este sensor para medir la temperatura corporal de personas de manera precisa?
Es totalmente posible siempre que se use la versión médica adecuada (MLX90614ESF-BAA o variantes de FOV estrecho como el DCI) y la medición se realice a distancias cortas (entre 1 y 3 cm de la frente o piel). En esas condiciones, el chip activa su calibración de alta precisión ofreciendo una tolerancia de apenas ±0.5 °C.
5. ¿Cómo afecta la emisividad de los materiales a las mediciones del MLX90614?
El sensor viene calibrado de fábrica asumiendo una emisividad estándar de 1.0 (cercana a un cuerpo negro perfecto). Al medir objetos metálicos pulidos o superficies muy reflectantes, la emisividad real baja drásticamente, provocando que el sensor registre lecturas muy inferiores a la temperatura real. Para solucionarlo, se debe reconfigurar el registro de emisividad en la EEPROM del chip.
6. ¿Qué significan las siglas del sufijo del chip como "BAA", "BCC" o "DCI"?
Esas siglas definen variables críticas de hardware: la primera letra indica el voltaje de operación (A = 5V, B = 3V); la segunda indica la cantidad de termopilas internas; y la tercera especifica el tipo de filtro óptico o zona del cono de visión (A = 90°, C = 35°, I = 10° con compensación de gradiente).
7. ¿Es necesario soldar componentes complementarios en las líneas SDA y SCL del módulo?
No es necesario en las placas breakout comerciales. Estas PCBs de desarrollo ya integran de fábrica las resistencias pull-up requeridas en las líneas de datos y reloj, además de los condensadores de desacoplo esenciales para filtrar el ruido de la fuente.
8. ¿Se puede utilizar la salida PWM del sensor de forma directa sin usar comandos I2C?
Sí. El sensor puede configurarse para que tras el arranque transmita de forma continua una señal PWM en su pin de datos. El ancho de pulso de dicha señal variará proporcionalmente a la temperatura del objeto medido, permitiendo su lectura mediante un pin de interrupción o lectura de pulsos sin usar librerías complejas.
9. ¿Este chip resiste salpicaduras de agua, vapor o entornos corrosivos directos?
No de forma directa. La tapa superior del encapsulado TO-39 aloja una delgada ventana de silicio cristalino pulido que actúa como filtro óptico IR. Si esta ventana se ensucia, se cubre de humedad o se raya con agentes corrosivos, las lecturas térmicas quedarán completamente inutilizadas. Requiere de protección externa con lentes especiales de seleniuro de zinc si se opera en entornos hostiles.