Электрификация

Справочник домашнего мастера

Термостат на pic16f628a

Двухканальный термостат, терморегулятор
на ATmega8 и DS18B20

Данное устройство — двухканальный термометр, термостат, терморегулятор собран на микроконтроллере ATmega8 и цифровых датчиках температуры DS18B20. Вся информация выводится на два трехразрядных семисегментных светодиодных индикатора. Эта статья завершает цикл статей с использованием микроконтроллера ATmega8 совместно с датчиками температуры DS18B20 (простой термометр, двухканальный термометр) с выводом информации на семисегментные индикаторы. В дальнейшем, мы конечно будем еще использовать датчики DS18B20 и микроконтроллер ATmega8, но уже с другими индикаторами.

Некоторые пояснения к некоторым понятиям.
1. Под словом «термостат» подразумевается способность устройства поддерживать определенную температуру
2. Под словом «терморегулятор» подразумевается способность устройства поддерживать температуру в определенных границах
3. Это условное разделение

Описание и характеристики двухканального термостата (терморегулятора) на ATmega8 и DS18B20

Контроль температуры осуществляется двумя датчиками температуры DS18B20 — на каждый канал свой датчик. По результатам измерения температуры датчиками устройство управляет двумя каналами управления, с подключенными к ним нагрузками, в соответствии с предварительными установками.

Каналы идентичны, каждый канал может работать в следующих режимах:
1. Поддержание определенной температуры (для положительной — только режим «нагрев», для отрицательной — только режим «охлаждение»)
2. Поддержание температуры в определенных границах (положительной, отрицательной, смешанной для режимов «нагрев» и «охлаждение»)
3. Однократный нагрев до определенной температуры, однократное охлаждение до определенной температуры (запуск режима осуществляется вручную)

Шаг установки температуры — 1 градус, чего вполне достаточно. Делать шаг в 0,1 градуса, при точности датчика +-0,5ºС, мне кажется особого смысла нет. А если еще изменение температуры происходит с достаточно большой скоростью, то датчик просто не будет успевать отслеживать текущую температуру с точностью до 0,1.

Диапазон установки температур включения и выключения нагрузки:
— положительная — до +99ºС
— отрицательная — до -50ºС
Включение нагрузки происходит высоким уровнем с вывода порта микроконтроллера, выключение — низким уровнем.
Двухканальный термометр с диапазоном измерения текущей температуры от -55ºС до +125ºС с разрешающей способностью:
— положительные температуры до 99ºС — 0,1 градуса, свыше 99 градусов — до одного градуса
— отрицательные температуры до -9,9ºС — 0,1 градуса, ниже -9,9 градуса — до одного градуса
Период измерений температуры — около 1 сек.
Устройство управляется тремя кнопками
Отключение канала производится путем записи нулевых установок включения и выключения канала
Питание устройства осуществляется от стабилизированного источника напряжением 5 вольт

При возникновении ошибки в работе с датчиком соответствующий номер ошибки выводится на индикатор, а нагрузка отключается:
Еr.1 — нет высокого уровня на линии DQ
Er.2 — нет импульса присутствия от датчика
Er.3 — не восстановлен высокий уровень на линии DQ после импульса присутствия
К сожалению, из-за необходимости организации динамической индикации шести разрядов индикаторов, пока не удалось решить проблему с проверкой кода CRC. Пока эта проблема решена наполовину — проверку СRC возможно проводить, и даже, если не приглядываться, мерцание индикаторов незаметно, но полностью пока она не решена. В данной программе проверки кода CRC нет. Если удастся ввести проверку CRC, то обязательно будет выложена новая программа.
В случае зависания программы сработает сторожевой таймер и микроконтроллер будет перезагружен. Перезагрузка не повлияет на работу устройства, за исключением — будут отключены нагрузки при использовании режима однократного нагрева/охлаждения

В абсолютном большинстве термостатов, «гуляющих» на просторах интернета, заложен следующий алгоритм работы:
— выставляется контрольная температура
— выставляется гистерезис
— выбирается режим работы — или «нагрев», или «охлаждение»

В этом устройстве алгоритм построен немного иначе (мне кажется, что так практичней и удобней):
— выставляется температура включения нагрузки
— выставляется температура выключения нагрузки
— и все

В чем плюсы (на мой взгляд) такого алгоритма:
1. Если нам надо, к примеру, поддерживать температуру в пределах 22-25ºС, то именно эти значения мы и выставляем, не надо искать «центр» и высчитывать величину гистерезиса
2. Режим работы — «нагрев» или «охлаждение» устройством выбирается автоматически, исходя из логики установленных значений включения и выключения нагрузки, к примеру:
— если температура включения +20ºС, а выключения +25ºС, то, естественно выбирается режим «нагрев»
— если температура включения +5ºС, а выключения -10ºС, то, естественно, выбирается режим «охлаждение»

Схема двухканального термостата, терморегулятора на ATmega8:


Схема аналогична схеме двухканального термометра. Добавлены три кнопки для управления устройством, выводы микроконтроллера РС3 и РС4 подключаются к блокам управления нагрузками (первому и второму соответственно). На схеме блоки управления не раскрыты, о них мы поговорим в конце статьи.

Программа двухканального термостата (терморегулятора) на ATmega8 и DS18B20

Микроконтроллер ATmega8 (с любыми буквенными обозначениями) с внутренней тактовой частотой 8 МГц.
Алгоритм программы реализован на прерываниях от таймеров-счетчиков Т0 (рабочий режим) и Т2 (режим установки порогов включения/выключения нагрузки).
При включении устройства происходит настройка необходимых данных, загрузка данных из EEPROM, предделители таймеров устанавливаются в СК/64, прерывания от таймеров — по переполнению (период 2 мс).
Разрешается прерывание от таймера Т0, разрешается глобальное прерывание.
Далее, по прерыванию от таймера Т0:
— происходит считывание данных с датчиков DS18B20 и вывод текущей температуры на индикаторы
— сравнение текущей температуры от датчиков со значениями установленных порогов включения/выключения
— управление нагрузками (включение/выключение)
— опрос кнопок
При нажатии на кнопку «Выбор»:
— запрещается прерывание от таймера Т0
— разрешается прерывание от таймера Т2
Далее, по прерыванию от таймера Т2:
— опрос кнопок
— установка порогов включения/выключения для двух каналов
— запись данных установок в EEPROM
— после установки порогов включения/выключения — аппаратный сброс
Далее — по кругу.

Управление двухканальным термостатом (терморегулятором) на ATmega8 и DS18B20

Управление устройством осуществляется тремя кнопками:
1. «Выбор»
— переход в режим установки порогов включения/выключения каналов
— выбор очередного пункта меню установки порогов включения/выключения каналов
— аппаратный сброс (автоматически, после установки порогов)
2. «+» — увеличение показаний (принудительное включение первого канала в режиме однократного нагрева\охлаждения)
3. «-» — уменьшение показаний (принудительное включение второго канала в режиме однократного нагрева\охлаждения)
При однократном нажатии кнопок №2 и №3 происходит изменение показаний на 1 градус, при длительном нажатии — автоматическое увеличение/уменьшение показаний на 1 градус с приемлемой периодичностью
При первоначальном включении устройства в установках порогов включения/отключения нагрузки записаны нули. При повторном включении устройства, в режиме установки порогов будут высвечиваться ранее записанные установки.

1. Режим термостатирования

В этом режиме необходимо установить одинаковые параметры включения и отключения нагрузки.
При этом надо учитывать, что поддержание температуры в положительном диапазоне температур осуществляется в режиме «Нагрев».
К примеру, нам надо, на нагрузке №1 поддерживать постоянную температуру +45ºС. Выставляем температуру включения и температуру выключения 45ºС.
Если температура ниже установленного значения, устройство включит нагрузку. При достижении температуры +45ºС, устройство отключит нагрузку. При «попытке» температуры опуститься ниже +45ºС (на 0,1 градуса) устройство включит нагрузку. При достижении температуры +45ºС устройство выключит нагрузку.
Поддержание температуры в отрицательном диапазоне осуществляется в режиме «Охлаждение».
К примеру, нам надо, на нагрузке №2 поддерживать постоянную температуру -7ºС. Выставляем температуру включения и выключения нагрузки -7ºС.
Если температура выше -7ºС (к примеру +1 градус) устройство включит нагрузку. При достижении температуры -7ºС, устройство отключит нагрузку. При увеличении температуры на 0,1 градус (-6,9ºС) нагрузка будет включена.

2. Режим терморегулирования

В этом режиме выбор режима «Нагрев» или «Охлаждение» осуществляется автоматически
Пример:
1. Допустим, нам необходимо поддерживать температуру в помещении путем его нагрева в пределах от +18ºС, до +21ºС:
— устанавливаем температуру включения +18ºС
— устанавливаем температуру выключения +21ºС
Устройство автоматически определяет, что выбран режим «Нагрев», при этом:
— если температура выше +21ºС, нагрузка будет выключена, при опускании температуры до +18ºС — устройство включит нагрузку, а при достижении температуры +21ºС — выключит нагрузку, далее по кругу
— если температура ниже +18ºС — устройство включит нагрузку, при повышении температуры до +21ºС — устройство выключит нагрузку, при опускании температуры до +18ºС — устройство включит нагрузку, далее — по кругу
2. Допустим, нам необходимо поддерживать температуру в холодильной установке путем охлаждения в пределах от -4ºС, до -6ºС
— устанавливаем температуру включения -4ºС
— устанавливаем температуру выключения -6ºС
Устройство автоматически определяет, что выбран режим «Охлаждение», при этом:
— если температура ниже -6ºС ( к примеру -8ºС), нагрузка будет выключена, при повышении температуры до -4ºС — устройство включит нагрузку, при достижении температуры -6ºС — устройство выключит нагрузку
— если температура выше -4ºС, устройство включит нагрузку, при понижении температуры до -6ºС — устройство отключит нагрузку, при достижении температуры -4ºС — нагрузка будет включена, далее — по кругу

