

The Melexis MLX90614 is a non-contact infrared (IR) temperature sensor designed to measure the temperature of objects without requiring physical contact. It utilizes advanced infrared thermopile technology and an integrated signal processing unit to deliver accurate temperature readings. The sensor is factory-calibrated for both ambient and object temperature measurements, making it a reliable and versatile solution for a wide range of applications.








| Parameter | Value |
|---|---|
| Manufacturer | Melexis |
| Part Number | MLX90614 |
| Operating Voltage | 3.6V to 5V |
| Current Consumption | 1.5 mA (typical) |
| Temperature Range | -40°C to +125°C (ambient) |
| Object Temperature Range | -70°C to +380°C |
| Accuracy | ±0.5°C (typical, for 0°C to +50°C range) |
| Communication Protocol | SMBus (I²C compatible) |
| Field of View (FOV) | 35° |
| Resolution | 0.02°C |
The MLX90614 sensor is typically available in a 4-pin TO-39 package. Below is the pin configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VDD | Power supply input (3.6V to 5V). |
| 2 | VSS | Ground (0V reference). |
| 3 | SDA | Serial Data Line for SMBus/I²C communication. |
| 4 | SCL | Serial Clock Line for SMBus/I²C communication. |
Below is an example of how to interface the MLX90614 with an Arduino UNO to read temperature data:
| MLX90614 Pin | Arduino UNO Pin |
|---|---|
| VDD | 5V |
| VSS | GND |
| SDA | A4 |
| SCL | A5 |
#include <Wire.h>
#include <Adafruit_MLX90614.h>
// Create an instance of the MLX90614 library
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
if (!mlx.begin()) {
Serial.println("Error: MLX90614 not detected. Check connections.");
while (1); // Halt execution if sensor initialization fails
}
Serial.println("MLX90614 initialized successfully.");
}
void loop() {
// Read object and ambient temperatures
double objectTemp = mlx.readObjectTempC();
double ambientTemp = mlx.readAmbientTempC();
// Print temperature readings to the Serial Monitor
Serial.print("Object Temperature: ");
Serial.print(objectTemp);
Serial.println(" °C");
Serial.print("Ambient Temperature: ");
Serial.print(ambientTemp);
Serial.println(" °C");
delay(1000); // Wait 1 second before the next reading
}
Sensor Not Detected
Inaccurate Temperature Readings
No Data on Serial Monitor
Q: Can the MLX90614 measure the temperature of liquids?
Q: What is the maximum distance for accurate measurements?
Q: Can multiple MLX90614 sensors be used on the same I²C bus?
This concludes the documentation for the Melexis MLX90614 IR Temperature Sensor. For further details, refer to the official datasheet provided by Melexis.