DS18B20 это цифровой измеритель температуры, с разрешением преобразования 9 - 12 разрядов.
Параметры точности могут быть заданы пользователем и сохранены в энергонезависимой памяти датчика.
DS18B20 обменивается данными с микроконтроллером по однопроводной линии связи, используя протокол интерфейса 1-Wire.
Данный датчик работает только по 3-х проводной схеме, по двум проводам (паразитному питанию) не работает
Диапазон измерения температуры составляет от -55 до +125 °C. Для диапазона от -10 до +85 °C погрешность не превышает 0,5 °C.
У каждой микросхемы DS18B20 есть уникальный серийный код длиной 64 разряда, который позволяет нескольким датчикам подключаться на одну общую линию связи. Т.е. через один порт микроконтроллера можно обмениваться данными с несколькими датчиками, распределенными на значительном расстоянии. Режим крайне удобен для использования в системах экологического контроля, мониторинга температуры в зданиях, узлах оборудования.
Подключение:
Первый - GND - земля
Второй - Data - данные, которые желательно подтянуть через резистор 4.7кОм к питанию
Третий - VDD - питание от 3В до 5.5В (лучше запитывать от 5В, так как на проводе будут потери)
Слово цифровой в названии, означает, что показания датчик выдает в цифровом виде и для их получения этот датчик нужно опрашивать.
Каждый датчик имеет свой 64 битный уникальный адрес. Для того, что обратится к конкретному датчику нужно знать его адрес, но если у вас 1 датчик на шине, можно пользоваться командой (SKIP ROM [CCh]).
Шаг 1:
Нужно отправить датчику команду для того, чтобы он сделал внутреннее преобразование показаний и записал их во встроенную оперативную память (команда 44h).
Шаг 2:
Сделать запрос на получение этих показаний из оперативной памяти датчика (команда BEh).
Далее, для того, чтобы получать свежие данные с датчика, нужно регулярно посылать эти 2 команды по очереди.