MLX90614 Arduino

Last Updated on March 16, 2024

Measuring temperature can be done in two ways they are 1. contact method. 2. Non contact method, here many semiconductor based temperature sensors are available, For Non contact method temperature sensing few notable sensors only available in the market. mlx90614 is a very famous non contact IR Thermometer sensor in TO-39 package. mlx90614 Arduino code will give the exact temperature range in Fahrenheit and Celsius. mlx90614 sensor can work with any type of Arduino board. Here mlx90614 with Arduino Uno documented.




What is mlx90614?

The mlx90614 is an Infra Red thermometer Sensor for non contact temperature measurements from melexis. mlx90614 sensor module contains IR Sensitive thermopile detector chip and the signal conditioning ASSP in same TO-39 package. It can measure -20° to 120° C without any interruption.

Function diagram of mlx90614

This circuit Represents standalone application and function diagram of mlx90614. Output (PWM) from mlx90614 is directly connected with the alert device. When the sensing temperature rises then the alert device will start work.

MLX90614 Sensor with Microcontroller

mlx90614 Infrared temperature sensor has I2C communication lines so that we can easily Interface it with any Microcontrollers which have I2C communication terminals in our case Arduino Uno I2C lines are SDA – A4 / SCL – A5 pins. Here the sensor operates in 3.3 volt DC supply, If the microcontroller operates in 5 volt DC then we need pull up Resistors between SDA amd SCL lines to +3.3 V DC line.

MLX90614 Arduino IR Thermometer

MLX90614 Arduino IR Thermometer will give sensed temperature result in serial monitor.

MLX90614 Arduino Wiring

Connect mlx90614 sensor breakout board and Arduino board as mentioned in diagram. (Note:- If you are using Arduino board other than Arduino Uno, then refer the SDA / SCL pins of your board and connect wisely. Wrong I2C connection will not give results ). mlx90614 Sensor breakout board pin 1 to 3.3 V, pin 2 to A5, pin 3 to A4 and pin 4 to GND of Arduino uno board.

MLX90614 Sensor Breakout board PCB Files

Schematic Diagram of mlx90614

BOM

s.noReferencesValueFootprintQuantity
1C10.1µFC_0805_2012Metric1
2R1, R210KΩR_0805_2012Metric2
3M1MLX90614TO254P942H425-41
4J1PinSocket_1x04_P1.00mm_Vertical1

MLX90614 Sensor Breakout board Gerber File

MLX90614 Sensor Breakout Board Gerber File.

MLX90614 Sensor Board PCB Layout

Interactive Board Viewer

     

mlx90614 Arduino Code

mlx90614 Arduino library

/*************************************************** theoryCIRCUIT***********
  This is a library example for the MLX90614 Temp Sensor 

  Designed specifically to work with the MLX90614 sensors in the
  adafruit shop
  ----> https://www.adafruit.com/products/1747 3V version
  ----> https://www.adafruit.com/products/1748 5V version

  These sensors use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/
 /*
  MLX90614 ------------- Arduino
  VDD ------------------ 3.3V
  VSS ------------------ GND
  SDA ------------------ SDA (A4)
  SCL ------------------ SCL (A5)
  */

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(9600);

  Serial.println("Adafruit MLX90614 test");  

  mlx.begin();  
}

void loop() {
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); 
  Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF()); 
  Serial.print("*F\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");

  Serial.println();
  delay(500);
}




Leave a Reply

Your email address will not be published. Required fields are marked *