Winavr работа с двумя датчиками DS18b20

Автор: | 04.11.2016

Пример работы с двумя датчиками DS18B20

 

Есть два алгоритма работы с несколькими датчиками; 1. использование алгоритма SEARCH_ROM, 2. предварительное считывание ROM кодов датчиков, и обращение к каждому по отдельности. Использование первого алгоритма приемлемо когда, требования к стабильности работы устройства минимальны, потому как данный алгоритм довольно сложный. Я ниже буду описывать свой пример реализации второго варианта.

Сначала считываем ROM коды датчиков, для этого используем функцию:

ROM код записывается в двухмерный массив (rom_code[8][8]), далее выводим код куда либо, на LCD дисплей или в UART и сохраняем. Как выводить я писать не буду это вы уже сами делайте на свой вкус.

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

Теперь чтобы обратится к нужному нам датчику необходимо реализовать вот этот алгоритм:

алгоритм

 

Описание команд можно посмотреть в datashet на датчик.

Пример кода:

Функция передачи ROM кода датчика:

 

Проект с использованием двух датчиков:

Библиотека 1WIRE.h

Файл arrays.h

Файл main.h

Полный архив с проектом скачать.

Добавить комментарий