Найти тему
DIY

Подключение нескольких датчиков температуры DS18B20 по 1-Wire к ардуино и индивидуальное обращение к ним.

Добрый день! DS18B20 это по сути целый микроконтроллер с большими возможностями, подробнее о нем можно почитать в datasheet здесь. Каждый DS18B20 имеет уникальный 64-битный последовательный код, это позволяет размещать множество датчиков на одной линии и обращаться индивидуально к каждому и именно этим мы сегодня и займемся. Датчик имеет несколько модификаций, мы будем использовать одну из них с маркировкой ТО-92. Купить его можно как отдельный элемент, так и влагозащищенный вариант в трубке из нержавейки.

Влагозащищенное исполнение, можно измерять температуру воды.
Влагозащищенное исполнение, можно измерять температуру воды.

Для работы с датчиками по 1-Wire нам понадобятся библиотеки:

Самый простой способ установки библиотек это разархивировать их в папку C:\Users\user\Documents\Arduino\libraries и перезагрузить программу. Более подробно про установку библиотек, а также другие способы вы можете найти в интернете, об этом очень много написано.

Существует несколько способов подключения датчиков, один из них по двухпроводной схеме с паразитным питанием, но он не стабильный и мы его рассматривать не будем. Второй способ по трехпроводной схеме, GND датчика соединяем с GND ардуино, а питание берем с +5В, информационный контакт подключим к 3 пину и обязательно соединим его с питанием через резистор 4,7 кОм как показано на схеме ниже.

-3

Для начала нужно считать индивидуальный код с каждого датчика, для этого нужно загрузить такой скетч для вывода кодов датчиков в монитор порта.

-4

Скачать скетч.

Далее подключаем датчики по одному, после каждого нового подключения нажимаем кнопку reset на ардуино, смотрим в монитор порта, записываем отдельно коды и помечаем от какого датчика код.

Должно получится так.
Должно получится так.

Теперь когда у нас есть коды каждого датчика мы можем обращаться индивидуально к каждому и использовать показания в своих целях. У меня под рукой есть OLED-дисплей из прошлой статьи и я попробую вывести на него показания с трех датчиков. Подробнее о подключении дисплея, а также все необходимые библиотеки можно посмотреть здесь.

-6
-7
-8

И так, пишем вот такой скетч.

-9
-10

Скачать скетч.

Ну и чтобы посмотреть результат второй датчик был помещен в стакан с горячей водой, третий в стакан с холодной водой, а первый остался на макетке и показывал температуру воздуха.

-11
-12
-13

Как подключить датчики к разным пинам и обращаться к ним без адреса читайте здесь.

На этом все, если вам была полезна эта статья ставьте лайк, обратная связь очень важна. Ну и подписывайтесь на мой канал, впереди еще много интересного!

#diy #arduino #ардуино #электроника для начинающих #программирование #электротехника #своими руками #oled #arduino nano #микроконтроллеры