Если один из температурных порогов будет в отрицательном диапазоне температур а второй в положительном, то все равно режим «Нагрев» или «Охлаждение» будет определятся автоматически и устройство будет работать по описанным выше алгоритмам.

3. Режим однократного нагрева/охлаждения до определенной температуры

Не всегда необходимо поддерживать постоянную температуру. К примеру, необходимо утром и вечером нагревать воду в самодельном титане (или в титане с неисправным блоком управления) до определенной температуры, или что-то периодически охлаждать. Данный режим как раз пригодится в таких случаях.
1. Допустим, на нагрузке №1, нам необходимо периодически подогревать воду до +90ºС:
— для температуру включения устанавливаем нулевые значения
— температуру выключения устанавливаем +90ºС
— когда потребуется включить этот режим — нажимаем кнопку №2, при этом, если температура выше +90ºС — нагрузка останется в выключенном состоянии, если температура ниже +90ºС — устройство включит нагрузку, при достижении температуры +90ºС — устройство отключит нагрузку. Следующее включение возможно только по нажатию кнопки №2.
2. Допустим, на нагрузке №2, иногда необходимо что-то охлаждать до температуры -15ºС:
— для температуру включения устанавливаем нулевые значения
— температуру выключения устанавливаем -15ºС
— когда потребуется включить этот режим — нажимаем кнопку №3, при этом, если температура ниже -15ºС — нагрузка останется в выключенном состоянии, если температура выше -15ºС — устройство включит нагрузку, при достижении температуры -15ºС — устройство отключит нагрузку. Следующее включение возможно только по нажатию кнопки №3.

4. Отключение каналов управления нагрузками

Если какой-либо канал, или оба канала, не используются — в этом случае эти каналы необходимо отключить.
Отключение канала (каналов) производится путем записи нулевых значений во все установки. По этой причине, термостатирование при установке порогов включения/выключения в 0ºС — не возможна.

Подключение нагрузки к термостату (терморегулятору) на ATmega8

Нагрузка может быть активной (лампочки накаливания, ТЭНы, электронагревательные приборы …)
Нагрузка может быть реактивной — емкостной и индуктивной. В практике чаще всего мы сталкиваемся с индуктивной нагрузкой (электродвигатели, приборы в которых имеются трансформаторы, электронная техника, катушки индуктивности …)
Кроме того, иногда приходится управлять нагрузками с постоянным током.

Самый универсальный способ управления любой нагрузкой — механическое реле. С помощью реле мы можем управлять любыми видами нагрузки.
В тоже время, если необходимо управлять только активными нагрузками, наверное предпочтительнее будет использовать в схеме симисторное управление.
Симисторы (триаки) очень удобны в управление активными нагрузками в сетях переменного тока.
Реле имеет ограниченный ресурс работы (хотя и очень большой) — обычно около 100 000 переключений и может коммутировать нагрузку в несколько киловатт. Надо учитывать, что при эксплуатации реле с нагрузкой, потребляющей мощность близко к предельным паспортным значениям реле, ресурс работы реле может снизиться на порядок. Симисторы имеют неограниченный ресурс работы при правильной эксплуатации (подключать нагрузку с мощностью не превышающей паспортной мощности симистора, а лучше выбирать симистор с запасом прочности). При управлении нагрузками мощностью 300-400 ватт симисторы могут работать без радиатора, при большей нагрузке необходимо ставить симистор на радиатор. В сети можно найти порядок расчета площади радиатора для триака.
При использовании в конструкции симисторов, очень желательно делать гальваническую развязку микроконтроллера от сети 220 вольт. Для этого обычно используют оптосимисторы (оптотриаки, драйверы управления симиситорами)

В данной конструкции применены два вида управления нагрузками:
— с помощью реле (для режимов, где не требуется частое включение/выключение и индуктивных нагрузок)
— с помощью симистора (для режима термостатирования и для любых активных нагрузок)

Светодиоды сигнализируют о включенной нагрузке, а также позволяют визуально контролировать ручной режим включения нагрузок (однократный нагрев/охлаждение).
При использовании других схем управления нагрузками необходимо помнить, что включение нагрузки происходит высоким уровнем с вывода микроконтроллера, а выключение — низким уровнем.
При использовании оптосимистора в качестве гальванической развязки, необходимо смотреть даташит прибора, в котором показаны схемы подключения к симисторам

В качестве буферного транзистора для подключения реле к микроконтроллеру можно использовать не только полевые но и биполярные транзисторы

И еще несколько схем подключения нагрузки к микроконтроллеру

Некоторые справочные данные:

Симистор BT138:

Транзистор 2N7000:

Диод 1N5819:

Характеристики некоторых симисторов:

Программа двухканального термометра, термостата, терморегулятора на ATmega8 и DS18B20:

Termostat 2 kanala OK_AlgorithmBuilder (36,7 KiB, 26 752 hits)

Termostat 2 kanala OK_HEX (13,5 KiB, 37 527 hits)

Termostat 2 kanala EEPROM_HEX (91 bytes, 447 hits)

Настройка FUSE-битов:

Прошивка для индикаторов со схемой включения «Общий анод»

Прошивка предоставлена Вячеславом Кучером и Юрием Градовым, за что им большое спасибо.

Для работы программы с индикаторами, включаемыми по схеме «Общий Анод» в представленной выше схеме необходимо заменить транзисторы структуры NPN на транзисторы структуры PNP (к примеру ВС557). При этом эмиттеры транзисторов должны подключаться к «+» источника питания, а коллекторы к разрядам индикатора.

Termostat 2 kanala OA_HEX (13,6 KiB, 2 911 hits)

В магазине сайта «МирМК-SHOP» вы можете заказать необходимые детали для сборки термостата/терморегулятор (включая запрограммированный микроконтроллер):

Другие конструкции на микроконтроллерах
1. Простые электронные часы на микроконтроллере ATyni26, с использование микросхемы часов реального времени DS1307
2. Простой термометр на микроконтроллере ATmega8 и датчика температуры DS18B20
3. Двухканальный термометр на микроконтроллере ATmega8 и датчиках температуры DS18B20
4. Двухканальный термометр, термостат, терморегулятор с возможностью работы по времени, одноканальный таймер реального времени на ATmega8 и датчиках DS18B20
5. Двухканальный термометр, часы на ATmega8, датчиках температуры DS18B20, RTC DS1307, LCD 1602

СХЕМА :

На схеме показан второй вариант включения термодатчика, если он не захотел
работать по однопроводной шине (что встречается очень редко). Обратите
внимание, что подтягивающий резистор на 11 выводе должен быть именно 4,7кОм.
Уменьшение или увеличение может привести к нестабильной работе датчика в случае
включения по однопроводной схеме.

Индикатор можно применять как с общим анодом, так и с общим катодом — просто
разные прошивки.

«*» обозначены компоненты необходимые для защиты от статического
электричества, но их можно не устанавливать.

Управление:

Кнопками «+» и «-» устанавливают температуру включения нагрузки (на экране в
первом сегменте отобразится символ подчёркивания «_»).
При одновременном нажатии обеих кнопок устройство переходит в режим изменения
гистерезиса (на экране в первом сегменте отобразится символ «d»).
Длительное удержание одной из кнопок приводит к ускоренному перебору значений.
При отсутствии нажатий на кнопки в течении 5 секунд прибор переходит в режим
отображения измеренной температуры, при этом происходит запоминание изменённых
параметров в энергонезависимую память.

Индикация:

В первом сегменте отображается точка, если Т < Т уст., т.е. нагрузка
включена. Точка отображается во всех режимах, даже при изменении установленной
температуры или гистерезиса (если сохраняется условие Т < Т уст.). В этом
же сегменте будет отображаться знак минуса «-» при отрицательной температуре.

печатку в lay

Печатка с изменениями: добавлено кнопки а также полевик и реле и изменён стабилизатор под другой корпус!

печатку с изменениями в lay

Вы не можете скачивать файлы с нашего сервера печатку от shpuntic :

Обратите внимание на перемычки под резисторами в районе стабилитронов — они для
того, чтобы можно было не устанавливать резисторы, которые отвечают за защиту от
статического электричества (на схеме помечены звёздочкой).

Пример 1 (нагрев):

Пример 2 (охлаждение):

Таким образом термостат можно применять для использования как в
нагревательных целях (тепловентилятор, обогревательный котёл, инкубатор и т.д.),
так и для охлаждения (холодильник, морозильник, и т.д.). А вот и фьюзы.

Схема. Таймер-терморегулятор на микроконтроллере

При разработке устройства ставились задачи минимизации электрической схемы, упрощения процесса управления и расширения функциональных возможностей. Они были решены за счёт применения микроконтроллера и специализированного датчика температуры.

Технические характеристики в режиме терморегулятора
Интервал регулируемой температуры, °С ………………………………….от -55 до +125
Разрешающая способность при измерении и регулировании, °С:
в интервале температуры -9,9…-99,9 °С …………………………………..0,1
в интервале температуры -55…-10 °С и +100…+125 °С ……………….1
Погрешность измерения, °С, не более:
в интервале температуры -10…+85 °С ……………………………………..±1
в интервале температуры -55…-10 °С и +85…+125 °С …………………±2
Интервал установки гистерезиса, °С ………………………………………..± 0…50
Верхняя граница установки интервала регулирования, °С …………….-55…+125
Нижняя граница установки интервала регулирования, °С …………….-55…+125
Интервал корректировки показаний термометра, °С……………………..±2

