When developing a new project ThinIce, we had to choose temperature sensor Arduino. The technical specifications required us to use 4 temperature sensors to control the temperature of Peltier elements, sides with low and high temperature. The temperature threshold setting should have been no worse than ±0.5°C and the measuring range - from +5°C to +60°C.
Schematic of the device's temperature measurement circuit
For the analysis, we took best temperature sensors for Arduino.
Below we provide a compared Arduino sensors list:
To use arduino temperature sensor for project we also made a table with comparative characteristics
|Sensor||Measurement range, °C||Resolution, °C||Interface||Price, $|
|AD7415||-40 to +85||±0.5||I2C||2.5|
|ADT7310TRZ||-55 to +150||±0.5||SPI||3|
|DS18D20||-55 to +125||±0.5||1-Wire||1|
|DS75S||-55 to +125||±0.5||I2C||2|
|DHT11||0 to +50||±1||1-Wire||1.5|
|LMT01LPG||-50 to +150||±0.5||PCI||2.5|
|LM75||-55 to +125||±0.5||I2C||1|
Most temperature sensors have I2C interface that allows connecting up
to 128 devices to the bus, which is very convenient in terms of long distance data delivery. The
interface consists of two main wires:
SCL - clock signal from the main device;
SDA - bidirectional data signal.
For the normal operation of the I2C-connected devices, it is necessary to power them. For this, Vdd and GND signals are used.
To ensure the device-address separation on the I2C bus, the devices themselves provide the possibility to specify the address using one of the pins. For example, in the AD7415 temperature sensor circuit, the AS pin is used for this.
The pinout of the AD7415 temperature sensor
Possible options for establishing address space of a circuit:
|AS pin||I2C Address|
In total, there can be 3 possible options for address space implementation for temperature sensors, which is clearly not enough according to the initial technical requirements set.
The pinout scheme of the ATMEGA328 controller widely used in Arduino
According to the specification sheet for the ATMEGA324
controller, there is only one I2C interface located at the PC4 and PC5
pins. The use of two
Alternatively, we considered to use DS75S as temperature sensor for Arduino. This thermal sensor chip has three pins for address space configuration. As a result we get 23 (or 8) possible address combinations.
The pinout scheme of the DS75 temperature sensor
The resolution of this sensor equals to ±0.5°C, but if you look at the datasheet, you’ll
find that Thermometer Error TERR has the max value of ±3°C across the entire
measurement range. For example: despite the sensor’s half-degree accuracy and due to the temperature
error parameter TERR of ±3°C, when sensor shows +12.5°C, the real value can be
anywhere from +9.5°C to +15.5°C. Such measurement accuracy is unacceptable for our Arduino project.
In the meantime, the LM75 temperature sensor is the counterpart to the previous one having close or similar parameters. The resolution of this sensor is ±0.5°C, measurement accuracy - ±2°C.
ADT7310 Arduino temperature sensor with the SPI interface. SPI is a popular interface used for high-speed data transmission within Master/Slave architecture. To implement the data exchange through the SPI interface, following signals are used:
- MISO or SOMI - Master In, Slave Out. Is used to transfer data from the slave device to the master device;
- MOSI or SIMO - Master Out, Slave In. Is used to transfer data from the master device to the slave device;
- SCLK or SCK - Serial Clock signal. Is used to transmit a clock signal to slave devices;
- CS or SS – Chip Select/Slave Select.
And two additional power cords: Vdd and GND.
An example of connecting four slave devices via the SPI interface.
Thus, according to the schematic above, we need to route the bus to the temperature sensors using 7
service wires and 2 power wires - 9 conductors in total. At the same time, we need to add 4 pins to the
busy SPI Arduino interface to implement switching between four temperature sensors. That makes a total
of seven pins on Arduino to be used for the temperature reading.
The next is the DS18D20 temperature sensor with the 1-Wire interface.
Communication between devices connected to the 1-Wire bus is carried over a single wire. Each device on the bus has its unique 64-bit serial number. In view of this, we can easily attach needed number of temperature sensors (4, in our case). At the same time, this sensor can be moved forward on a long distance (dozens of meters). There is also a version of a sensor with sealed-case for the measurement of the water temperature - Waterproof DS18B20.
Example of attaching several (4) temperature sensors connected to a 1-Wire interface
DS18D20 temperature sensor parameters according to the datasheet:
- Accuracy: ±0.5°C across the whole measurement range;
- Resolution: 0.0625°C (12-bit conversion).
Another 1-Wire sensor on our list is DHT11. Along with temperature measuring, this sensor can measure humidity and is often used in conjunction with a humidity sensor for Arduino.
Compared with the DS18D20 in terms of connectivity, this sensor cannot boast any built-in logic
which can help to realize address space. Thus, to connect 4 sensors to Arduino we need to use 4
DATA wires, one per each sensor.
DHT11 temperature sensor parameters:
- Accuracy: ±2°C;
- Resolution: 1°C.
As we see, resolution and accuracy clearly are beyond the technical requirements set for this project.
There is one more temperature sensor with an interesting connection method that uses Pulse Count Interface (PCI) - LMT01.
According to the datasheet its parameters are as follows: - Accuracy: ±0.5°C across the entire measuring range; - Resolution: not worse than 0.06°C. To connect temperature sensor to Arduino only 2 GPIO ports of the controller are required.
Connection of a single LMT01 temperature sensor
Or five GPIO ports to connect 4 temperature sensors
Example of connecting multiple LMT01 temperature sensors to Arduino
An important feature of this sensor is small temperature resistance between the sensor housing and the
measured environment. Since we need to get measurements (temperature) on the cold and warm sides of the
Peltier element with an accuracy of ±0.5°C at least, structural peculiarities of this sensor are very
Of all the abovementioned sensors, DHT11 has the largest temperature resistance since the sensor itself is embodied in plastic body and is more suitable for measuring air flows temperature rather than contact measurements. All other sensors have casing type TO-92, WSON, SOP, μSOP, SOIC or SOT-23 types, which provide a larger contact area to the studied surface and low thermal resistance.
Results of this study we compiled into the following table:
|Sensor||Measurement range, °C||Accuracy, °C||Resolution, °C||Data interface||Price, $||Thermal resistance|
|AD7415||-40 to +85||±0.5||±0.5||I2C||2.5||low|
|ADT7310TRZ||-55 to +150||±3||±0.5||SPI||3||low|
|DS18D20||-55 to +125||±0.5||±0.5||1-Wire||1||low|
|DS75S||-55 to +125||±3||±0.5||I2C||2||low|
|DHT11||0 to +50||±2||±1||1-Wire||1.5||high|
|LMT01LPG||-50 to +150||±0.5||±0.5||PCI||2.5||low|
|LM75||-55 to +125||±2||±0.5||I2C||1||low|
With a view to reduce mass production costs, number of GPIOs used, we have chosen the DS18D20 remote
temperature sensor, that satisfies our requirements for temperature measurement accuracy and
error limits. Also, this sensor has low cost. Thanks to a good accuracy, small measurement error,
and the waterproof case, this sensor will be used as a cheap body temperature sensor in the
Even using a single DATA wire for each temperature sensor, we have only 4 GPIOs involved. This is important since other GPIO ports we need to use for control keys, buttons, service inputs, battery voltage measurement, LCD monitor and Bluetooth connections. 1-Wire interface can be rewired programmatically without much effort on any GPIO.
So, to sum everything above mentioned up, here is a complete list of all great features of DS18D20.
When developing a new project ThinIce, we had to choose temperature sensor Arduino. The technical specifications required us to use 4 temperature sensors to control the temperature of Peltier elements, sides with low and high temperature.
The development of electronics requires a deep knowledge of circuit board architecture and modern databases. Furthermore, to be a specialist in this discipline, you have to be able to use computer-aided design (CAD) software and create boards in full accordance with the requirements of the Electric Membership Corporation (EMC).
The creation of a device prototype is a very important and, oftentimes, necessary stage of electronic product development. Methods and approaches employed in the electronic prototyping process depend heavily on resources provided by a client; as well as on particular tasks to be solved with the help of a prototype.