Just a note - in page 1 just above the picture, I said
"I got the FFFF part to display 0.X degrees by dividing it by 25"
I should have added that I had first multiplied it by 16 which gave me a value between 0 and 240 decimal, in steps of 16. Dividing this by 25 (and ignoring any remainders) gives a value between 0 and 9 which can be used for the digit to the right of the decimal point. Some values will be one decimal point out compared to the values if you were to round off properly, but with a sensor accuracy of only 0.5 degrees this is not a big deal.
Thanks, Aubrey. Good points about accuracy and calibration. I would imagine the DS18B20 is similar to the older DS1820 and certainly ANY heated tracks which can conduct heat to any of the leads will affect the reading somehow. In my case, the device has an accuracy of +/- 0.5 degree C, which for any purpose I want to use them for is adequate. This also makes the resolution of 0.0625 degree a bit of overkill in some ways. That's why I didn't worry too much about rounding errors in my conversion of the fractional part of the temperature to a 0.1 degree resolution for my display.
Compared to Max's thermostat errors (which were in the region of 5 degrees (though that's Fahrenheit, it's about 3 degrees C) the DS18B20 is a very accurate device. I know what I would use if I were to design an Airconditioning thermostat!
I don't possess any super-accurate temperature calibration devices but obviously when you are using these it's important to have good thermal coupling between the calibration sensor and the DUT. And you could not do things like put a DS18B20 into an ice bath without insulating it properly, which would probably add some thermal insulation as well. Fortunately as I said, the basic 0.5 degree accuracy of the DS18B20 is fine for me!
Good article, as usual. Something to consider when using this (or any device) is what is actually being measured. Apparently the DS1820 (an obsolete version) measured the temprature of the GND pin- that was how the heat was conducted to the temprature sensor. A TI FAE recently said that this was quite common for solid state temperature sensors.
This came as a rude shock to one of our engineers. He had used the TO92 package up in the breeze to measure the temperature of air floating by. However there were some resistors heating the PCB nearby and it contributed to a measurment error.
Of course that brings us to an issue when it comes to calibrating a temperature sensor- how do you know what is the right temperature, and what exactly is your sensor measuring. Max once did a blog when he faced this problem with his home thermostat: I'm becoming hot and bothered