# How to measure temperature very accurately with an Arduino

While studying in university we were challenged as part of a course work into designing a box with very accurate temperature control. If the project were to succeed, multiple boxes were to be built and used in a research project studying the effect of surface material on the perceived temperature of flooring and other building materials.

The project was deemed as very challenging by the university staff because the temperature inside the boxes should stay within ± 0.1°C of the desired value.

Therefore we would require the most accurate temperature sensor we could find. On one hand, the sensor should be factory calibrated to the desired temperature, because calibrating to within 0.1°C of the national temperature standard is next to impossible on a simple setup of boiling and freezing water. On the other hand, an analog temperature sensor with a proclaimed accuracy of ± 0.1°C might still produce inaccurate results after the value is converted to a digital value by an ADC (https://en.wikipedia.org/wiki/Analog-to-digital_converter).

The only solution we could find was to use the TSYS01 digital output single chip temperature sensor by Measurement Specialties and communicate with it using a Arduino microcontroller.

In this instructable I will explain how to use the TSYS01 Temperature Sensor Board with an Arduino microcontroller for very accurate temperature measurements. If you have never used an Arduino microcontroller you can get started by using this instructable: https://www.instructables.com/id/Intro-to-Arduino/ I will not go into detail on how to use the Arduino platform on this instructable, but will only focus on the usage of the TSYS01 temperature sensor board with an Arduino.

## Step 1: Introduction of the TSYS01 and the Temperature Sensor Board.

With the correct peripheral circuit TSYS01 can give provide ±0.1°C accuracy between -5°C and +50 °C. It’s 24 bit ADC conversion result is factory calibrated separately for each chip with a 4th degree polynomial. It has low self heating and a small time constant for a single chip sensor. The 24 bit ADC can provide enough resolution for any application(more than 0.0001°C), but some noise can be seen in the output if using more than 0.01°C of the resolution. The very low measurement noise of the sensor can for example enable you to use time constant compensation based on the current rate of temperature change without unbearable measurement noise. The sensor output and a value with software compensation of 4 s time constant during a transition from room temperature to finger temperature can be seen in the graph above. The full measurement range of the sensor is from -40°C to 125°C, but the accuracy of the sensor is only ±0.5°C outside the -5°C to +50°C temperature range.