Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use MLX90614: Examples, Pinouts, and Specs

Image of MLX90614Design with MLX90614 in Cirkit Designer

Introduction

The MLX90614 is a non-contact infrared thermometer designed to measure the temperature of objects without requiring direct physical contact. It utilizes advanced infrared sensing technology to provide accurate temperature readings. The sensor outputs temperature data digitally, making it easy to integrate into microcontroller-based systems.

Explore Projects Built with MLX90614

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Arduino Mega 2560-Based Autonomous Robot with GPS, Bluetooth, and Environmental Sensors: A project utilizing MLX90614 in a practical application
Arduino Mega 2560-Based Autonomous Robot with GPS, Bluetooth, and Environmental Sensors

This circuit is a robotic system controlled by an Arduino Mega 2560, which uses multiple sensors including temperature sensors (MLX90614), gas sensors (MQ-136), a GPS module, and a Bluetooth module to navigate and detect environmental conditions. The system drives motors via an L298N motor driver and displays information on a 16x2 I2C LCD, with the ability to receive commands via Bluetooth.

Open Project in Cirkit Designer
Image of ESP32-Based Infrared Thermometer with I2C LCD Display: A project utilizing MLX90614 in a practical application
ESP32-Based Infrared Thermometer with I2C LCD Display

This circuit features an ESP32 microcontroller powered by a 18650 Li-Ion battery, with a TP4056 module for charging the battery via a USB plug. The ESP32 reads temperature data from an MLX90614 infrared temperature sensor and displays it on an I2C LCD 16x2 screen. The ESP32, MLX90614 sensor, and LCD screen are connected via I2C communication lines (SCL, SDA), and the circuit is designed to measure and display ambient and object temperatures.

Open Project in Cirkit Designer
Image of ESP32-Based Infrared Thermometer with I2C LCD Display: A project utilizing MLX90614 in a practical application
ESP32-Based Infrared Thermometer with I2C LCD Display

This circuit features an ESP32 microcontroller interfaced with an MLX90614 infrared temperature sensor and a 16x2 I2C LCD display for temperature readouts. A tactile button is connected to the ESP32 to trigger temperature measurements, and an LED indicates when a measurement is in progress. The circuit is powered by an 18650 Li-Ion battery, with appropriate resistors for LED current limiting and button debouncing.

Open Project in Cirkit Designer

Common Applications and Use Cases

Technical Specifications

The MLX90614 is available in various models, but the following are the general specifications for the most commonly used version:

Parameter Value
Operating Voltage 3.6V to 5V
Operating Current 1.5mA (typical)
Temperature Range (Object) -70°C to +380°C
Temperature Range (Ambient) -40°C to +125°C
Accuracy ±0.5°C (typical, for 0°C to +50°C)
Communication Protocol SMBus (I2C compatible)
Field of View (FOV) 35°
Resolution 0.02°C

Pin Configuration and Descriptions

The MLX90614 is typically available in a 4-pin TO-39 package. Below is the pinout:

Pin Name Description
1 VDD Power supply (3.6V to 5V)
2 VSS Ground
3 SDA Serial Data Line (I2C communication)
4 SCL Serial Clock Line (I2C communication)

Usage Instructions

How to Use the MLX90614 in a Circuit

  1. Power Supply: Connect the VDD pin to a 3.6V to 5V power source and the VSS pin to ground.
  2. I2C Communication: Connect the SDA and SCL pins to the corresponding I2C pins on your microcontroller. Use pull-up resistors (typically 4.7kΩ) on both SDA and SCL lines.
  3. Addressing: The default I2C address of the MLX90614 is 0x5A. Ensure no other devices on the I2C bus share this address, or reconfigure the address if necessary.
  4. Bypass Capacitor: Place a 0.1µF decoupling capacitor between VDD and VSS to stabilize the power supply.

Important Considerations and Best Practices

Example Code for Arduino UNO

Below is an example of how to interface the MLX90614 with an Arduino UNO using the Adafruit MLX90614 library:

#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 wiring!");
    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 the temperatures 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
}

Notes on the Code

Troubleshooting and FAQs

Common Issues and Solutions

  1. Sensor Not Detected

    • Cause: Incorrect wiring or missing pull-up resistors on the I2C lines.
    • Solution: Double-check the connections and ensure 4.7kΩ pull-up resistors are used on SDA and SCL.
  2. Inaccurate Temperature Readings

    • Cause: Sensor exposed to strong infrared sources or improper alignment.
    • Solution: Shield the sensor from external IR sources and ensure it is properly aligned with the target.
  3. Fluctuating Readings

    • Cause: Unstable power supply or electrical noise.
    • Solution: Add a 0.1µF decoupling capacitor between VDD and VSS and ensure a stable power source.
  4. I2C Address Conflict

    • Cause: Another device on the I2C bus shares the same address.
    • Solution: Reconfigure the MLX90614's I2C address using appropriate software tools.

FAQs

Q: Can the MLX90614 measure the temperature of liquids?
A: Yes, but ensure the sensor has a clear line of sight to the liquid's surface and avoid condensation on the sensor.

Q: What is the maximum distance for accurate measurements?
A: The effective range depends on the size of the target and the sensor's field of view. For small objects, the distance should be minimized for accurate readings.

Q: Can I use the MLX90614 with a 3.3V microcontroller?
A: Yes, the MLX90614 operates at 3.6V to 5V, but ensure the I2C lines are properly level-shifted if the microcontroller operates at 3.3V.

Q: How do I change the I2C address of the MLX90614?
A: The I2C address can be changed using specialized software tools and commands. Refer to the sensor's datasheet for detailed instructions.