Терморегулятор работает как в режиме нагрева, так и охлаждения. Дополнительно можно установить продолжительность поддержания температуры в интервале 1—999 мин или остановку работы терморегулятора на тот же промежуток времени. В процессе работы подсчитывается суммарная продолжительность подключения нагрузки к сети. Устройство предназначено для работы совместно с датчиком температуры DS18B20 и автоматически определяет его ID-код.

Технические характеристики в режиме таймера
Интервалы установки времени
секунд……………..1…999
минут………….1…999
часов ………………1…999
Направления отсчёта времени …………………..прямое или обратное
Таймер обеспечивает задержку как включения, так и отключения нагрузки.
Схема таймера-терморегулятора показана на рис. 1. Все основные функции возложены на микроконтроллер DD1, управление режимами и ввод данных осуществляют с помощью кнопок SB1—SB3, а информация выводится на трёхразрядный светодиодный индикатор HG1. Питание осуществляется от сети, которую подключают к зажимам 1 и 2 колодки ХТ1. На трансформаторе Т1, диодном мосте VD1, стабилизаторе DA1 и сглаживающих конденсаторах С2 и С4 собран узел питания. Резистор R1 повышает надёжность работы устройства при повышенном сетевом напряжении. Но при желании его можно исключить, установив на плате взамен него проволочную перемычку.

Включение или отключение питания нагрузки осуществляется с помощью реле К1, контакты которого К1.1 нормально разомкнуты и подсоединены к зажимам 3 и 4 колодки ХТ1. Датчик температуры DS18B20 подключают к зажимам 5 и 6. Применена двухпроводная схема подключения датчика: к зажиму 6 присоединён вывод 2, к зажиму 5 — выводы 1 и 3. Для вывода информации на индикатор HG1 использована динамическая индикация с периодом обновления символов около 20 мс.
Управление работой и установку параметров осуществляют с помощью трёх кнопок SB1 “◄” (уменьшение), SB2 “►” (увеличение) и SB3 “∟” (ввод). В зависимости от предварительной установки устройство может выполнять функции универсального терморегулятора или быть в роли таймера. Для выбора функционального назначения необходимо нажать на кнопку SB3 и, удерживая её, подать напряжение питания. На индикаторе HG1 появится номер текущей установки (рис. 2). Кнопками SB1 и SB2 устанавливают режим работы: 1 — универсальный терморегулятор (задан по умолчанию), 2 — таймер. Для подтверждения следует нажать на кнопку SB3. Изменения вступят в силу после следующего включения.

При работе устройства в качестве терморегулятора датчик температуры располагают в месте, где необходимо поддерживать заданную температуру. После подключения прибора к сети на индикаторе “пробегает” тестовая надпись HELLO — терморегулятор готов к работе. В рабочем режиме на индикаторе HG1 постоянно отображается текущее значение температуры. О том, что нагрузка в данный момент включена, свидетельствует мигающая точка в младшем разряде.

Установку температуры производят кнопками SB1 и SB2, по умолчанию она составляет 30 °С. В момент нажатия на любую из этих кнопок на индикаторе HG1 появляется мигающее значение устанавливаемой температуры, а по истечении 5 с после последнего нажатия терморегулятор возвращается в рабочий режим. Все введённые данные сохраняются в энергонезависимой памяти микроконтроллера. При нажатии и удержании кнопок SB1 и SB2 выбранный параметр изменяется быстрее. В зависимости от продолжительности нажатия последовательно переключаются три его скорости изменения.
Для установки других настроек терморегулятора необходимо войти в меню. Для этого следует нажать на кнопку SB3. Изменение настроек производят в соответствии с рис. 3. Через 5 с после последнего нажатия любой кнопки устройство переходит в рабочий режим, а все настройки сохраняются в энергонезависимой памяти. Ниже приведено описание доступных параметров.

ГГР — гистерезис. Параметр, в котором задаётся разность температур включения и отключения нагрузки. Установленное число суммируется с заданной установкой температуры для включения и вычитается для выключения. Если, например, задана температура 30,0 °С, а ГГР — 4,5, то в режиме нагревания отключение нагрузки произойдёт при температуре 30,0 + 4,5 = 34,5 °С, а включение — при 30,0 – 4,5 = 25,5 °С. Если терморегулятор работает в режиме охлаждения, отключение произойдёт при температуре 25,5 °С, а включение — при 34,5 °С. Если установить ГГР равным 0, на индикаторе отобразится надпись ГР и прибор будет работать как обычный термометр, на индикаторе отобразится текущая температура, а нагрузка будет всё время отключена. По умолчанию установлено значение ГГР, равное 3,0.

ВПР — верхний предел температуры. Этот параметр определяет максимально возможное значение устанавливаемой температуры. В случае превышения этого предела, независимо от других установок, нагрузка будет отключена. По умолчанию в ВПР задано значение 80,0.
НПР — нижний предел температуры. Этот параметр определяет минимально возможное значение устанавливаемой температуры. В случае снижения температуры ниже НПР, независимо от других настроек, нагрузка также будет отключена. Значение НПР всегда меньше или равно ВПР. По умолчанию в НПР задано значение 10,0.
ВРВ — продолжительность времени включения (в минутах). Этот параметр задаёт временной интервал, в течение которого поддерживается заданная температура. По его окончании нагрузка будет отключена. Признак истечения установленного временного интервала — постоянно светящаяся точка в младшем разряде индикатора. Повторный запуск таймера производят нажатием на кнопку SB3. Если ВРВ установлено равным 0, на индикатор выводится изображение “—“, а таймер в работе терморегулятора не участвует. По умолчанию таймер отключён.
ВРО — продолжительность времени отключения. Параметр задаёт временной интервал (в минутах), в течение которого устройство находится в выключенном состоянии, предназначен для использования совместно с параметром ВРВ. По окончании установленного интервала времени устройство возвращается к функции поддержания температуры. Если, например, установить значение ВРВ 90, а ВРО 60, терморегулятор будет циклически поддерживать температуру в течение 90 мин, а затем отключаться на 60 мин и снова включаться на 90 мин и т. д. Если ВРО равно 0, на индикаторе выводится изображение “–“, а таймер в работе терморегулятора не участвует. По умолчанию ВРО имеет нулевое значение (таймер отключён).
ПАР — параметры работы. Значение ПАР определяет режим работы терморегулятора: нагревание или охлаждение. При работе совместно с нагревателем в ПАР необходимо установить НА, при работе совместно с охладителем — ОС. По умолчанию в ПАР задано значение НА (работа с нагревателем).

ПОП — поправка показаний. Этот параметр позволяет проводить корректировку показаний термометра и в случае необходимости добиться (по образцовому термометру) погрешности измерения менее 0,1 °С. Значение ПОП добавляется к текущим показаниям температуры. Обычно в корректировке показаний нет необходимости, поскольку датчик температуры DS18B20 имеет заводскую калибровку и очень высокую точность измерения. По умолчанию ПОП имеет значение 0,0 (корректировка отсутствует).
РАБ — время работы нагревателя (или охладителя). В этом режиме выводится время (в часах), в течение которого нагрузка была включена. Это позволяет оценить расход электроэнергии. Например, если месячные показания РАБ равны 250, а мощность нагревательного элемента — 0,5 кВт, расход электроэнергии составляет 125кВт·ч.
НОГ — идентификационный номер (ID-код) датчика температуры. Выводится 64-разрядный идентификационный номер датчика DS18B20, представленный в шестнадцатеричном формате. Например, 28А2С86801000017. (последняя цифра отмечена десятичной точкой). Просмотр номера производится нажатием на кнопки SB1, SB2 и может понадобиться для определения, какой из датчиков подключён. Если связь с датчиком нарушена или по каким-либо причинам код считать не удалось, на индикатор будет выведено сообщение Err (ошибка).

Устройство автоматически определяет наличие и исправность датчика температуры. При обрыве цепи или отсутствии датчика на индикаторе появится надпись HI, а при коротком замыкании или неправильном подключении — Lo. При любой неисправности нагрузка автоматически отключается. Провод, соединяющий датчик с устройством, должен иметь сечение не менее 0,5 мм2, а длину — не более 10 м. Информация считывается с датчика температуры с периодом 1 с и сравнивается с предыдущим значением. Если скорость роста температуры превышает 30 °С/с или скорость падения температуры превышает 20 °С/с, ситуация интерпретируется как аварийная и нагрузка отключается.

Для просмотра и изменения установок при работе в режиме таймера необходимо войти в меню. Для этого следует нажать на кнопку SB3. Установку проводят в соответствии с рис. 4 Через 5 с после последнего нажатия на любую кнопку устройство переходит в рабочий режим, а все настройки сохраняются в энергонезависимой памяти. После входа в меню появляется текущая установка таймера (индикатор мигает). Кнопками SB1 и SB2 устанавливают временной интервал в пределах 000…999 (по умолчанию задано 100). Если установить 000, таймер блокируется, а в рабочем режиме на индикаторе будет сообщение “—“.
После установки цифрового значения нажимают на кнопку SB3, и затем можно задать единицы измерения времени. Это могут быть секунды SEC (по умолчанию), минуты Ml или часы HOU.
Далее устанавливают режим работы таймера. При выборе ОН, по истечении установленного временного интервала, нагрузка будет подключена, выбор OFF означает, что нагрузка будет отключена. Выбор направления счёта таймера — обратный при выборе ОБС (задан по умолчанию) и прямой при выборе — ПРС. Во время работы таймера на индикаторе отображается время. Запуск таймера осуществляют нажатием на кнопку SB2. Если задан прямой счёт, показания изменяются от нуля до максимального значения, например, 0, 1, 2… и т. д., а если обратный — от максимального значения до нуля, например, 100, 99, 98… и т. д.

