DS1820 Arduino
Есть достаточно много интересных модулей и датчиков, которые можно использовать в разработках на платформе Arduino, и один из них – это конечно датчик температуры DS1820 разработанный компанией Dallas Semiconductor и приобретенная компанией Maxim Integrated Products в 2001 году.
Выпускается в разном исполнении
- Просто датчик
- Во влагозащищённом корпусе
- В виде готового модуля
Датчик DS1820 – это не дорогой измеритель температуры с довольно хорошими характеристиками, уникальным 64 битным кодом, маленьким размером, не требующий дополнительной обвязки.
По сути, это даже не датчик, а маленький микропроцессор со своей памятью EEPROM в которую можно сохранить параметры контроля, заданные пользователем, а возможность получать данные по однопроводной линии связи, да на которую можно подвесить практически неограниченное количество датчиков, делает его практически не заменимым в разработках.
Характеристики
DS1820 (DS18S20, DS1821, DS18B20)
- интерфейс 1-Wire. На один пин микроконтроллера можно подключить несколько датчиков.
- Уникальный 64-битный серийный номер.
- Напряжение питания 3,0 В - 5,5 В. Можно использовать линию связи и подключить по схеме паразитной связи двумя проводами (“parasite power”).
- Диапазон измерения от -55°C до +125°C
- Точность ± 0.5°C в диапазоне -10 ... +85 °C.
- Разрешение преобразования 9 - 12 бит. Задается пользователем.
- Потребление тока 1,5мА
- Время измерения, до 750 мс, при максимальном разрешении 12 бит.
- Температура эксплуатации, °С 0...+55
- Относительная влажность эксплуатации, % ...55
- Производство Dallas / Maxim
- Вес, г 10
Возможность программирования параметров тревожного сигнала. установка пороговых значений температуры по максимуму и минимуму. Тревожный сигнал передает данные об адресе датчика, у которого температуры вышла за заданные пределы.
Получает данные всего по одному проводу. На этот единственный провод возможно повесить огромное количество таких же датчиков, так как каждый DS1820 имеет свой уникальный 64-битный код.
Применяются для определения температуры в помещениях, на улице, в жидкостях (версия в влагозащищённом корпусе).
Типы корпусов датчика ds1820
Выводы
- GND – Общий провод (Земля)
- D – Вывод данных. По нему так же подаётся питание при схеме с Паразитным питанием.
- VDD – Питание от 3,3 до 5,5 Вольт. В схеме с паразитным питанием соединить с Общим проводом.
Подключение DS1820
По протоколу 1-Wire. Вывод данных подключается через подтягивающий резистор 4,7 кОм к питанию. Arduino, работающий здесь как Мастер, определяет есть ли устройства на шине и обменивается с ними данными используя уникальный 64 битный код каждого датчика.
Младшие восемь бит содержат код семейства микросхем DS18B20 28h.
Средний блок из 48 бит — это уникальный серийный номер устройства.
Старшие восемь бит — это циклический код (CRC) для всех предыдущих 56 битов.
Паразитное питание
Питание получается от подтягивающего резистора включенного между выводом D(Вывод данных, центральный вывод) и + питания 3,0 – 5,5 Вольт. GND и VDD необходимо соединить. Измерение температуры при этом немного снижается до +100 С. Если вам необходимо регистрировать температуру до +125С, то необходимо подключить внешнее питание. Часто печатают схемы с дополнительным полевым транзистором, но он не обязателен при работе с Arduino, потому что на выходах микроконтроллера достаточно силы тока.
Блок-схема датчика
Память датчика.
Включает в себя оперативную (SRAM) и энергонезависимую (EEPROM) память.
В EEPROM хранятся регистры TH, TL и регистр конфигурации.
Если функция тревожного сигнала не используется, то регистры TH и TL могут использоваться как регистры общего назначения.
Режим с внешним питанием.
Тут ничего сложного нет. Подключаете VDD к + источника 3,0 В - 5,5 В, а GND к общему проводу(земле).
Подключаете подтягивающий резистор между выводом D (Вывод данных, центральный вывод) и + питания.
Подключение DS1820 к Arduino
Один датчик
Несколько датчиков
Выдержка из даташита.
Изменение резистора от длины кабеля, помех и сопротивления жил.
Конвертация температуры
Разрешающую способность преобразования датчика можно изменять с 9 до 12 битов. От этого зависит точность измерений и скорость определения температуры, соответственно 0.5 °C, 0.25 °C, 0.125 °C, 0.0625 °C. По умолчанию установлено 12 бит., так же по умолчанию датчик откалиброван в градусах Цельсия. Результат представлен как 16-разрядное число.
Эти данные, как и пороги тревожного сигнала хранятся в энергонезависимой память EEPROM.
Более подробно можно прочитать в datasheet ds1820 на русском языке
или на datasheet на английском
Принцип работы датчика
Основан на сравнении частоты 2-х генераторов. Частота первого постоянна, а второго изменяется в зависимости от изменения измеряемой температуры. При вычитании частоты первого генератора из второго получаем значение температуры.
При подаче питания датчик находится в Низком состоянии, состоянии ожидания. Микроконтроллер может запросить данные с датчика, отправив ему запрос. Датчик измерит температуру, сохранит её в 2 байтах регистра и снова уйдёт в состояние ожидания.
Тревожный режим
Значения находятся в регистрах Th и Tl и хранятся в EEPROM. При измерении температуры её значения сравниваются с Th и Tl и если они находятся в пределах, то всё в порядке, а если значения ниже чем Tl или выше Th то создаётся признак аварии.
ПРОДОЛЖЕНИЕ БУДЕТ ОПИСАНО ВО 2 ЧАСТИ.