How to interface the TMP116 & TMP117 temperature sensors with Arduino
The TMP116 is a low-power, high-precision temperature sensor with integrated EEPROM memory. The device provides a 16-bit temperature result with a resolution of 0.0078°C and an accuracy of up to ±0.2°C with no calibration. The TMP116 consumes minimal current, typically 3.5µA, which minimizes self-heating and improves measurement accuracy. The TMP117 is similar to the TMP116 but it is designed to exceed ASTM E1112 requirements for electronic patient thermometers and has an accuracy of up to ±0.1°C across the temperature range of 25°C to 50°C. Both devices are I2C- and SMBus™ interface compatible and have programmable alert functionality.
In this tutorial you will learn how to output temperature in Celsius to a LCD display, as well as how to use the alert functionality on the devices. First, we will cover the basic functionalities and differences of the TMP116/TMP117, as well as how to communicate with the devices using I2C to read and write to registers on the device. Following that, we will go over how to use the ALERT pin to trigger an interrupt. Finally, we will show a working demonstration of the TMP116/TMP117 and we will go step-by-step through the example code so you can reproduce the same results on your own.