DS18B20 1-wire thermometer - how accurate is it and when does it need a MOSFET? I received two free samples of the DS18B20 from Maxim and used the 1-wire library to get them working with my Arduino Diecimila. Everything works fine, CRC's are correct, but I have a couple of questions:
The two DS18B20's don't give the same temperature. Even though they are three inches apart on my breadboard and both powered with the 5 volt pin on my Arduino, one chip gives temperature readings that are consistently higher than the other one. The difference is small, only 3-6 hex digits at 12 bit resolution, which is 3/16 to 6/16 of a Centigrade degree. But I expected the readings to be exactly the same since the two chips are close together, and there is no breeze or other air disturbance. And if this is normal and expected variation, then what good is 12 bit resolution if the chips are only accurate to within a quarter or half a degree (which would be 9 or 10 bit resolution)?
Page 6 of the DS18B20 datasheet at: http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf says that a MOSFET is necessary on the 1-wire bus if parasitic power is used. But the chips seem to work with both with an external supply (such as the 5 volt pin of my Arduino) and also under parasitic power regardless of whether or not a MOSFET is present. Are there specific conditions under which a MOSFET on the 1-wire bus is necessary, such as a very long data line?
Thanks for any comments on either of the two questions above.