Для очередного фанкойла решил сделать контроллер управления.
Чтобы и обороты вентилятора (или другое исполнительное оборудование) задавал по заданной температуре и отключался, если подача жидкости слишком низкая (для режима отопления) или высокая (для охлаждения).
Выход на нагрузку - два твердотельных реле (симисторы), но можно обойтись и одним. Сама плата поддерживает ШИМ регулировку оборотов.
Ядром контроллера является мк Atmega8a, для которого есть MiniCore board в Arduino.
Для отображения используется символьный экран LCD1602.
Датчики температуры NTC.
Если нужно прошивать atmega8a из под Arduino, то нужно подготовить мк, загрузив в него соответствующий бутлоадер.
Например, для кварца 16 Mhz и загрузки прошивки на скорости 115200 это optiboot_flash_atmega8_UART0_115200_16000000L.hex.
В коде используется собственная библиотека терморезисторов NTC, в которой задается на каждые 5 (по умолчанию) градусов либо таблица значений АЦП, либо таблица сопротивлений и сопротивление подтягивающего резистора в омах.
Подключение NTC по схеме:
Параметры таблицы задаются в NTC.h, по умолчанию, она от -20 до 95 градусов.
Если коэффициент B неизвестен, то лучше использовать таблицу сопротивлений.
В контроллере есть корректировка показаний датчиков.
На дисплей выводится режим работы: Off / Heat / Cool.
В верхней строке текущая температура воздуха и цель.
В нижней строке температура подачи (трубы) и ограничение подачи.
Ограничение температуры подачи работает так - если при режиме отопления температура подачи ниже температуры ограничения, то вентилятор фанкойла останавливается.
При работе на охлаждение - наоборот.
Кнопка OK переключает режим работы или выключает контроллер.
Кнопки "Up", "Down" меняют целевую температуру воздуха.
Расширенные настройки, включая температуры ограничения подачи - длительное нажатие на кнопку "OK".
Кнопки управления подключены к мк по одному проводу, и при первом пуске их нужно откалибровать, режим калибровки так же включается, если перед подачей питания на контроллер замкнуть "KEYS-INIT".
Схема (полный размер):
Универсальная плата для Atmega8/88/168/328p в DIP корпусе:
Чтобы и обороты вентилятора (или другое исполнительное оборудование) задавал по заданной температуре и отключался, если подача жидкости слишком низкая (для режима отопления) или высокая (для охлаждения).
Выход на нагрузку - два твердотельных реле (симисторы), но можно обойтись и одним. Сама плата поддерживает ШИМ регулировку оборотов.
Ядром контроллера является мк Atmega8a, для которого есть MiniCore board в Arduino.
Для отображения используется символьный экран LCD1602.
Датчики температуры NTC.
Если нужно прошивать atmega8a из под Arduino, то нужно подготовить мк, загрузив в него соответствующий бутлоадер.
Например, для кварца 16 Mhz и загрузки прошивки на скорости 115200 это optiboot_flash_atmega8_UART0_115200_16000000L.hex.
В коде используется собственная библиотека терморезисторов NTC, в которой задается на каждые 5 (по умолчанию) градусов либо таблица значений АЦП, либо таблица сопротивлений и сопротивление подтягивающего резистора в омах.
Подключение NTC по схеме:
Параметры таблицы задаются в NTC.h, по умолчанию, она от -20 до 95 градусов.
Если коэффициент B неизвестен, то лучше использовать таблицу сопротивлений.
В контроллере есть корректировка показаний датчиков.
На дисплей выводится режим работы: Off / Heat / Cool.
В верхней строке текущая температура воздуха и цель.
В нижней строке температура подачи (трубы) и ограничение подачи.
Ограничение температуры подачи работает так - если при режиме отопления температура подачи ниже температуры ограничения, то вентилятор фанкойла останавливается.
При работе на охлаждение - наоборот.
Кнопка OK переключает режим работы или выключает контроллер.
Кнопки "Up", "Down" меняют целевую температуру воздуха.
Расширенные настройки, включая температуры ограничения подачи - длительное нажатие на кнопку "OK".
Кнопки управления подключены к мк по одному проводу, и при первом пуске их нужно откалибровать, режим калибровки так же включается, если перед подачей питания на контроллер замкнуть "KEYS-INIT".
Схема (полный размер):
![]() |
Универсальная плата для Atmega8/88/168/328p в DIP корпусе:
Комментариев нет:
Отправить комментарий