Temperature sensors
We have to choose the best temperature sensors for our CanSat. We’ve carried out a few experiments and measurements for this purpose.
What makes a sensor ‘the best’?
- small dimensions
- low thermal capacity and low thermal inertia
- high accuracy
- resolution; the higher, the better
- conversion time; the lower, the better
Sensors from ESA
As a part of the Kit from ESA, we’ve received two analog temperature sensors. The first – thermistor – is a kind of resistor whose resistance chances significantly with temperature. The second one is cheap and popular LM35 whose output voltage is proportional to temperature. Both of them have a few disadvantages.
Thermistor:
- needs accurate ADC
- low accuracy (0.25 °C)
- non-linearity
- differences in resistance between items
- bad calibration in datasheet
LM35:
- needs accurate ADC
- amplifier should be used
- isn’t good for temperatures below 0 °C
- low accuracy (±0.5 °C)
We are searching for better solutions…
We looked into digital temperature sensors. They don’t need external A/D converters and they are tiny. But many of them have unacceptably long conversion time.
Methods
To acquire data from our sensors we used Arduino Duemilanove. It has a 10-bit A/D converters for analog sensors and I2C interface for digital ones. Arduino was connected to PC with National Instruments LabView software. LabView is the best way to acquire and analyze data from sensors and measurements instruments. Sensors were mounted on breadboard and connected to Arduino. LabView application created especially for this measurements is shown below. It can read from serial port, perform necessary calculations with data collected from sensors, draw plots and create indicators.
The measurements were conducted in a freezer where ambient temperature was (-12 ± 2) °C and in a room at (23 ± 2) °C.
TMP100
For first tests with digital temperature sensors we’ve chosen small and cheap TMP100. It has a built-in 12bit A/D converter and I2C interface. Max. accuracy is ±2 °C and resolution is 0.0625°C in 12bit mode. Normal conversion time is about 320 ms. We carried out several tests and compared sensors each other.
The first test: conversion time
As you can see in the above plot, conversion time – 0.43 s is close to the value in the datasheet (320 ms).
TMP100 vs. PTC thermistor
TMP100 vs. LM35
Unfortunately, TMP100 has higher thermal interia. Most likely it is due to fact that TMP100 is soldered on PCB, which has high thermal capacity. Thermistor and LM35 may hang in the air, so heat transfer is faster.
We rejected LM35 due to noise and unstable readings. Thermistors are better in this field, but also have low accuracy and datasheets leave much to be desired. But TMP100 still isn’t a good solution…
The solution
We’ve chosen two sensors. The first one is fast, accurate to ±0.25°C, 16-Bit Digital I2C Temperature Sensor ADT7420 from Analog Devices, and the second one is PT1000 platinum resistance sensor with positive temperature coefficient. Accuracy is at least ±0.01°C (!). We’re planning use it with 16-bit A/D converter, and stable current source.
We believe that chosen sensors will allow us to carry out high-precision measurements.