Доброго всем утра (как говорится - как проснулся). Изначально семейная просьба была сделать в бане летний душ. Простая бочка на крыше мне показалась слишком простой и неэффективной. Заводские варианты имеют настолько шифрованные показания, что и инструкция не поможет. Так появилась Идея. Позже она была развита и дополнена «более расширенными» функциями.
Пишу по - горячему, так как на данный момент его ещё нет в железе, а ведётся усиленная доработка программы (скорее поиск возможных багов). Уже сейчас код можно считать написанным, но нужен сторонний взгляд на проект и независимое мнение. Наверняка я мог что-то забыть или где-то есть досадный баг. Есть надежда реализовать уже следующим летом. Сразу говорю, я не программист, используется GPT, хотя без постоянной проверки, обдумывания, чёткого описания - тупит весьма сильно. До разума ему - как до Луны через пояс Койпера.
Основные компоненты: двухскоростной насос, бойлер с нагревателем, ардуино нано с дисплеем 20х4 (русский). Давление в системе примерно 6 атм, но предельная температура без срабатывания защиты - 95 градусов. При большей (а максимум без образования газа до 150) при открытии крана - сразу пойдёт пар, этого нельзя допускать.
Что реализовано сейчас:
1. Температура коллектора измеряется датчиком
PT100 (переменная pt100Temp). Можно и датчиком PT1000, но нужно поменять калибровочный резистор на 4300 Ом и изменить строки: #define RREF 430.0, на 4300.0 и #define PT100_TYPE 100 на «TYPE 1000».
2. Датчик
DS18B20 на пине IO6 (переменная collectorTemp) используется только для настройки основного датчика PT100, затем его нужно извлечь, иначе температура в коллекторе его убьёт. Вообще его можно полностью отключить, в работе системы он не участвует. Ошибка этого датчика будет показываться только на экране настройки PT100.
3. При ошибках остальных двух датчиков (pt100Temp и boilerTemp) отключаем все реле до устранения и выводим экран ошибки.
4. Обычный летний режим - включаем насос по дельте, качаем воду из бойлера в коллектор на высокой скорости до достижения нужной температуры с погрешностью в градус.
5. Ночной режим - выключаем всё, если коллектор остывает. Не охлаждаем бойлер.
6. Зимний режим - при охлаждении коллектора гоняем воду на низкой скорости, подогревая его до 10 градусов. При охлаждении бойлера подогреваем его ТЭНом до 30 градусов. Минимальная точка - 5 градусов для обоих устройств.
7. Режим перегрева (когда перегрет коллектор и бойлер, более 95 для обоих) - принудительно выводим экран перегрева, блокируем систему. Активируем сбросной клапан на коллекторе и подачу холодной воды в бойлер (реле перегрева). Система блокирована, пока температура в бойлере не снизится до 90 градусов.
7.1 Режим термозащиты (когда перегрет коллектор или бойлер, кто-нибудь один) - включаем насос на высокой скорости для охлаждения за счёт более холодного прибора, не блокируем систему.
8. Ручное управление насосом: насос работает 20 минут, затем переход в автоматический режим
9. Ручное управление нагревателем: ТЭН работает до температуры бойлера 90 градусов, затем переход в автоматический режим.
10. Экраны переключаются кнопками «вверх» и «вниз». Между ними кнопка «ввод», которая используется только при настройке температуры, дельты и ручном управлении.
11. Экраны: Основной - Установка температуры бойлера - Установка дельты - Ручной режим насоса - Ручной режим нагревателя - Настройка датчика.
12. Дополнительные экраны: Приветственный, Экран ошибок датчиков, Экран перегрева.
В архиве файл протеуса (в нём же и код написан), также исходный код в txt, функциональная схема (всё как обычно). LCDALPHARUS.DLL закинуть в C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\DATA\MODELS
Обновлено: добавлена возможность подключить датчик для аварийного отключения при низком уровне воды в бойлере. При высоком уровне на AD5 система блокируется с указанием "Нет воды в бойлере" на экране ошибок. Тип датчика, может быть любым, хоть кнопка. При трассировке указаны полевые транзисторы (биполярники только в симуляции). Реле низкопрофильные (HK4100F - 2 шт,
G5CA-1A-E - 1 шт, DS2Y-S 1 шт). Спасибо пользователю Gordey за 3D модель
WH2004A (тема здесь:
https://kazus.run/forums/showthread....oogle_vignette сообщение 605). Как поведёт себя устройство....ХЗ, только лето покажет.
Обновлено: по результатам теста на макете изменено подключение ЖКИ: освобождены пины RX и TX, теперь индикатор подключен к 4, 5, 3, 2, 6, 7. Датчики работают корректно. Шим подсветки работает, но поставить резистор всё-же проще.