Электрическое подключение датчика DS18B20 к микроконтроллеру
Для подключения датчика DS18B20 к микроконтроллеру или одноплатнику используется шина 1-Wire. 1-Wire в переводе с басурманского означает "один провод". Но, как мы увидим далее, никаким одним проводом здесь и не пахнет, поэтому название 1-Wire является обыкновенной маркетинговой уловкой типа "беспроцентного кредита", "безлимитного интернета" или акции "купи два майонеза по цене трёх и получи третий в подарок".
В нормальном режиме для подключения используются три провода: питание 5В или 3,3В, "земля", а также один провод для передачи данных. Поскольку 1-Wire является шиной, то с помощью этих проводов к одному контроллеру можно подключить множество температурных датчиков одновременно. Выбор конкретного датчика для съёма показаний в таком случае осуществляется программно. Теоретически количество датчиков (или других устройств), которые можно подключить к одной шине 1-Wire составляет 255, но на практике это число всегда ниже из-за различных физико-электрических ограничений.
Датчик можно сконфигурировать для работы в "паразитном" режиме питания, когда он получает питание с линии данных, что позволит использовать только два провода для его подключения: линию данных и линию "земли" (но всё равно не один провод!). Для работы в паразитном режиме питания вывод питания датчика соединяется с выводом "земли". Датчик DS18B20 содержит конденсатор, который заряжается от шины данных, когда по ней не передаются данные, и служит источником питания для датчика, когда нужно передать данные. Связь по интерфейсу 1-Wire двунаправленная, полудуплексная. Поэтому микроконтроллер использует шину данных и как вход, и как выход, изменяя назначение по надобности.























