Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

#219 DS18S20/OneWireReading

Basic interrogation of a DS18S20 using 1-wire protocol


▶️ return to the LEAP Catalog


The DS18S20 is an inexpensive 1-Wire digital thermometer with a range of -55°C to +125°C, at ±0.5°C Accuracy from -10°C to +85°C.

It comes in TO-92 packaging and may be powered directly (using three pins), or take parasitic power from the data line (using two pins).

Basic Operation

The sequence of operations boils down to this:

  • Send a search request on the wire to find a device
  • Get the device address and ensure the family code is as expected
  • Issue conversion command (0x44)
  • Wait for conversion, then read the conversion scratchpad from the device
  • Process the data received

Family Codes

Model Code
DS18S20 0x10
DS18B20 0x28
DS1822 0x22

Example Code

The OneWireReading.ino sketch is a basic demonstration based on the examples on the OneWire Arduino playground page.

I've refactored a little to make the code more readable.

It constantly polls the DS18S20 device and logs to the serial output. Here's an example:




The Schematic

The Build

Credits and References