Остановку таймера производят кнопкой SB1. При повторном нажатии на неё он перейдёт в исходное состояние. Если выбрана установка на включение, по окончании установленного интервала нагрузка будет подключена и на индикаторе появится сообщение ОН, а если установка на выключение — OFF и нагрузка отключена. О текущем состоянии нагрузки можно судить по десятичной точке в младшем разряде индикатора. Она светит — нагрузка включена, погашена — отключена. В случае установки минут или часов точка каждую секунду кратковременно вспыхивает, если нагрузка отключена, и кратковременно гаснет, если включена.
Для повышения надёжности работы в устройстве применён ряд программных приёмов. В первую очередь, это касается работы с EEPROM микроконтроллера. Каждый параметр в энергонезависимой памяти продублирован в четырёх ячейках. Чтение и запись проводятся поблочно. После каждого чтения содержимое четырёх ячеек сравнивается между собой. Если в одной или двух из них оно отличается от остальных, единое значение всех ячеек блока восстанавливается по тем, в которых оно идентично.

Большинство деталей монтируют на двух печатных платах из фольгированного стеклотекстолита, чертежи которых показаны на рис. 5 и рис. 6. Применены постоянные резисторы для поверхностного монтажа РН1-12, остальные — МЛТ, С2-23. Оксидные конденсаторы — К50-35 или импортные, остальные — К10-17. Реле — JZC-22F3SC20DDC12V, кнопки — DTST-6. Трансформатор должен обеспечивать на выходе выпрямителя напряжение 12 В при токе до 150 мА ХТ1 — однорядный клеммник серии 305. Для программирования микроконтроллера предназначен файл modul_v2.hex.

Платы устанавливают в пластмассовый корпус рис. 7). Внешний вид собранного устройства показан на рис. 8. Резистор R2 был предназначен для защиты микроконтроллера в процессе отработки конструкции, но после изготовления нескольких экземпляров устройств он был исключён и взамен него на плате установлена проволочная перемычка.

В целях упрощения предусмотрена возможность исключения токоограничивающих резисторов R4—R11 в цепях управления сегментами индикатора HG1. В этом случае их заменяют отрезками провода, в микроконтроллер следует загрузить файл modul_v1.hex Чтобы исключить перегрузку по току индикатора и микроконтроллера, подача напряжения на каждый разряд индикатора осуществляется на 0,3 мс, поэтому работают они при номинальном среднем токе. Яркость свечения индикаторов с различным числом включённых элементов немного различается из-за неравномерного распределения тока и различного падения напряжения на выходных транзисторах портов микроконтроллера. Индикатор с общим катодом можно заменить на аналогичный, но с общим анодом. Для этого в начале программы modul_v1 .asm (modul_v2.asm) следует удалить строку tfdefine _COMMON_CATODE_ и заново откомпилировать программу.

Прилагаемые файлы: termotaimer.zip

И. КОТОВ, г. Красноармейск Донецкой обл., Украина
“Радио” №3 2012г.

В схеме, можно применять светодиодные семисегментные индикаторы с общим катодом или анодом (2 прошивки).
Датчик температуры DS18B20. Микроконтроллер ATmega8. Внутренний RC генератор 4 Meg. Желательно запрограммировать бит BODEN.
В термостате, два порога, нижний, верхний.
Алгоритм простой. Пороги это числа со знаком.
Р1-первый порог
Р2-второй порог
Сравниваются с измеренной температурой Тизм
Если ( Тизм <= Р1 ) то вывод=0;
Если ( Тизм >= Р2 ) то вывод=1;
Главное помнить, что первый порог сбрасывает вывод.
Второй устанавливает.
Так например:
при достижении 5гр. включить вывод, при снижении температуры до 3гр. выключить вывод.
Р1=3
Р2=5
Для отрицательных температур:
при температуре выше или равной -3гр. включить вывод, при снижении температуры до –5гр. выключить вывод.
Р1=-5
Р2=-3

(Все переключатели желательно замыкать на общий через резистор 1-2к).
Для сохранения параметров в EEPROM, нужно их подтверждать нажатием SET.
Первая версия.
Управляется 3 кнопками set плюс и минус. При нажатии Set на экране:
1 02 — первый параметр (при его достижении вывод уст в 0).
следующее нажатие Set
2 05 — второй параметр (при его достижении вывод уст в 1).
Датчик настроен на разрешение 12 бит. Время оцифровки температуры — 1 секунда. Датчик подключается 3 проводами.
Исходник, прошивки, схема для протеуса. v1.rar
Вторая версия (3 цифры).
Удалены десятые градуса, используется 3 цифры (ZN0..2), при нажатии SET на 0,7 сек. появляется надпись
P.oF — первый порог, при достижении этой температуры вывод PD5 сбрасывается.
P.on — второй порог, при достижении этой температуры вывод PD5 устанавливается.
Добавлено: если температура ниже 2 (верхнего) порога вывод PD6 установлен, иначе сброшен до снижения температуры до 1 (нижнего) порога.
Датчик настроен на разрешение 9 бит. Время оцифровки температуры — 0,2 секунды. .

Третья версия.
Добавлен таймер. Через время Ттайм: выключение вывода термостата, включение вывода таймера на время Ттайм_вкл.
При достижении времени Ттайм_вкл: выключение вывода таймера, разрешение работы термостата.
Нажатие Set, появляется надпись на 1сек:
Р1 — нижний порог,
Р2 — верхний порог,
t1 Ч. — уст. часов Ттайм (затем на экране 1 00),
t1 n. — уст. минут Ттайм (затем на экране 2 00),
t2 Ч. — уст. часов Ттайм_вкл (затем на экране 3 00),
t2 n. — уст. минут Ттайм_вкл (затем на экране 4 00);
Включить десятые градуса — замкнуть PD4 на землю.
Включить таймер — замкнуть PD3 на землю.
Выход таймера — PD6.
Датчик настроен на разрешение 10 бит. Время оцифровки температуры — 0,23 секунды. Датчик подключается 3 проводами.
Исходник, прошивки, схема для протеуса. v3.rar
Версия 3.1.
Добавлен второй датчик, изменен таймер.
Через установленное время вывод таймера включается, термостат запрещается. Термостат снова включается при достижении температуры второго датчика выше или равной порога P tA.
Р1 — нижний порог 1 датчика,
Р2 — верхний порог 1 датчика,
P tA — порог 2 датчика.
t1 Ч. — уст. часов,
t1 n. — уст. минут.
Датчик настроен на разрешение 12 бит. Время оцифровки температуры — 1 секунда. Датчик подключается 3 проводами.
Прошивки, схема. v3.1.rar
Четвертая версия.
Новая версия, все добавления относительно 1 версии.
Разрешение порогов увеличено до десятых градуса.
Добавлено еще два порога. Управляют выводом PD6(12).
Алгоритм работы первых порогов:
Если температура ниже 2 (верхнего) порога вывод (PD5) установлен, иначе сброшен до снижения температуры до 1 (нижнего) порога.
Алгоритм работы вторых порогов:
Такой же как в предыдущих версиях (инвертирован по отношению к первыми порогам). При достижение второго порога вывод устанавливается, при снижении температуры до первого порога сбрасывается.
При нажатие Set появляется надпись Р1(2,3,4), далее значение порога (25,7).
Датчик настроен на разрешение 12 бит. Время оцифровки температуры — 1 секунда.
Скачать, исходник, прошивки. v4.rar
Схема, монтажная плата (Sprint-Layout 5.0), схема для протеуса. Прислал Анатолий Николаевич.

Версия 4.1.
В этой версии можно программировать работу термостата по разности температур между датчиками, для управления насосом отопления. Тоесть, например, если разница между обраткой и подачей воды с котла, станет 20гр., то насос включить, а если уменьшится до 5гр., то насос выключить.
Нажатие SET, на экране:
Пороги термостата
Если температура ниже 2 (верхнего) порога вывод (PD5) установлен, иначе сброшен до снижения температуры до 1 (нижнего) порога.
tr.oF — нижний порог.
tr.On — верхний порог.
Пороги по разности температуры между 1 и 2 датчиком
P. On — разница между обраткой и подачей воды с котла станет, например 20гр., то насос включить.
P.OF — а если уменьшится, например до 5гр., то насос выключить.
Настройки времени для трех режимов.
П ВР. — Время, которое отображается температура подачи воды.
о ВР. — отображается температура обратки.
Р ВР. — отображается реальная разница между подачей и обраткой.
END
При включении, если контрольная сумма параметров не совпадает, то на экран выводится надпись EEP.
Исходник, схема, прошивки, схема для протеуса v4.1.rar

Версия 4.2.
Управление только одним насом. Удалена 4 цифра, удален термостат. Осталось только 2 порога:
Нажатие SET, на экране:
P. On
P.OFF
END
Время для 3 режимов установлено 5 секундам.
Скачать прошивку.

Пятая версия.
А здесь ничего не проинвертировано, и такое можно:). Алгоритм для всех порогов: Если температура ниже 2 (верхнего) порога вывод установлен, иначе сброшен до снижения температуры до 1 (нижнего) порога.
Скачать прошивку.
Шестая версия.
Отличия такие: для вторых порогов свой датчик, тоесть два термостата. Второй датчик DS18B20, подключается аналогично первому, на ножку РС5(28).
При замыкании PD3 на землю, показывается температура второго датчика.
Выход второго термостата ножка PD6(12).
Датчики настроены на разрешение 12 бит. Время оцифровки температуры — 1 секунда.
Скачать прошивку. Исходник для 4,5 и 6 версий имеет различия только в сравнении порогов.

