The self heating of the DS18B20 is a topic with a lot of things said about, GIYF. Yesterday I thought I had a bad case of self heating so I tried to explore it a little bit.
I wired up four DS18B20 on a breadboard. Two are on one bus, one of those is powered directly the other is powered in parasite mode. The parasite one got an additional cosy casing to try to keep all the heat. The third one has its own bus, powered directly via a PIN on the Arduino. Idea is to completely turn off the power during idle phases. The fourth one is like the third one with the difference of half a meter cable and a fan blowing mildly at the TO-92 package.
I took the “DS18x20_Temperature” example and modified it so that #1 and #2 are constantly polled while #3 and #4 are only polled once a minute. After 15 minutes I got the following results (almost stable on every read, within about ±0.2 °C or so):
#1 parasite+foam F3 Temperature = 20.69 Celsius
#2 self powered 62 Temperature = 20.87 Celsius
#3 power on measure D4 Temperature = 20.62 Celsius
#4 power on measure + fan 24 Temperature = 19.56 Celsius
So what it the conclusion? I’m not sure.
If I do some math, I end at the thermal resistance of a TO-92 with about 160 to 210 °C/W, depending on whom you ask. Maximum energy consumption of DS18B20 is about 5 mA at 5 V. Gives 25 mW or a deltaT of 5,25 °C. Taking only the “active” current of 1 mA it gives 1 °C.
The “1 °C” look so promising and it feels so wrong.
So, again, any conclusions?
ds18b20selfheatingtest.zip (1.74 KB)