Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use MLX90614: Examples, Pinouts, and Specs

Image of MLX90614
Cirkit Designer LogoDesign with MLX90614 in Cirkit Designer

Introduction

The MLX90614 is a non-contact infrared temperature sensor designed to measure the temperature of objects without requiring direct physical contact. It utilizes advanced infrared technology to provide accurate temperature readings over a wide range. This sensor is widely used in applications such as temperature monitoring, medical devices (e.g., thermometers), HVAC systems, and industrial automation. Its ability to measure both object and ambient temperatures makes it a versatile and reliable component for various projects.

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!
ESP32 and ESP32-CAM Based Wireless Temperature Monitoring System
Image of PLER: A project utilizing MLX90614 in a practical application
This circuit features an ESP32 microcontroller interfaced with an MLX90614 temperature sensor and an ESP32-CAM module for image capture. The power supply is managed by a 12V battery, a 7805 voltage regulator for 5V, and an AMS1117 regulator for 3.3V, ensuring stable operation of the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560-Based Autonomous Robot with GPS, Bluetooth, and Environmental Sensors
Image of botfinal: A project utilizing MLX90614 in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Infrared Thermometer with I2C LCD Display
Image of infrared thermometer: A project utilizing MLX90614 in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Infrared Thermometer with I2C LCD Display
Image of infrared thermometer 2: A project utilizing MLX90614 in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer

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 PLER: A project utilizing MLX90614 in a practical application
ESP32 and ESP32-CAM Based Wireless Temperature Monitoring System
This circuit features an ESP32 microcontroller interfaced with an MLX90614 temperature sensor and an ESP32-CAM module for image capture. The power supply is managed by a 12V battery, a 7805 voltage regulator for 5V, and an AMS1117 regulator for 3.3V, ensuring stable operation of the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of botfinal: 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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of infrared thermometer: 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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of infrared thermometer 2: 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.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

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

  • Operating Voltage: 3.6V to 5V DC
  • Current Consumption: 1.5mA (typical)
  • Temperature Range:
    • Object Temperature: -70°C to +380°C
    • Ambient Temperature: -40°C to +125°C
  • Accuracy: ±0.5°C (typical, for object temperatures between 0°C and +50°C)
  • Field of View (FOV): 35°
  • Communication Protocols: I²C and PWM
  • Resolution: 0.02°C
  • Package Type: TO-39 metal can

Pin Configuration and Descriptions

The MLX90614 typically comes with four pins. The table below describes each pin:

Pin Name Description
1 VDD Power supply input (3.6V to 5V DC)
2 VSS Ground (0V)
3 SDA Serial Data Line for I²C communication
4 SCL Serial Clock Line for I²C communication

Usage Instructions

How to Use the MLX90614 in a Circuit

  1. Powering the Sensor: Connect the VDD pin to a 3.6V to 5V DC power source and the VSS pin to ground.
  2. I²C Communication:
    • Connect the SDA pin to the SDA line of your microcontroller.
    • Connect the SCL pin to the SCL line of your microcontroller.
    • Use pull-up resistors (typically 4.7kΩ) on both the SDA and SCL lines for proper I²C operation.
  3. Reading Temperature:
    • The MLX90614 provides two types of temperature readings:
      • Object Temperature: The temperature of the object in the sensor's field of view.
      • Ambient Temperature: The temperature of the sensor's surroundings.

Important Considerations and Best Practices

  • Ensure the sensor is not exposed to direct sunlight or strong infrared sources, as this may affect accuracy.
  • Avoid placing the sensor in environments with high humidity or condensation, as this can damage the sensor.
  • Use a stable power supply to minimize noise and ensure accurate readings.
  • When using the sensor in an Arduino project, install the necessary libraries (e.g., Adafruit_MLX90614).

Example Code for Arduino UNO

Below is an example of how to use the MLX90614 with an Arduino UNO to read object and ambient temperatures:

#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
  Serial.println("MLX90614 Temperature Sensor Test");

  if (!mlx.begin()) {
    Serial.println("Error: Could not find a valid MLX90614 sensor!");
    while (1); // Halt execution if sensor initialization fails
  }
}

void loop() {
  // Read object temperature in Celsius
  float objectTemp = mlx.readObjectTempC();
  // Read ambient temperature in Celsius
  float ambientTemp = mlx.readAmbientTempC();

  // Print the 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 for 1 second before taking the next reading
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Sensor Not Detected:

    • Ensure the SDA and SCL lines are correctly connected to the microcontroller.
    • Check for proper pull-up resistors on the I²C lines.
    • Verify that the sensor is powered correctly (3.6V to 5V DC).
  2. Inaccurate Temperature Readings:

    • Ensure the sensor is not exposed to direct sunlight or strong infrared sources.
    • Verify that the sensor is not obstructed by dirt or debris.
    • Allow the sensor to stabilize for a few seconds after powering it on.
  3. Interference on I²C Lines:

    • Use shorter wires for the SDA and SCL connections to reduce noise.
    • Ensure proper grounding of the circuit.

FAQs

Q1: Can the MLX90614 measure the temperature of liquids?
A1: Yes, the MLX90614 can measure the temperature of liquids as long as the liquid's surface is within the sensor's field of view and there is no obstruction.

Q2: What is the maximum distance for accurate temperature measurement?
A2: The effective distance depends on the size of the object and the sensor's field of view. For small objects, the sensor should be placed closer for accurate readings.

Q3: Can I use the MLX90614 with a 3.3V microcontroller?
A3: Yes, the MLX90614 is compatible with 3.3V systems. Ensure that the pull-up resistors on the I²C lines are appropriate for 3.3V operation.

Q4: How do I switch between Celsius and Fahrenheit?
A4: The MLX90614 outputs temperature in Celsius by default. You can convert it to Fahrenheit in your code using the formula:
Fahrenheit = (Celsius * 9/5) + 32.

By following this documentation, you can effectively integrate the MLX90614 into your projects and troubleshoot common issues.