Седьмая версия.
Добавлен таймер. Для управления введены 2 кнопки и переключатель.


Для автоматической работы таймера, следует замкнуть вывод PD4 на землю.
Выход таймера PD7.
Таймер по типу 3 версии, только не оказывает влияния на выхода термостата, и может быть включен постоянно или на одно срабатывание. Для индикации работы таймера в первой цифре горит запятая.
Кнопка СТАРТ ТАЙМЕРА, для одноразового запуска (на PD4 лог. 1). При включенном таймере ее нажатие отключает таймер. В автоматической работе таймера, ее нажатие, переинициализирует таймер. Если время на которое включается вывод установлено нулю (3 00; 4 00) , вывод останется включенным постоянно, таймер можно запустить заново нажав СТАРТ ТАЙМЕРА.
Принцип настройки времени таймера такой же как в 3 версии. Только вместо кнопки SET следует нажимать УСТАНОВКА ТАЙМЕРА.
Датчик настроен на разрешение 12 бит. Время оцифровки температуры — 0,87 секунды.
Исходник, прошивки, схема для протеуса. v7.rar

Версия 7.1.

Все выхода перенесены на микросхему 74НС595.
При включенном таймере вывод ТАЙМЕР ВКЛЮЧЕН, мигает с периодом 0,5сек.
Если соблюдается условие измеренная температура больше Р1 и меньше Р2,
то включен вывод — ТЕМПЕРАТУРА ДАТЧИКА 1 В НОРМЕ. Тоже для второго датчика.
Вывод ОХОЛОЖДЕНИЕ ДАТЧИК 1 включается при значении температуры Р2 + 0,2 гр. и выключится при Р2 — 0,2 гр.
Добавлена возможность устанавливать время показа каждого датчика. При отображении первого датчика вывод ПОКАЗ. ДТ. 1 включен. Время отображения датчиков, устанавливается в установках таймера соответственно параметры t d1 и t d2 .
Следующий за ними седьмой параметр dPE устанавливает задержку на включение\выкл. выводов Q5-Q7, по принципу через сколько считанных значений температуры (время оцифровки температуры — 0,87 секунды), можно менять состояние выводов.

Исходник, прошивки, схема для протеуса v7.1.rar.

Восьмая версия.
Удален второй датчик (РС5). Пороги 3, 4 привязаны к первому датчику и инвертирован выход.
Скачать прошивку.

Автор Дмитрий Мосин. Сайт автора.

Страница 1 из 2

Термостат ∆T=0,1°C Измерение температуры от -55°С до +125°С (шаг 0,1°С).

Одна из полезных вещей находящаяся в недрах интернета, и очень нужный в быту девайс.

Без преувеличения можно сказать, это термостат №1.

Многие приборы можно дополнить этой схемой, и к многим устройствам добавлена эту схема , работает надёжно.

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

Тут уже где-то были разговоры, на какое расстояние можно осуществить контроль температуры, было озвучена цифра 200 метров.

Ну, 200 не 200, а в наличии есть только начатая бухта телефонного кабеля остаток в ней 94 метра, И вот что у меня получилось на практике.

Беру к рабочему термостату подключаю этот кабель , 94 метра, сразу не работает, показания просто 0.0.

Оказывается при такой длине кабеля нужно уменьшить сопротивление 4.7к до 3к, все стало работать, как и прежде точность от длины кабеля не пострадала.

Фото устройства рядом с погодной станцией Vitek на ЖК индикаторе 25.5 °C комнатная , 16.9 °C температура на улице,

и еще немного про схему питания сделана импульсной Step-down converter на MC34063. В последнее время такие схемы блока питания, предпочитаю Low Drop схемам.

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

они имеют хорошую помехоустойчивость от наружных факторов, они малогабаритные, и не выделяют тепла,

плюс к тому же большие интервалы входных напряжений!

Печатная плата скачать архив ЗДЕСЬ t_0-1C.rar,

В этой статье расскажу о сборке цифрового термостата, который бы измерял температуру и поддерживал ее на определенном, заранее установленном уровне. Как то мне на работе подкинули задачу собрать термостат для контроля и удержания в заданных пределах температуры горячей воды, которая подается в бытовые помещения. Тогда будем решать!
Сразу было решено собирать цифровой прибор. Теперь возник вопрос какой тип термодатчика применить? Так как температура будет контролироваться в баке, в котором находится ТЭН и особой точности тут не нужно, да и температуры не большие, то сразу отказался от термопар и термосопротивлений, во-первых достаточно дороги они и требуют сложной входной части прибора (для термопар – компенсация термо — Э.Д.С холодных концов, для термосопротивлений – компенсация сопротивления соединительной линии). Тут вспомнил про цифровые датчики температуры фирмы Dallas (ныне MAXIM). Одно время я долго работал с датчиком DS1821. Микросхема DS1821 может работать в режиме термометра или в режиме термостата. В первом из этих режимов DS1821 обеспечивает измерение температуры в диапазоне -55..+125°C с дискретностью 1°C. Самым привлекательным является то, что такой термометр уже откалиброван на заводе, гарантированная точность составляет +1°C в диапазоне 0..+85°C и +2°C во всем диапазоне рабочих температур. На ней я делал простые термостаты с верхним и нижним пределом срабатывания. Но, в данной ситуации мне нужен легко перестраиваемый прибор на другое значение интервалов температуры. А этот датчик нужно перепрограммировать на другой диапазон. Как – ни будь напишу статью про этот датчик, он довольно интересный! Этот датчик так же можно заставить работать как термометр, но выбор мой пал на более новый из этого семейства DS18B20.
DS18B20 – цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора.DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются центральным микропроцессором.
Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite power”), при отсутствии внешнего источника напряжения.
Каждый DS18B20 имеет уникальный 64-битный последовательный код, который позволяет, общаться с множеством датчиков DS18B20установленных на одной шине. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков DS18B20, распределенных по большому участку. Диапазон работы датчика и точность меня
очень даже устраивала и на будующее можно еще куда датчик поставить придется, тут все просто. Для обмена данными термометр DS18B20 использует 1-Wire протокол (однопроводный протокол). Это низкоскоростной двунаправленный полудуплексный последовательный протокол обмена данными использующий всего один сигнальный провод. Естественно требуется еще и возвратный (земляной) провод. Имеется несколько типов сигналов, определенных 1-Wire протоколом — импульс сброса, импульс присутствия, запись 0, запись 1, чтение 0 и чтение 1. Все эти сигналы, за исключением импульса присутствия, формируются на шине главным устройством — MASTERом. В нашем случае это микроконтроллер. Принцип формирования сигналов во всех случаях одинаковый. В начальном состоянии 1-Wire шина с помощью резистора подтянута к плюсу питания. Главное устройство «проваливает» на определенное время 1-Wire шину в ноль, затем «отпускает» ее и, если нужно, «слушает» ответ подчиненного (SLAVE) устройства. В нашем случае подчиненное устройство — термометр DS18B20.
Блок — схема DS18B20 (DS18S20, DS1820)
Схема подключения с внешним питанием датчиков
Можно подключать несколько датчиков параллельно.
Схема подключения датчика DS18B20 в режиме паразитного питания
Вывод Vdd соединяется с GND, а 1-Wire шина дополнительно подключается к источнику питания через полевой транзистор.
Когда датчик DS18B20 выполняет преобразование температуры или копирует данные из ОЗУ в EEPROM память, он потребляет ток до 1,5 мА. Этот ток может вызывать недопустимое снижение напряжения на 1-Wire шине. Чтобы этого не происходило, 1-Wire шину на время выполнения этих операций подключают к источнику питания. Для этого и нужен полевой транзистор. Можно обойтись и без транзистора, но например когда соединительный кабель длинный, могут происходить сбои и работа будет не устойчива.
Датчик выбрали, теперь можно подумать и о схеме устройства сбора данных с датчика, индикации и управления нагрузкой.
Схем термостатов в интернете много, поэтому изобретать велосипед не стал, а взял схему вот отсюда
Вот покрупнее
Схема довольно простая, ничего лишнего, удобная индикация и управление.
Схему немного доработал. Вместо реле, которое коммутирует нагрузку, поставил опторазвязку на сборке MOC3041 и симистор Т122-25, который будет включать ТЭН.
Кнопками «+» и «-» выставляется нижний порог температуры. В режиме изменения перед температурой отображается знак «t».
При одновременном нажатии обеих кнопок термостат входит в режим установки dt (дельта температуры). По умолчанию он равен 1, т.е. если мы кнопками «+» и «-» выставили температуру 30 градусов, то температура будет поддерживаться в пределах от 30 до 31 градуса. Если dt установить 2, то температура будет поддерживаться в пределах от 30 до 32 градусов.
Если нет нажатий кнопок в течении 5 секунд индикация возвращается к отображению измеренной температуры.
В режиме измерения температуры индикатор отображает текущую измеренную температуру, и в первом сегменте символ «L» обозначает включенную нагрузку. Например:
— установленная температура 30 градусов, дельта 1 градус, измеренная температура 27,0 градуса. На индикаторе будет
— установленная температура 30 градусов, дельта 1 градус, измеренная температура 32,0 градуса. На индикаторе будет
Так же данный термостат можно использовать для холодильника, только выход на исполнительное устройство нужно брать с вывода 6 микроконтроллера.
Так как термостат позволяет выставлять температуру до +125 градусов, а мне этого не нужно, да и кто может кнопочки поклацать захочет ради интиреса и наклацает температуру воды в 90 градусов, то было решено ограничить диапазон от 0 до 60 градусов. Для этого на том же сайте есть проект в CodeVisionAVR, открываем его, в файле kbd.c находим следующий код
if (T_LoadOn > 450)
{
T_LoadOn —;
RefreshDisplay();
}
Это нижний предел выставляемой температуры. В файле termostat_led.c есть пояснения по форме представления температуры
//температура для удобства представлена так:
// — до 1000 = отрицательная
// — 1000 = 0
// — больше 1000 = положительная
// — 0,1°С = 1
//———————————
//-55°C = 450
//-25°C = 750
//-10.1°C = 899
//0°C = 1000
//10.1°C = 1101
//25°C = 1250
//85°C = 1850
//125°C = 2250
Т.е 450 это -55 градусов (1000-550=450), а мне нужен 0 градусов. Тогда 0 градусов будет 1000.
Изменяю код
if (T_LoadOn > 1000)
{
T_LoadOn —;
RefreshDisplay();
}
Теперь разберемся с верхним пределом
if (T_LoadOn < (2250 — DeltaT))
{
T_LoadOn ++;
RefreshDisplay();
}
Тут число 2250 означает верхний предел температуры в 125 градусов ( 1000+1250=2250), а мне нужно 60 градусов, тогда 1000+600=1600
Меняем код и получаем
if (T_LoadOn < (1600 — DeltaT))
{
T_LoadOn ++;
RefreshDisplay();
}
Далее нажимаем в CodeVisionAVR кнопочку make the projekt и забираем готовый файл для прошивки. Вот так все просто. Термостат собран на печатной плате. Индикаторов для динамической индикации на тот момент не нашлось, были в наличии только сдвоенные для статики. Пришлось под них разводить под них отдельную платку, на той же плате расположены токоограничивающие резисторы (SMD)
Вот собственно весь термостат в сборе. Все было размещено на основании из изоляционного материала. Блок питания использовался готовый импульсный от вай фай точки доступа. Все это будет монтироваться в электрическом щите. Симистор стоит отдельно на небольшом радиаторе.
Вот и вся конструкция. В работе показала себя надежно, сбоев замечено не было.
Файлы
Прошивка для индикаторов с общим анодом
Прошивка для индикаторов с общим катодом
Исходники
Даташит на DS18B20

