Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. Improve DS18B20 resolution

Improve DS18B20 resolution

Scheduled Pinned Locked Moved Hardware
6 Posts 4 Posters 5.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • TotcheT Offline
    TotcheT Offline
    Totche
    wrote on last edited by
    #1

    Hello everybody.

    I would like to know if it was possible to improve the resolution for the DS18B20 sensors.

    The goal is to have a reading of XX.XX degrees instead of XX.X.

    In the DallasTemperature.CPP, i have seen "DallasTemperature::setResolution", but i don't know how to use it in the sketch, certainly in the setup(), i think.

    Thanks for answers

    YveauxY 1 Reply Last reply
    0
    • E Offline
      E Offline
      ericvdb
      wrote on last edited by ericvdb
      #2

      You can do as follows:

      //Declare a DeviceAddress
      DeviceAddress deviceAddress;
      
      //In your setup routine do
      sensors.getAddress(deviceAddress, index);
      //Set the resolution to 9/10/11/12 bits
      sensors.setResolution(deviceAddress, 9);
      
      //In your loop change
      gw.send(msg.setSensor(i).set(temperature,1));
      // to
      gw.send(msg.setSensor(i).set(temperature,2));
      

      Just for information, remember that the stepsize in 12bit = 0.0625 °C, so don't expect to see temperature readings like 12.50, 12.51, 12.52, ...

      1 Reply Last reply
      0
      • TotcheT Totche

        Hello everybody.

        I would like to know if it was possible to improve the resolution for the DS18B20 sensors.

        The goal is to have a reading of XX.XX degrees instead of XX.X.

        In the DallasTemperature.CPP, i have seen "DallasTemperature::setResolution", but i don't know how to use it in the sketch, certainly in the setup(), i think.

        Thanks for answers

        YveauxY Offline
        YveauxY Offline
        Yveaux
        Mod
        wrote on last edited by Yveaux
        #3

        @Totche said:

        DS18B20

        From the datasheet:
        "It has an operating temperature range of -55°C to +125°C and is accurate to ±0.5°C over the range of -10°C to +85°C."

        There's not much sense in reporting more then 1 decimal, when the sensor is only accurate up to ±0.5°C .

        http://yveaux.blogspot.nl

        1 Reply Last reply
        0
        • E Offline
          E Offline
          ericvdb
          wrote on last edited by
          #4

          @Yveaux ,

          not entirely true, read a bit further in the datasheet:

          The resolution of the temperature sensor is user-configurable to 9, 10, 11, or 12 bits, corresponding to increments of 0.5°C, 0.25°C, 0.125°C, and 0.0625°C, respectively.
          The default resolution at power-up is 12-bit

          YveauxY 1 Reply Last reply
          0
          • E ericvdb

            @Yveaux ,

            not entirely true, read a bit further in the datasheet:

            The resolution of the temperature sensor is user-configurable to 9, 10, 11, or 12 bits, corresponding to increments of 0.5°C, 0.25°C, 0.125°C, and 0.0625°C, respectively.
            The default resolution at power-up is 12-bit

            YveauxY Offline
            YveauxY Offline
            Yveaux
            Mod
            wrote on last edited by
            #5

            @ericvdb Resolution and accuracy are not the same! But if you're only interested in resolution, your solution will work just fine.

            http://yveaux.blogspot.nl

            1 Reply Last reply
            0
            • m26872M Offline
              m26872M Offline
              m26872
              Hardware Contributor
              wrote on last edited by m26872
              #6

              Agree with @Yveaux. The only situations I can see the full resolution to be useful is when one examine the accuracy or calibrate its output (e.g. offset).

              Accuracy like 0.01 C would require some high class Pt100.

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              12

              Online

              11.7k

              Users

              11.2k

              Topics

              113.1k

              Posts


              Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • MySensors
              • OpenHardware.io
              • Categories
              • Recent
              • Tags
              • Popular