DS18B20 accuracy of multiple components, using a data logger on Arduino

Wondering if I could get some help im my understanding and use of DS18B20. My end desire is to attach discreet components to my central heating and hot water system to monitor the flow/return temperatures and understand how efficiently I have my radiators set up. However in setting up the system I have noticed some anomalies with the DS18B20 as I assumed their accuracy would all be in the 0.5 degree range at all points in a temperature cycle.

So I have been testing the correlated accuracy of 2 sets of DS18B20 sensors using an Arduino and its respective libraries.

Image1, has 5x DS18B20 “Waterproof” sensors connected to the Arduino

Image2, has 10x DS18B20 discrete components on a bread board prototype

My rough test scenario is to put the sensors in a domestic oven, let them acclimatise to the environment, start the logging for 5 mins, switch on the oven to a temp of ~50 degrees leave for 5 mins then switch off and leave for another 5 mins to decay.

Image3, Graphs of the 5 waterproof probes during a heat cycle for each of the 4 resolutions of the sensors

Image4, Graphs of the 10 discreet probes at 12 bit resolutions during a heat cycle, then physically swapping 2 of the components and then doing a repeat using exactly the same setup.

I am seeing an initial alignment in the sensors but then they take different heat paths and are affected randomly with 5-10 degree variations over a temperature cycle, before coming back into alignment, which is really odd. Especially given the -+0.5 accuracy they quote.

I am wondering if I am observing a problem in the method of reading/logging the sensors. (Arduino code attached). As I understand it when you read the sensors the command to do this goes out on the 1 wire bus to all sensors and they all then perform a read/convert before sending back the data, so I find it hard to believe its a timing issue due to the sensors being read at different points in time.

Anyway, any thoughts or discussion about why im seeing this would be appreciated as this range of inaccuracies makes me wonder about what it will be like when the components are thermally pasted to my copper pipes (or maybe this might make things better as they will be thermally attached to something other than air?)

Many thanks


Robert Wall's picture

Re: DS18B20 accuracy of multiple components, using a data logger on Arduino

I think that you are looking at a thermal low pass filter, that has a different time constant for each sensor. Presumably, the intimacy of contact between the sensor and the sleeve varies for each one.

To get meaningful comparisons at different temperatures, you need to allow time for the slowest to stabilise. But if you are selecting for the fastest response, then clearly No.3 is the one.

You might find it instructive to check a bare unencapsulated one.

taemo's picture

Re: DS18B20 accuracy of multiple components, using a data logger on Arduino

Hi thanks for the reply, yes in the second experiment I have used "discreet" packaged DS18B20 (look at image2) these showed the same response curves with some better than others! I was kind of hoping their 0.5 degree specification accuracy was regardless of a measurable/significant response time. It looks like I need to wait at least 2 mins at 60 degree to let them stabilise, which is not really useful point when comparing flow and return heating pipes over a 15min cycle.


I had the theory that it was the lack of good thermal conductivity into the sensors of the air surrounding the devices/sensors so I have just done an experiment with the 5 waterproof probes plunged into cold water, left for a while then plunged into hot water. Interestingly it looks like the response time only comes into play when we approach 50/60 degrees


See attached ....

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.