Терморегулятор для холодильника на микроконтроллере ATMEGA8 и термодатчике DS18B20. Схема, плата, прошивка

Здравствуйте, дорогие читатели Датагор.ру!
Сегодня я расскажу о своём проекте, который родился на свет, благодаря выходу из строя одной из важнейшей части моего холодильника — терморегулятора. Автоматика перестала работать и всё время держала компрессор холодильника во включённом состоянии, доведя температуру внутри до −4°С вместо штатных +5°С! Минусовая температура в холодильнике, из супа получаем кусок льда! А в морозильной части вообще под −25°С было.
Пришла пора мне изучить принципы работы холодильных установок и собрать свой, цифровой терморегулятор, с индикацией, настройками и защитой компрессора по времени. Об этом и будем говорить далее. Приступаем!

Немного истории

Моему холодильнику уже добрых 20 лет и за это время он успел сменить в себе два мотора и один термостат, побывал в двух мастерских и теперь это «чудовище Франкенштейна» совсем перестало выключаться.
По опыту скажу, что я очень не люблю такие термостаты, их механическая начинка довольно капризная. А ещё мастера мне попадались уникальные, они чинили одну часть холодильника, и ломали другую. Например, после ремонта у меня перестала включаться лампочка «в салоне» при открывании двери.
«Хочешь, чтобы было сделано хорошо? Сделай это сам!»

Изучение холодильного вопроса и временное решение

Разобрал я корпус термостата и давай изучать, как он должен работать. При понижении температуры, фреон в трубке термостата сжимается и начинает тянуть на себя контакты реле компрессора, от чего реле отщёлкивается и отключает компрессор. После повышения температуры происходит обратный процесс. Значит, мне следует подключить своё реле к контактам, вместо термостата.
Термостат холодильника
Еда начинает портиться! Звать мастера, чтобы он провозился с холодильником пару недель (а у меня в городе такие мастера и есть) — не вариант, что делать? Надо периодически выдёргивать вилку из розетки, имитируя работу термостата! Меня хватило на один день этого мазохизма, поэтому мне нужно удобное решение и собрал я за вечер обычный микроконтроллерный таймер-реле включения/выключения буквально на подносе и это не шутка.
Прототип терморегулятора холодильника
Работает! Его задача — тупо включать компрессор на 15 минут и выключать на 45. Питание взял от импульсника из сломанного DVD плеера, в нём удачно обнаружились два выхода 12 и 5 Вольт. Реле врезал в удлинитель и прижал всё колонками. Изящное временное решение вышло!

Схема моего терморегулятора

Теперь есть «время на подумать» и поискать вдохновения в Интернете для разработки полноценного терморегулятора.
Что в итоге я выяснил:
• компрессор может работать часами, но не сутками, ему нужен отдых;
• после выключения компрессора, нужно минимум 5-10 минут перед повторным запуском.
В остальном, есть простор для творчества.

Принципиальная схема терморегулятора
Тут всё просто. Есть реле RL1 на ток в 16А на каждую группу, управляющую компрессором. Ключ Q1 управляет этим реле, получая команды от микроконтроллера U1. МК тактируется от кварца в 4 МГц.
Кнопки управления всего две, это «PLUS» и «MINUS», подтянуты они к плюсу питания и зашунтированы ёмкостями С4 и С5, для избавления от дребезга контактов.
Используется цифровой термодатчик U1 ds18b20, работающий по однопроводному протоколу.
Вся индикация — на семисегментном LED индикаторе с общим анодом, работающим в динамическом режиме. Светодиод «WORK» это индикатор состояния компрессора, который показывает, включен он или нет.
Питание взял от готового импульсника, на выходе которого, снимается 12В на реле и 5В на всё остальное.
Осталось ознакомиться со схемой холодильника и приступить к разработке логики управления компрессором.
Электрическая схема холодильника «NORD-214-1».
SK — терморегулятор; EL — пампа накаливания; К — пускозащитное реле; М — компрессор; ЕК1 — электронагреватель поперечины; ЕК2 — электронагреватель оттаивания; SQ — выключатель освещения; Х — провод армированный.
В итоге, клеммы с термостата SK будут отключены и перенаправлены на контакты моего реле.

Пишем холодильную программу для МК

Начинаем продумывать логику программы, а она довольно сложная. Мне даже в начале разработки, после пары дней кумеканья, пришлось стереть всё и писать код заново, но предварительно составив блок-схему логики работы программы.
С блок-схемой стало гораздо проще писать «поэму». Общая логика работы программы описана ниже на рисунке.
Блок-схема работы основной части программы
Тут не указана процедура опроса кнопки, т.к. она происходит постоянно на всех этапах работы программы. Во время периодического опроса датчика, а это каждые 3 секунды, происходит проверка исправности датчика температуры. В случае потери связи с датчиком, программа перейдёт в аварийный режим, когда вызывается подпрограмма таймера работы/отдыха компрессора. Для возврата в нормальный режим, необходимо будет исправить связь с датчиком температуры и выключить/включить устройство.
Блок-схема работы программы в аварийном режиме
Данная подпрограмма является копией той, что работала на подносе в начале статьи, так что предыдущие труды прошли не зря.
Прошивка и исходники, как всегда, в подвале статьи! Что касается фьюзов, то они все сняты, кроме CKSEL1, т.е. микроконтроллер настроен на работу от внешнего кварца на 4 МГц.

Индикация и настройки

Теперь поговорим об индикации. В устройстве заложены несколько параметров, которые можно настраивать:
1) температуру внутри — «t» (от 0 до 10 градусов, шаг 0,1 градус);
2) гистерезис заданной температуры — «G» (от 1,0 до 5,0 градусов, шаг 0,1 градус);
3) таймер отдыха компрессора — «h» (от 5 до 60 минут, шаг 1 минута);
4) таймер работы компрессора — «H» (от 10 до 600 минут, шаг 10 минут);
5) время работы компрессора в аварийном режиме — «on» (от 5 до 99 минут, шаг 1 минута);
6) время отдыха компрессора в аварийном режиме — «oF» (от 5 до 99 минут, шаг 1 минута).
Далее фотографии с реальными настройками.
1) температура внутри холодильника
2) гистерезис заданной температуры (+/- 1,5 градуса)
3) таймер отдыха компрессора (12 минут)
4) таймер работы компрессора (2 часа)
5) время работы компрессора в аварийном режиме (20 минут)
6) время отдыха компрессора в аварийном режиме (50 минут)
Настройка температуры производится простым нажатием кнопок «PLUS» и «MINUS», при этом первоначальное нажатие покажет текущую заданную температуру, а повторное нажатие одной из двух кнопок, уже изменит её на 0,1 градус.
Если не трогать кнопки 2 секунды, настройки сохраняются и устройство покажет текущую температуру в камере холодильника.
Для проведения настроек других параметров, нужно нажать сразу две «PLUS» + «MINUS» кнопки и отпустить, а затем изменять значения необходимых параметров теми же кнопками «PLUS» и «MINUS».
Переход на следующий параметр в меню, происходит также нажатием сразу двух кнопок «PLUS» + «MINUS».
Если не трогать кнопки 2 секунды, все настройки сохраняются и индикация возвращается на показ температуры в камере холодильника.
Порядок переключаемых с помощью двух кнопок параметров соответствует порядку пунктов (2 → 3 → 4 → 5 → 6), перечисленному выше.
Применение параметров в программе в реальном времени происходит только в пунктах 1, 2, 5, 6. Параметры пунктов 3 и 4 применяются после событий старта/остановки компрессора.
При подаче питания на устройство на индикаторе высветится оставшиеся время отдыха компрессора. Это подстраховка. Мало ли, вдруг было отключение электричества, и компрессор до этого события работал, его же нельзя вот так сразу запускать. Нужна пауза минимум 5-10 минут, чтобы давление внутри стравилось, иначе пусковой ток будет слишком велик, и это может повредить мотор. В моём случае, он просто не запускался и гудел на пусковой обмотке, потребляя более 2 кВт!
Таймер защиты при включении показывает, что осталось 11 минут и 44 секунды до запуска
По истечении таймера защиты индикация переключается на постоянное отображение температуры.
Гистерезис необходим для образования температурного «окна», т.е. если установлена температура +5°, а гистерезис равен 2°, то компрессор будет включаться при +7° и выключаться при +3°.

