Главная » Бытовая электроника » Термостат на микроконтроллере с использованием от 1 до 15 датчиков DS18B20

Термостат на микроконтроллере с использованием от 1 до 15 датчиков DS18B20

Данный контроллер предназначен для системы отопления или охлаждения с возможностью отслеживать до 15 датчиков температуры DS18B20.

HILDA - электрическая дрель
Многофункциональный электрический инструмент способн...
Подробнее

Описание

  • Схема на микроконтроллере PIC16F1847 (88, 628A)
  • Датчики температуры DS18B20 на шине 1-Wire DALLAS
  • Питание датчиков как внешнее, так и паразитное
  • Возможность выставления верхнего и нижнего предела температуры отдельно для каждого датчика
  • Трехразрядный светодиодный дисплей с мультиплексным управлением (общие аноды)
  • Управление 3 кнопками: TlS-левая, TlM-средняя, ​​TLP-правая
  • Выходы: B4 — нагрев, A1 — охлаждение, A3 – ошибка датчика

Датчики DS18B20

  • Диапазон измеряемых температур: -55 … + 125° C
  • Разрешение: 0,1° C
  • Калибровка не требуется, датчики калибруются в процессе производства, точность ± 0,5° C (в диапазоне от -10 до 85° C)
  • Частота измерения примерно каждые 3 секунды
  • Датчики подключаются трехжильным кабелем (внешнее питание)
  • Выводы (на рис. ниже) GND — синий, линия данных 1-Wire — зеленый, VDD — оранжевый

Также возможно подключение датчиков двумя проводами (паразитное питание). Обратите внимание, что температура выше 100° C не может быть измерена с помощью паразитного питания.

Программа микроконтроллера позволяет комбинировать оба варианта питания датчиков.

Подберите сопротивление резистора PULLUP (от 4K7 до 1K) в соответствии с длиной кабеля. Экранированный телефонный кабель (длиной 45 м), как на рисунке выше, с резисторами PULLUP сопротивлением 1 кОм работает надежно.

Дисплей, управление, меню

Термостат работает во всем температурном диапазоне датчиков: от -55 до 125° C с разрешением до одного десятичного знака. Однако отображение на 3-х значном дисплее имеет некоторые ограничения. Температуры ниже -9,9 и выше 99,9° C отображаются без десятичных знаков.

Если датчик выходит из строя (нарушение связи, CRC не соответствует), вместо температуры будет отображаться ошибка [Er.x.], а выход A3 будет иметь высокий уровень. Количество пунктов меню определяется количеством найденных датчиков (при поиске).

Режим анимация всегда запускается при включении термостата. Температура каждого датчика отображаются одна за другой. Перед показом каждой температурой сначала отображается номер датчика, примерно 1,5 сек, а затем 5 сек температура.

Номера датчиков от 10 до 15 отображаются в формате HEX, то есть латинскими буквами от A до F. Если подключен только один датчик, то анимация отсутствует и отображается только его температура и пределы.

Нажмите любую кнопку, чтобы переключиться в ручной режим просмотра. Что касается датчика, то это 3 пункта меню: температура, верхний предел, нижний предел. Используйте кнопки TIP / TIM для прокрутки (вперед / назад) в круговом меню.

Используйте кнопку TIP или TIM для перемещения пункта меню. Пока кнопка нажата, отображается заголовок, пока она не будет отпущена, далее отображается соответствующее значение. Постоянное удерживание TIP / TIM приведет к прокрутке заголовков.

Если нам нужно посмотреть заголовок текущего отображаемого значения, то удерживайте кнопку TlS.
Если при отображении предела удерживать кнопку S в течение некоторого времени, то начнется его изменение.

И когда на дисплее отображается температура, удерживание кнопки TlS в течение более длительного времени вернет анимацию.

Настройка пределов

