Тема: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине
При решении задач мониторинга и организации сетей датчиков широкое распространение получил протокол Dallas 1-Wire, позволяющий организовывать сети протяженностью от нескольких десятков (в самом простом варианте) до нескольких сотен метров, при этом на одной шине 1-Wire может находиться нескольких десятков, а в отдельных случаях до нескольких сотен датчиков.
Пример иллюстрирует решение задачи получения данных от двух цифровых датчиков температуры DS18B20, подключенных к одной шине 1-Wire.
В общем случае решение состоит из 2х этапов:
1. Определение уникального 64-битного ROM-кода (серийного номера) датчиков;
2. Адресный опрос датчиков: последовательное обращение к каждому конкретному датчику по известному ROM-коду для получения от него необходимых данных.
Для реализации этапа 1 необходимо выполнить считывание 64-битного ROM-кода каждого датчика, воспользовавшись диаграммой c5nano_dallas_address_reader.cfd из состава проекта примера. Считанные коды контроллер передает в формате ASCII в терминал персонального компьютера по UART.
Схема подключения:
Функциональная диаграмма c5nano_dallas_address_reader.cfd:
Окно терминала ПК в процессе работы диаграммы:
Для реализации этапа 2 необходимо воспользоваться диаграммой c5nano_ds18b20x2.cfd из состава проекта примера. Данные температуры, полученные от датчиков, контроллер передает в формате ASCII в терминал персонального компьютера по UART.
Схема подключения:
Функциональная диаграмма c5nano_ds18b20x2.cfd:
Окно терминала ПК в процессе работы диаграммы:
Функциональная диаграмма c5nano_ds18b20x2.cfd может быть легко модернизирована для работы с большим количеством датчиков.
Архив с исходными файлами проекта и краткими описаниями диаграмм:
http://forum.canny.ru/files/c5nano_1wire.zip
UPD 31.10.2016: Добавлены диаграммы, актуализированные для CannyLab версии 1.24.
UPD 24.05.2018: Изменены картинки схем подключения термодатчиков к контроллеру.