Конструкция и детали цифрового термостата

Прибор решено было вмонтировать на верхнюю крышку холодильника. Для этого была разработана плата из двух частей — цифровая и силовая.
В крышке холодильника была установлена новая заглушка, в месте, где должен быть световой индикатор в более дорогих моделях холодильников данной серии. Вот как раз и используем заготовленное заводом пространство.
Выпилил окошки и отверстия в заглушке. Хорошо, что у меня завалялся кусок лицевой затемняющей панели от спутникового тюнера!
Все эти кусочки пластика я посадил на термоклей. В итоге вышла довольно симпатичная лицевая панель.
Проводку от платы подключил к контактным клеммам возле компрессора, в соответствии со схемой холодильника. На фотографии видно, что моему холодильнику реально пора на пенсию, но речь не об этом.
Далее прикрутил платы на платформу от крышки.
Датчик DS18B20 протащил через отверстие на задней стенке холодильника, через которое входит фреонная трубка на испаритель внутри камеры. Провёл кабель вдоль короба от термостата и вывел наружу. Заодно и исправил косяк мастеров с лампочкой, которые как выяснилось, криво надели клеммы на патрон от лампы, эх!.. Но не будем о грустном.
Погонял систему в таком опасном открытом виде пару дней, дабы убедиться, что всё работает. После сделал гидроизоляцию платы управления, залив плату термоклеем в области микроконтроллера и надел крышку.

Результаты проделанной работы

На мой взгляд, выглядит всё круто и аккуратно. Мама очень довольна изобретением и боится нажимать на кнопки, что бы без привычки ничего не сломать.
Выставил температуру в +4,5° и гистерезис в 1,5°. Итого вышло, что холодильник включается при +6° и выключается при +3°. По времени вышло, что компрессор работает 10 минут и отдыхает 55 минут, а это 0,15 рабочего времени. В Интернете сказано, что диапазон соотношение цикла работы/отдыха в 0,2-0,9 считается нормальным. Думаю, моя цифра показывает, что экономия электроэнергии находится на высоком уровне.
Это был интересный опыт в решении данной проблемы, которая возникает у многих владельцев старых холодильников.

Файлы

 ▼ Печатная плата в SprintLayout v6.0 🕗 16/02/17 ⚖️ 43,39 Kb ⇣ 94
 ▼ Проект для опытов в Proteus v8.4 🕗 16/02/17 ⚖️ 22,53 Kb ⇣ 74
 ▼ Исходники на C в CodeVision AVR 3.12 🕗 16/02/17 ⚖️ 132,01 Kb ⇣ 85
 ▼ Исходники с правками камрада Zhenyab (расширенный диапазон) 🕗 31/03/18 ⚖️ 317,26 Kb ⇣ 36
 ▼ Прошивка с диапазоном от 0°С до +5°С 🕗 16/02/17 ⚖️ 4,23 Kb ⇣ 87
 ▼ Прошивка с диапазоном от -30°С до +5°С (от Zhenyab, не проверено в железе) 🕗 31/03/18 ⚖️ 4,52 Kb ⇣ 30
На этом всё. Благодарю за внимание!
И да прибудут с вами интересные статьи на Датагоре!

Термостат для управления однокамерным холодильником.

Сайт http://c2.at.ua.

C@at.

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

«Термостат для управления холодильником» собственно представляет собой; термостат, который предназначен для поддержания температуры внутри одной холодильной камеры с точностью до 0.1°С, с использованием настраиваемого гистерезиса, установки пользователь выбирает самостоятельно.

И дополнительно используется два термометра с точностью до 0.1°С.

Назначение термометров, информация о температуре окружающего воздуха.

Схема.

Основные элементы схемы это; ЖКИ 16х2 на базе контроллера HD44780 или KS0006, МК ATmega8 с любой буквой и корпусе, внешний кварц 8 МГц, пьезодинамик с генератором.

Датчики температуры DS18b20.

Остальная часть схемы, может иметь различные варианты исполнения, если вы имеете достаточную практику в сборке подобных схем, вам не составит большого труда, сделать замену какой либо части схемы. Например; Step-down converter микросхема MC34063 – на «кренку», подключить реле 12V — вместо реле 5V, или часть схемы МОС3063 + ВТ137 заменить на релейную в случае необходимости.

FUSE. Схема МК работает с кварцем, на частоте 8MHz.

Принцип работы программы.

Термостат — датчик U-1, имеет настраиваемый порог температуры и гистерезиса. Настройка производится из пользовательского меню, вход в меню происходит после нажатия кнопки Кн2, в этом же меню вводится вручную количество используемых датчиков DS18b20 (по умолчанию 3 шт.), это такая необходимость, чтобы в случае ошибки определения температурных датчиков во время работы термостата, это обеспечивает управление компрессором только тем датчиком, который подключен для него при настройке схемы.

Датчик U-2, U-3, это дополнительные термометры, используются для отображения на ЖКИ температуры окружающего воздуха в помещении и улице.

Сигнальный выход РВ1 (15 нога МК) предназначен для подачи звукового сигнала в случае обрыва датчика.

Исполнительный выход РС0 (23 нога МК) управляется термостатом U-1, предназначен для управления компрессором холодильника. Выход РС2 (25 нога МК) это инверсия выхода РС0.

Исполнительный выход РС1 (24 нога МК) предназначен для подключения второго компрессора, отличие от выхода РС0 это 3-х секундная задержка на включение и выключение, ( в приведенной выше схеме, показано последовательное включение реле для одного компрессора).

Исполнительный выход РС5 (28 нога МК) управляет вентилятором, предназначенным для смешивания воздушных потоков внутри холодильной камеры. Команда на включение вентилятора подается периодически на 10 секунд, пауза между включениями вентилятора, во время работы компрессора в активном состоянии 3 минуты, во время простоя компрессора пауза 8 минут.

Измерительный вход РС4 (27 нога МК) используется для определения пропадания основного питания схемы, в это время у МК проходит команда на сохранение накопленных данных статистики работы термостата. Порог напряжения при котором происходит запись в память МК, при настройке можно видеть визуально на экране ЖКИ, в виде графической буквы z (место-расположение на дисплее, в первой строке, 8-е знако-место).

Просмотр статистики.

Текущий в первой строке ЖКИ правая часть экрана, или более полный осуществляется по нажатию кнопки Кн1.

Первая строка это время текущее время работы компрессора в активном состоянии, вторая строка это время неактивности компрессора, то есть паузы.

Далее Кн2, просмотр общего (накопленного) времени работы компрессора в активном состоянии, и количество подачи команд на его включение. Переход в следующий пункт меню, где при желании можно обнулить эту статистику.

Работу схемы можно протестировать в proteus’е.

Печатная плата;

Архив файлов проекта термостата для холодильника: прошивка, proteus, печатная плата.

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

При изменении температуры меняется и давление внутри капилляра, которое передается на мембрану (сильфона). В результате термостат включает и выключает компрессор холодильника. Конечно же, подобная система термостатирования имеет низкую точность, и детали ее со временем изнашиваются.

Описание работы термостата для холодильника

Как известно температура хранения пищевых продуктов в холодильной камере должна быть +2…8 градусов Цельсия. Рабочая температура холодильника +5 градусов.

Электронный терморегулятор для холодильника характеризуется двумя параметрами: температура запуска и остановки (либо средняя температура плюс значение гистерезиса) компрессора. Гистерезис необходим для предотвращения слишком частого включения компрессора холодильника.

В данной схеме предусмотрен гистерезис в 2 градуса при средней температуре в 5 градусов. Таким образом, компрессор холодильника включается, когда температура достигнет + 6 градусов и отключается при снижении ее до + 4 градусов.

Этот температурный интервал достаточный для поддержания оптимальной температуры хранения продуктов, и при этом он обеспечивает комфортную работу компрессора, предотвращая его чрезмерный износ. Это особенно важно для уже старых холодильников, использующих термореле для запуска двигателя.

Электронный термостат является подходящей заменой оригинального термостата. Терморегулятор считывает температуру с помощью датчика, сопротивление которого меняется в зависимости от изменения температуры. Для этих целей довольно часто используют термистор (NTC), но проблема заключается в его низкой точности и необходимости в калибровке.

Для обеспечения точной установки контролируемой температуры и избавления от многочасовой калибровки, в данном варианте термостата для холодильника был выбран датчик температуры LM35. Он представляет собой интегральную схему, линейно откалиброванную в градусах Цельсия, с коэффициентом 10 мВ на 1 градус Цельсия. В связи с тем, что пороговая температура близка к нулю, относительное изменение выходного напряжения велико. Поэтому сигнал с выхода датчика можно контролировать с помощью простой схемы состоящей всего из двух транзисторов.

