Pic16F1847 микропроцессор (88, 628A).
Датчики температуры DS18B20 на 1-проводном корпусе DALLAS.
Внешний и паразитный сенсорный блок питания.
Регулируемый верхний и нижний пределы, отдельно для каждого датчика.
Трехзначный светодиодный дисплей с мультиплексным управлением (общие аноды).
3 кнопки управления: TlS-левая, TlM-средняя, TlP-правая.
3 выхода B4-нагреватель, A1-охлаждение, A3-ERROR датчик.

Программа: (только для некоммерческих целей, только для некоммерческих целей) DST_301.HEX DST_301.HEX (7,8 kB) PIC16F1847
DST_201.HEX (7,8 kB) PIC16F88
DST_628A_140.HEX (7,7 kB) PIC16F628A

Параметры заголовка исходного кода и программного предохранителя:
DST_300.asm.txt (3,9 kB)
DST_200.asm.txt (3,9 kB)
DST_628A_140.asm.txt (3,8 kB)

Датчики DS18B20:
Диапазон измеряемых температур -55 …+125°C, разрешение 0.1°C Калибровка не требуется, датчики калибруются во время производства, точность ±0,5°C (в диапазоне от –10 до 85°C
).
Частота измерения, команда CONVERT и показания температуры происходят примерно в 1 раз за 3 секунды.
Датчики соединены трехпроводным кабелем (внешний источник питания).
Слева направо: GND, 1-Проводная связь, VDD.

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

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

Дисплей, управление, MENU:


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


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

Количество пунктов меню зависит от количества найденных датчиков (при поиске).

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

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




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

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

Установка пределов:
Каждый датчик имеет свои собственные регулируемые пределы, верхние [Hi.x] и нижние [Lo.x].
Верхняя и нижняя границы аналогичны гистерезису (Hi — Lo = гистерезис).
Прокрутите до нужного предела и нажмите TlS, около 2s. Как только значение начинает мигать, его можно настроить, TlP (+), TlM (-). Удержание кнопки ускоряет сложение/вычитание.
Диапазон пределов и разрешения такой же, как и для температуры, такое же ограничение применяется при отображении ниже -9,9 или выше 99,9 °C (без десятых). В этих крайних зонах пределы могут быть отрегулированы только единицами °C, десятые равны нулю.
Сохраните значение (в EEPROM), нажав кнопку TlS, и завершите настройку.

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

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

A1-охлаждение.
A1 = 1, если по крайней мере один датчик имеет температуру = > его верхнего предела
A1 = 0, когда все датчики имеют температуру = < их нижнего предела

Датчик A3-ERROR (выход может быть использован для блокировки B4 / A1).
A3 = 1, если какой-либо датчик имеет неисправность
A3 = 0, когда все датчики работают

Поиск схем DS на шине 1-Wire: (подробнее здесь) Идентификационный код (64b.ROM CODE)
хранится в памяти датчика, которая используется для его адресации.
Код ПЗУ содержит 3 части:

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


SEARCH_ROM.xls (23 КБ)

Режим поиска:
Для того, чтобы микропроцессор мог взаимодействовать со схемами DS, он должен знать их коды ПЗУ. Если мы заменим неисправный датчик или удалим его, добавим новые датчики (также после первого включения термостата), нам нужно запустить режим поиска. Серийные номера (первые 8 бит) считываются и хранятся в EEPROM микропроцессора, поэтому они сразу же доступны при каждом включении термостата.
Обратите внимание, что при поиске датчики сортируются от наименьшего серийного номера (датчик 1) до самого большого.
Из-за ограниченного пространства памяти микропроцессора можно подключить максимум 15 датчиков.


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


Если датчик не найден, отображается неисправность [E.00] и поиск повторяется.


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

Схема подключения: PIC3DT_11.sch (319,8 kB)

Основной разъем CON1 и процессорный модуль.

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

Печатная плата: PIC3DT_11.brd (68,9 kB)

Тест.
Ошибка в проводке, плохие соединения или короткое замыкание на печатной плате будут выявлены в этом тесте.

Включите процессорный модуль без микропроцессора и постепенно подключайте плинтус.

Список компонентов:

IO1PIC16F88-I/P (+  18pin)
DIS1BA56-12EWA
(3-значный светодиодный дисплей с общим анодом)
C11  10uF/10V (TANTAL)
C2100nF (SMD  0805)
R1-R8330 ohm (SMD 0805)
R9-R111K (SMD 0805)
TL1-TL3(12V/50mA/6x6x12mm)
CON1, ICSPRM=2,54mm (20pin)
Датчики температурыDS18B20
PULLUP4k7

От admin

Похожие записи

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

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