Go Down

Topic: How to adjust emissivity in Adafruit MXL90614 IR-Sensor (Read 1 time) previous topic - next topic


I am development a prototype for contactless temperature measurements on steels bodies.  Emissivity is a factor I have to change for calibration of sensor, because bodies for my application are very shiny. 
I am using Adafruit MXL90614 IR-sensors.  As a standard, the MLX90614 is calibrated for an object emissivity of 1.  Shiny steel has a very low emissivity value.
How can I change it? 
Best regards


Jul 09, 2019, 01:39 am Last Edit: Jul 09, 2019, 01:43 am by jremington
The data sheet for the MLX90614 has information on emissivity corrections.

The correction can be applied after you make the measurement -- there is no need to update the sensor. For the record, you need to acquire both the ambient (chip) temperature Ta, and the object temperature Tom in Kelvin as measured by the sensor.

The corrected object temperature Toc is given by the following expression in C, where eps is the surface emissivity:

Toc = pow( ( ( (pow(Tom,4)-pow(Ta,4))/eps) + pow(Ta,4) ), 0.25);

For very shiny objects (emissivity < 0.1), correction is usually not possible and contactless temperature measurements become impractical or impossible.


Hi, thank you very much for your help. 
If I understood well, I can "correct" the readings in my code.

What I have to do is to change the address of my sensors.  I want to to use a I2C bus to use 4 sensors at the same time, but all sensors have the address 0x55.  How can I read and write in sensors in order to change their addresses?

Many thanks in advance!



Awsome, Thank you very much.  It seems to be what I was looking for.
I will try it.
Best regards


I am still having trouble trying to change the Slave Address of a MLX90614 .
I followed the link instruction you indicated and after a lot of problem with the i2cmaster library I got compiled and uploaded the scripts.  But nothing happened.
I found an old post "I2CMaster Lib hangs my Arduino" addressing exactly my problem.

During compiling I get a lot of errors.  Here only the first lines.
If I only erase I2cmaster.S I can compile without error but sketch hangs and Serial MOnitor shows nothing.
If I erase test_i2cmaster.c I got following errors:

What I am doing wrong?

C:\Users\ANC\AppData\Local\Temp\cccNKvcN.ltrans0.ltrans.o: In function `ReadAddr':
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:102: undefined reference to `i2c_start_wait(unsigned char)'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:103: undefined reference to `i2c_write(unsigned char)'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:104: undefined reference to `i2c_rep_start(unsigned char)'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:106: undefined reference to `i2c_readAck()'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:109: undefined reference to `i2c_readAck()'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:111: undefined reference to `i2c_readNak()'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/remap_mlx90614.ino:112: undefined reference to `i2c_stop()'
C:\Users\ANC\AppData\Local\Temp\cccNKvcN.ltrans0.ltrans.o: In function `ReadTemp':
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:23: undefined reference to `i2c_start_wait(unsigned char)'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:24: undefined reference to `i2c_write(unsigned char)'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:25: undefined reference to `i2c_rep_start(unsigned char)'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:26: undefined reference to `i2c_readAck()'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:27: undefined reference to `i2c_readAck()'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:28: undefined reference to `i2c_readNak()'
D:\ArduinoIDE\Portable\sketchbook\ChangeAddressMLX90614\remap_mlx90614/read_temp.ino:29: undefined reference to `i2c_stop()'

Go Up