Так как выходное напряжение слишком мало, чтобы открыть транзистор VT1, датчик LM35 включен как источник тока. Его выход нагружен резистором R1 и поэтому сила тока на нем изменяется пропорционально температуре. Этот ток влечет падение на резисторе R2. Падение напряжения управляет работой транзистора VT1. Если падение напряжения превышает пороговое напряжение перехода база-эмиттер, транзисторы VT1 и VT2 открываются, реле К1 включается, чьи контакты подключены вместо контактов старого термостата.

Резистор R3 создает положительно обратную связь. Это добавляет небольшой ток к сопротивлению R2, который сдвигает порог и тем самым обеспечивает гистерезис. Обмотка электромагнитного реле должна быть рассчитана на 5…6 вольт. Контактная пара реле должна выдерживать необходимый ток и напряжение.

Датчик LM35 расположен внутри холодильника в подходящем месте. Сопротивление R1 припаивается непосредственно к датчику температуры, что в свою очередь позволяет соединить LM35 с монтажной платой всего двумя проводами.

Провода соединяющие датчик могут внести в схему помехи, поэтому для подавления помех добавлен конденсатор С2. Схема работает от источника питания 5 вольт построенного на стабилизаторе 78L05. Потребление тока главным образом зависит от типа используемого реле. Блок питания должен быть надежно изолированы от сети.

Большим преимуществом этой схемы является то, что она начинает работать сразу при первом запуске и не нуждается в калибровке и настройке. Если возникнет необходимость немного изменить уровень температуры, то это можно сделать путем подбора сопротивлений R1 или R2. Сопротивление R3 определяет величину гистерезиса.

Простой многоканальный термометр.

Понадобился мне для дома простейший термометр для измерения, так сказать, «забортной» температуры. Наружного термометра за окном у меня нет, поэтому решил собрать простую схему с выносным датчиком для измерения уличной температуры, чтобы не выглядывая в окно и не рассматривая деления на наружном спиртовом термометре (если он имеется), сразу видеть уличную температуру на цифровом табло в помещении.

Схему долго не искал, сразу попался на глаза термометр на PIC-контроллере, автор которого Ondrej Slovak, и так как имеется нормальный программатор, решил собрать эту схему.
Чем она мне понравилась, ну довольно простая, мало деталей и возможность подключать к этому термометру несколько датчиков температуры, которые можно установить в разных местах. Например один в помещении, другой на улице.
Датчики температуры в этом термометре самые обычные, DS18B20. Термометр позволяет подключить к себе от одного, до пятнадцати подобных датчиков, для контроля за температурой в пятнадцати различных мест (может кому-то и понадобится).
Диапазон измерения температуры этого термометра от -55 до +125 ° C, разрешение 0,1 ° C, то есть хватит на все случаи жизни, только если не на крайнем Севере, где температура может опускать и ниже 55-ти градусов.
Температуры ниже -9,9 или выше +99,9 ° C, отображаются с разрешением в 1 ° C. Отрицательные температуры отображаются со знаком «-«, а положительные без знака.
В качестве цифрового индикатора температуры, применён 3-х разрядный светодиодный индикатор с общим анодом.
Отображение температуры различных датчиков происходит автоматически. Сначала анимацией отображается номер температурного датчика в шестнадцатеричном формате (цифры от 1 до 9 и буквы A,B,C,D,E,F) в течении 3 секунд, затем индикация температуры этого датчика (10 секунд).
Как это всё отображается на цифровом индикаторе, видно на анимационном рисунке ниже. Рисунок отображает температуру и номера всех пятнадцати (если они будут) подключенных к термометру датчиков.

Поиск подключенных датчиков происходит после включения питания термометра.
Если к термометру подключён только один датчик, то его номер не отображается и на индикатор выводится только температура этого датчика без всякой анимации.
Термометр собран на микроконтроллере PIC16F88, его так-же можно собрать и на микроконтроллере PIC16F628A. В прикреплённом архиве в конце статьи, имеются прошивки для этих двух микроконтроллеров.
Ниже приведена схема термометра в авторском варианте.

Все температурные датчики подключаются параллельно к одному шлейфу.
Если в процессе эксплуатации какой нибудь датчик выйдет из строя, или с ним нарушится электрический контакт, на индикаторе отобразится неисправность в следующем формате — Er.x. где х = номер неисправного датчика (смотри рисунок ниже).
Повреждение датчика или ошибка связи с датчиком, не сразу выводятся на индикатор, а после того, как до него дойдёт очередь.

Если при включении термометра ни один датчик не будет найден, на дисплее отображается ошибка — E.00. Поиск датчиков при этом по-прежнему повторяется.

При включении термометра и первоначальном поиске датчиков, их серийные номера (первые 8 бит) загружаются и сохраняются в памяти микроконтроллера, и датчикам присваиваются номера (1- самому маленькому номеру и далее по возрастанию до F, если датчиков 15), и может случиться так, что два или более датчиков, которые подключены к термометру, могут иметь один и тот же байт (номер). В этом случае на индикаторе будет отображаться ошибка и поиск датчиков будет повторяться.
Если будет отображаться такая ошибка, то нужно будет поочередным изъятием датчиков из термометра, определить, какие из них имеют одни и те же коды (ошибка пропадёт) и заменить этот датчик на другой.

В авторском варианте термометр собран на двухсторонней печатной плате, а если убрать ICSP разъем для внутрисхемного программирования, то на односторонней печатной плате (смотри на рисунке ниже).

Красным цветом на рисунке обозначены проводники на другой стороне платы, которые относятся только к ICSP разъему для внутрисхемного программирования.

Трёх-разрядный светодиодный индикатор, припаивается на противоположную сторону от установки панельки микроконтроллера.

Я особо заморачиваться не стал, и собрал термометр на макетной плате. Индикатор поставил зелёного цвета, такой индикатор более приятен для глаз, особенно в тёмное время суток.

Поставил ещё стабилизатор на пять вольт. Наружный датчик подсоединил к термометру гибкими проводами, длинной три метра, свитыми между собой наподобие витой пары.
Провода припаял к датчику, потом закрыл место пайки и частично сам датчик термо-усадочной трубкой, и потом сами выводы проводов залил ещё клеем для герметизации, так как датчик будет находиться на улице, и это необходимо для защиты его от воздействия всевозможных атмосферных осадков.

С обратной стороны монтаж сделал обычными проводами, в качестве резисторов 300 Ом, поставил резисторы SMD.
Естественно разъём для внутрисхемного программирования устанавливать не стал, он мне тан не нужен.
В качестве блока питания здесь можно использовать любую зарядку для сотового телефона (смартфона).
Я поставил вот такую зарядку, которая давно валялась дома без дела после замены телефона.

Можно поставить в термометр и второй датчик, для контроля температуры, например в помещении, в котором установлен термометр, но мне пока это без надобности, а если понадобится — так поставить второй датчик, дело пяти минут.

Скачать архив;
Архив

— часы на PIC16F628A и датчике температуры DS18B20.

— 4-х сегментный светодиодный индикатор.

— анимированная смена индикации.

Вариант простых часов на популярном и доступном микроконтроллере PIC16F628A. Фактически c них начинался проект на AVR.

Описание часов.

1. Функции.

– часы, формат отображения времени 24-х часовый, часы:минуты.

– цифровая коррекция точности. Возможна ежесуточная коррекция ±25 сек. Установленное значение в 1 час 0 минут 30 сек будет прибавлено/вычтено из текущего времени.

– термометр.

– индикация. Поочередная.

– настраиваемая анимация смены показаний.

– использование энергонезависимой памяти микроконтроллера для сохранения настроек при отключении питания.

– если в основном режиме нажать на кнопку PLUS, то на индикаторы выводится время, если нажать на MINUS – температура. При отпускании кнопок возобновляется автоматическая смена показаний.

2. Настройка.

2.1. При включении питания часы в основном режиме.

2.2. Нажатием на кнопку SETпроизводится вход в режим настроек и выбора параметра для установки. По-очереди доступны для установки:

– минуты;

– часы;

– секунды (обнуляются при нажатии на кнопки PLUSили MINUS);

– величина коррекции. В старшем разряде символ «с»;

– время индикации текущего времени. В старших разрядах символы «tc». Диапазон установки 0÷99 сек. Если установлен 0, то время отображаться не будет;

– время индикации температуры. В старших разрядах символы «tt». Диапазон установки 0÷99 сек. Если установлен 0, то температура отображаться не будет;

– выбор эффекта анимации. В старших разрядах символы «EF». Если установлен 0, смена информации будет проводиться без эффектов, если выбран автоматический режим (символ А), то будет производиться поочередная смена эффектов. Если выбран режим r, то смена эффектов будет производиться случайным образом.

– выбор скорости анимации. В старшем разряде символ «P». Диапазон установки 0÷99. Одна единица соответствует примерно 2 мсек, чем выше величина, тем медленнее идет анимация.

2.3. Устанавливаемый параметр мигает.

2.4. Удержанием кнопок PLUS/MINUS производится ускоренная установка параметра.

3. Примечания.

Необходимо соизмерять скорость анимации и время отображения информации. Если выбрана медленная анимация и малое время отображения, то может оказаться, что информация не успевает полностью обновиться до очередной смены.

При отключении основного питания (+12V) индикация отключается, часы продолжают идти. Питание МК осуществляется от резервного источника.

В архиве прошивки для индикаторов с общим катодом и анодом, проект в Proteus и описание.

Вопросы, пожелания в форум.

admin

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

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

Наверх