This cyber-tronic looking sensor hides a secret behind it's glimmering
eye. Unlike most temperature sensors, this sensor measures infrared
light bouncing off of remote objects so it can sense temperature without
having to touch them physically. Simply point the sensor towards what
you want to measure and it will detect the temperature by absorbing IR
waves emitted. Because it doesn't have to touch the object it's
measuring, it can sense a wider range of temperatures than most digital
sensors: from -70°C to +380°C! It takes the measurement over an 90-degree
field of view so it can be handy for determining the average
temperature of an area.
This sensor comes in an easy-to-use metal can. You can easily solder it
or plug it into a breadboard. The four pins are used for power, ground,
i2c clock and i2c data. There are two versions, one for 3V power and
logic levels and one for 5V power and logic levels. You'll also want two 10K pull-up
resistors for the I2C data lines, which we thoughtfully include.
- Factory calibrated
- -40°C to +125°C for sensor temperature
- -70°C to +380°C for object temperature
- ±0.5°C accuracy around room temperatures
- High accuracy of 0.5°C over wide temperature
- 90° Field of view
- 5V version: 4.5 to 5.5V power
- 3V version: 2.6 to 3.6V power
- I2C interface, 0x5A is the fixed 7-bit address
Despite being in an odd casing, the sensor is a lot like a simple sensor in a 'classic' integrated circuit shape. There are four pins. The datasheet has a diagram from the bottom view
of the sensor which is a little annoying to refer to when wiring so use this image above.
You can easily wire this sensor to any microcontroller, we'll be using an Arduino
This sensor uses a slightly non-standard type of I2C called "repeated-start". If you are not using an Arduino, make sure your microcontroller can support "repeated start I2C requests"!
Note the tab is how we will keep track of pins, in this wiring image, the tab is on the south side of the sensor, there's a red arrow pointing to it
- Connect GND to common power/data ground
Connect PWR to the power supply, for the 3V sensor this is about 3.3V. For the 5V version, use about 5VDC
- Connect the SDA pin to the I2C data SDA pin on your Arduino. On an UNO & '328 based Arduino, this is also known as A4, on a Mega it is also known as digital 20 and on a Leonardo/Micro, digital 2
- Connect the SCL pin to the I2C clock SCL pin on your Arduino. On an UNO & '328 based Arduino, this is also known as A5, on a Mega it is also known as digital 21 and on a Leonardo/Micro, digital 3
The MLX90614 has a fixed I2C address, you can only connect one
sensor per microcontroller!
To begin reading sensor data, you will need to download Adafruit_MLX90614 from our github repository
. You can do that by visiting the github repo and manually downloading or, easier, just click this button to download the zip
Rename the uncompressed folder Adafruit_MLX90614
and check that the Adafruit_MLX90614
folder contains Adafruit_MLX90614.cpp
Place the Adafruit_MLX90614
library folder your arduinosketchfolder/libraries/
You may need to create the libraries
subfolder if its your first library. Restart the IDE.
We also have a great tutorial on Arduino library installation at:http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use
Open up File->Examples->Adafruit_MLX90614->mlxtest
and upload to your Arduino wired up to the sensor
Now you can open up the serial console to see the ambient and object temperature printed out. Ambient temperature is the temperature of the sensor itself. The object temp is what its measuring in the 90-degree field of view.