Position: Index > Basic Circuit >

Arduino and DS18B20 – 1-wire digital thermometer

2015-01-13 11:31  
Declaration:We aim to transmit more information by carrying articles . We will delete it soon, if we are involved in the problems of article content ,copyright or other problems.

Finally got this DS18B20 working. Actually three of them. And in two modes. Parasite power mode and main mode.

A 4.7K ohm resistor is the key.

Starting with the main mode, three wires are needed, as this sensor has three pins.
Connection is almost simple.
Pin 1 to Arduino ground
Pin 2 to Arduino digital input
Pin 3 to Arduino 5V
And a 4.7K resistor between pin 2 and pin 3

Works with three wires, as seen on the following illustration.

DS18B20

Parasite mode eliminates one wire.
Pin 1 to Arduino ground
Pin 2 to Arduino digital input
Pin 3 to Arduino ground (same as pin 1)
And a 4.7K resistor from pin 2 to 5V

Maybe following illustration helps.
DS18B20

Of course multiple DS18B20-s or different one wire devices can connected together like so:

DS18B20

Here comes the beauty of using digital thermometers. One pin on Arduino can be used for multiple devices, working together over one wire. Much like ethernet actually. Each device has its own unique address.
Second, a two wire cable can be used. Those are usually much easier to find than three wire cables. Also digital 1-wire thermometers work on longer cables. A simple test iscable-length-for-lm35-and-ds18b20.

Some words of caution:
No pins on DS18B20 should be left unconnected. Sometimes it works this way, sometimes it does not.
If usinghttp://milesburton.com/index.php?title=Dallas_Temperature_Control_Libraryone should avoid mixing main mode and parasite mode thermometers on the same pin. Sometimes it works, sometimes it does not.

Software? look no further than
http://milesburton.com/index.php?title=Dallas_Temperature_Control_Library
Works well and has some nice examples too.

DS18B20 can also be installed outside. Some kind of protection is advisable.  I had one sensor outside, minimum temperature about -30° C, maximum about +35° C, protected likethis. No problems so far.

Working with three DS18B20 thermometers for a year now – sometimes those thermometers do not get initialized correctly. Specially after power fluctuations. Hard reset helps in that case.