Добавлю ещё одну библиотеку по датчикам DS18B20. Контроллер использовал ATmega32 8 МГц от внутреннего генератора. Дисплей МТ-16S2D (можно использовать любой 1602 (DH44780).
Схема для теста:
1.png [ 38.13 КБ | Просмотров: 26748 ]
Алгоритм поддерживает поиск находящихся одновременно до 8 датчиков на шине (можно увеличивать с соответствующими добавлениями переменных и дополнениями в коде для их отображения). Сохранить в EEPROM можно не более 4 (в программе установлено ограничение). В алгоритме организовано два режима:
1) Отображения температуры сохранённых датчиков в памяти EEPROM – 4 датчика.
2) Поиск датчиков и сохранение их в память EEPROM с привязкой к конкретному каналу по желанию пользователя.
Теперь подробней о втором режиме:
Вход в режим поиска датчиков осуществляется нажатием кнопки «ОК». На дисплее высветится информация первого найденного датчика. На первой строке отображается значение читаемой температуры, затем поле для отображения к привязке номера канала, далее порядковый номер по уникальному коду и количество найденных датчиков. Если датчик ранее не был сохранён с привязкой к конкретному каналу (1…4), то в данном поле будет высвечиваться черта. Порядковый номер присваивается в порядке их нахождения. Поиск уникальных номеров начинается с меньшего к большему. На второй строке дисплея показан его уникальный 64 битный номер.
При нажатии кнопки «Down», на экране высветится следующий датчик.
Кнопка «Up» предназначена для выхода из данного режима. С первого по четвёртый найденный датчик на дисплее будет отображаться температура и знакоместо для привязки датчика к конкретному каналу (№1, №2, №3, №4). У датчиков с 5 по 8 будет данная информация заблокирована, видно будет только его порядковый номер, количество найденных датчиков и уникальный номер на второй строке. Чтобы сохранить выбранный датчик с привязкой к номеру канала необходимо нажать кнопку «ОК». Перед знакоместом номера канала появится стрелка, означающая готовность к выбору номера канала. Нажатием кнопки «Down» производится выбор номера канала от 1 до 4. При нажатии повторно кнопки «ОК» данный датчик (его уникальный номер) сохранится в EEPROM с привязкой к выбранному каналу. Сохранённые датчики с привязкой к номеру канала, так же можно и отвязать от канала, если в поле в место номера канала выбрать черту и нажать на кнопку «ОК». Если к одному и тому же номеру канала сохранить два датчика, то сохраненным останется последний, а предыдущий будут автоматически отвязан от данного канала.
Вот такая получилась расширенная библиотека.
Search DS18B20.zip [82.93 КБ]
Скачиваний: 1485
IMG_2417.JPG [ 222.33 КБ | Просмотров: 26744 ]