Contactless Infrared Thermometer (Pyrometer) using MLX90614 and MSP430
The device is designed for contactless measuring and monitoring temperature of objects. It is built on Melexis MLX90614 sensor and can measure temperatures in the range from -70°C to +380°C with 0.5°C accuracy and 0.01°C resolution. The period of measurements can be set in the menu from 1 sec to 1 min in 10 sec increments. It is also possible to record the temp measurements and upload them to a computer via the serial interface through X1 and an external level converter.
The heart of the device is TI’s MSP430RF5728 microcontroller (μC) with FRAM type of memory instead of conventional Flash. This simplifies and speeds up writing to memory and from the user’s viewpoint there is no difference between RAM and FRAM access. No preliminary block erase is needed by writing a single byte into FRAM. However, presently FRAM is slower than Flash. In FR57xx devices the maximum FRAM access frequency is 8 MHz. However, in my device μC is running at 8MHz, so there is no any slowdown. Another disadvantage of FRAM is its lower size compared to Flash in today’s devices. As of today, it is limited to 16 KB in the FR57xx family. However, this amount of memory is sufficient to store about 5400 temp measurements in memory (2 bytes per value). Most of the time the μC remains in a sleep mode LPM3. Using peripheral SPI and I2C modules along with DMA allows the data exchange to be performed practically without involving the μC. This benefits to its power consumption leaving it at 8μA, in average.
The measurements and other information is displayed on a 102×64 graphics LCD manufactured my Electronic Assembly. It is a low-power device drawing just about 270 μA when idle. It needs just 3 external caps to operate (C11 – C13) and uses SPI interface to communicate with μC at 8 MHz frequency.
The device operates in 3 main modes which are selected with a slider switch. The switch position is monitored by a built-in ADC. In the middle position of that switch the device performs periodic measurements of temp. The measurements can be stopped and started by the “mode” button which is convenient for monitoring some difficult to access devices. The monitoring period is set with “<” and “>” buttons and is displayed in the bottom right corner of the screen.
Turning the device into the temp recording mode can be done by moving the switch to the top position. In this mode all buttons have the same functionality as in the temp monitoring mode described above. The recording is terminated by moving the slider into a different position, or upon using all available FRAM memory. In the later case the device automatically shuts down.
Finally, in the bottom position of the slider the device performs playback of recorded values from memory and displays them on the LCD. The “<” and “>” buttons are used to walk through the stored measurements while the “mode” button sets the step (1/10/100/1000). The bottom line on the LCD shows the current record number and the total number of them. The images below show the device in operation for all of the main modes.
This Post / Project can also be found using search terms:
- arduino pyrometer
- arduino optical pyrometer project
- Pyro Meter arduino
- pyrometer sensor arduino