Каждый датчик имеет свои собственные регулируемые пределы, верхний [Hi.x] и нижний [Lo.x]. Верхний и нижний пределы определяют гистерезис (Hi — Lo = гистерезис). Прокрутите меню до выбора необходимого предела и нажмите TlS примерно на 2 секунды. Как только значение начнет мигать, его можно будет изменить: TlP (+), TlM (-).

Удерживание кнопки ускоряет увеличение / уменьшение значения. Диапазон пределов и разрешения такой же, как и для температуры, такое же ограничение действует и при отображении ниже -9,9 или выше 99,9 ° C (без десятичных знаков). Используйте кнопку TLS, чтобы сохранить значение (в EEPROM) и завершить настройку.

Выходы

Внимание: выходы никоим образом не защищены и могут быть нагружены максимальным током до 20 мА.

В4 – отопление

  • B4 = 1, когда хотя бы один датчик имеет температуру = < его нижнего предела
  • B4 = 0, когда все датчики имеют температуру => его верхнего предела

А1 – охлаждение

  • A1 = 1, когда хотя бы один датчик имеет температуру => его верхнего предела
  • A1 = 0, когда все датчики имеют температуру = < его нижнего предела

A3 – датчик ERROR

  • A3 = 1, когда какой-то датчик неисправен
  • A3 = 0, когда все датчики работают

Этот выход может использоваться для блокировки B4 / A1

Поиск датчиков DS на шине 1-Wire

Идентификационный код (64b. ROM CODE) хранится в памяти датчика, который используется для его адресации.

Код ROM состоит из 3 частей:

  1. Общий код для семейства датчиков DS (8b. FAMILY CODE).
    DS18B20 равен 28h.
  2. Серийный номер (48b. SERIAL NUMBER). Во время производства каждому датчику присваивается свой уникальный номер.
  3. Контрольная сумма (8b. CRC). Данные, отправленные датчиком DS заканчиваются кодом CRC, этот код сравнивается микроконтроллером путем вычисления на основе полученных данных от датчика.

Режим поиска

Чтобы микроконтроллер мог взаимодействовать с датчиками DS, он должен знать их коды. Если мы заменяем неисправный датчик или снимаем его, добавляем новые датчики (также после первого включения термостата), мы должны запустить режим поиска.

Серийные номера (первые 8 бит) считываются и сохраняются в EEPROM микроконтроллера, поэтому они будут доступны сразу же при каждом включении термостата.

Обратите внимание, что при поиске датчики сортируются от наименьшего серийного номера (датчик 1) до наибольшего. Из-за ограниченного объема памяти микроконтроллера можно подключить до 15 датчиков.

Запустите режим поиска, нажав TLS + TIP. Сначала мы прокручиваем температуру, затем нажимаем кнопку TLS, а затем TIP. Надпись [0.dS] сообщает о начале поиска, и кнопки можно отпустить. Первый найденный датчик отображается как [1.dS]. Поиск заканчивается обнаружением последнего или пятнадцатого датчика [F.dS]. Сразу после завершения поиска включается режим анимации. Если датчик не найден, отображается ошибка [E.00] и поиск повторяется.

Поскольку ищутся только первые 8 бит серийного номера, может случиться так, что у двух или более датчиков этот первый байт будет одинаковым, это приведет к ошибке [E.02]. Поиск повторяется до тех пор, пока мы не отключим датчик с тем же кодом, например, постепенно удаляя датчики.

Схема подключения

Термостат на микроконтроллере с использованием от 1 до 15 датчиков DS18B20

На схеме показано внешнее подключение датчиков (трехпроводное). Остерегайтесь переполюсовки источника питания, это всегда приводит к выходу из строя датчиков. Ограничивающие резисторы R1-R8 определяют яркость дисплея, если вы используете маломощный дисплей (например, BA56-12SRWA) используйте R1-R8 сопротивлением 1 кОм. Разъем ICSP используется для программирования микроконтроллера непосредственно на плате.

Скачать прошивку (8,9 KiB, скачано: 41)
Паяльный фен YIHUA 8858
Обновленная версия, мощность: 600 Вт, расход воздуха: 240 л/час...
Подробнее

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*