lamaPLC: DS18B20 1-Wire Digital Thermometer

DS18B20 1-Wire Digital Thermometer The DS18B20 digital thermometer offers 9-bit to 12-bit Celsius temperature readings and features an alarm function with nonvolatile, user-programmable upper and lower trigger points. It communicates via a 1-Wire bus that requires only one data line (and ground) to connect with a central microprocessor. Additionally, the DS18B20 can draw power directly from the data line, known as "parasite power", eliminating the need for an external power supply.

Each DS18B20 has a unique 64-bit serial code, enabling multiple units to operate on the same 1-Wire bus. This makes it easy to control numerous DS18B20s with a single microprocessor across a large area.

This feature benefits applications such as HVAC environmental controls, temperature monitoring systems inside buildings, equipment or machinery, and process monitoring and control systems.

Features

  • Unique 1-Wire interface requires only one port pin for communication.
  • Multidrop capability simplifies distributed temperature sensing applications.
  • It requires no external components and can be powered from a data line.
  • The power supply range is 3.0V to 5.5V DC.
  • Zero standby power is required.
  • It measures temperatures from -55°C to +125°C. The Fahrenheit equivalent is -67°F to +257°F.
  • It offers ±0.5°C accuracy from -10°C to +85°C.
  • Thermometer resolution is programmable from 9 to 12 bits.
  • Converts 12-bit temperature to a digital word in 750 ms (max.).
  • User-definable, nonvolatile temperature alarm settings are available.
  • The alarm search command identifies and addresses devices whose temperature is outside the programmed limits (temperature alarm condition).
  • Applications include thermostatic controls, industrial systems, consumer products, thermometers, or any thermally sensitive system.

Wiring

Red wire: Power supply (3.0V - 5.5V DC)
Black wire: GND
Yellow wire: Signal (1-wire bus)
DS18B20 wiringDS18B20 wiring

Parasitic/normal mode DS18B20 / 1-wire bus

Normal modeParasitic mode
Normal mode by 1-wire busParasitic mode by 1-wire bus
With an external supply, three wires are needed: the bus wire, ground, and power. The 4.7k pull-up resistor remains necessary on the bus wire. Since the bus is available for data transfer, the microcontroller can continually check the device's status during conversion. This allows a conversion to complete as soon as the device reports it is done, without waiting for the conversion time (which depends on device function and resolution) in “parasite” power mode.When operating in parasite power mode, it requires only two wires: one data wire and one ground wire. The power line must be connected to ground in this mode, as specified in the datasheet. A 4.7k pull-up resistor should be connected to the 1-wire bus at the controller. When the line is in a “high” state, the device pulls current to charge an internal component capacitor.

Addressing a 1-Wire device

Each 1-Wire device has a unique 64-bit 'ROM' address, which includes an 8-bit family code, a 48-bit serial number, and an 8-bit CRC. The CRC helps verify the integrity of the data.

For example, the sample code below checks if the device being addressed is a DS18S20 temperature sensor by looking for its family code, 0x10. To use the sample code with the newer DS18B20 sensor, you would look for a family code of 0x28. For the DS1822, you would check for 0x22.

DS18B20 and Arduino

DS18B20 and Arduino

With Arduino, multiple DS18B20 sensors can be connected to a 1-wire bus simultaneously. It is recommended to power the signal line with a 4.7 kΩ resistor from the 5V DC supply.

1-wire topics on lamaPLC