Датчики DS18B20 не умеют считывать температуру даже с точностью 0,05*С , надо применять другие.alekslug, 23 Окт. 16, 09:00
С одной стороны вроде как и верно (DS18B20_RU.PDF стр. 2) :
{
Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до
+85°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite
power”), при отсутствии внешнего источника напряжения.
}
... но с другой стороны не всё так просто как кажется (DS18B20_RU.PDF стр. 3) :
{
Основные функциональные возможности DS18B20 - его температурный
преобразователь. Разрешающая способность температурного преобразователя может
быть изменена пользователем и составляет 9, 10, 11, или 12 битов, соответствуя
приращениям (дискретности измерения температуры) 0.5 °C, 0.25°C, 0.125°C, и 0.0625°C,
соответственно. Разрешающая способность по умолчанию установлена 12-бит.
}
Комментарий пользователя Wierus , http://www.microchip.su/showthread.php?t=9548
{
Здесь нужно разделять два понятия (причем не связанные): погрешность и разрешение.
Погрешность: 0.5 градуса (в диапазоне от -10 до 85, за пределами этого диапазона погрешность выше и составляет 2 градуса по даташиту).
Разрешение: количество бит, хранящие значение температуры, от 9 до 12 бит. Разрешение устанавливается на выбор пользователя в регистре конфигурации датчика.
При разрешении 12 бит можно получать значения с шагом (но не точностью!) 0.0625 градусов.
При 11: 0.125, при 10: 0.25, при 9: 0.5.
А получить все различные десять цифр после запятой можно только при разрешении 12 бит.
Потому и получается, разрешение 0.0625, а точность все те же 0.5 градуса.
И будет у нас, например, температура 25.0625 +- 0.5. Отбросив цифры после десятых долей, выходит вполне приемлемо.
}