Печать

Блок управления водонагревателем(бойлером) на Atmega48

Опубликовано . Опубликовано в Устройства на AVR

Рейтинг:   / 2
ПлохоОтлично 

Ниже описана конструкция устройства управления бытовым накопительным водонагревателем (бойлером) объёмом 300 литров, подогреваемым 3-мя трубчатыми электронагревателями (ТЭН-ами) мощностью каждый по 3 кВт. В принципе, в комплекте с ним идёт штатное устройство управления, но включение/выключение контактора издаёт столь громкий резкий лязг, что спящая рядом кошка подпрыгивает как укушенная. А занудное гудение обмотки контактора во включённом состоянии выматывает нервы. Заодно захотелось добавить функции настройки температуры подогрева, а также её индикацию. Кроме того нужно было реализовать защиту от короткого замыкания ТЭН-ов, их обрыва, и звуковую индикацию аварийных режимов.

Конструктивно устройство выполнено на трёх печатных платах:

- плата управления и индикации;
- плата контроля тока и коммутации;
- плата блока питания.

Датчик температуры DS18B20 выведен экранированным кабелем. Всё это добро удалось эргономично и красиво запихать в корпус, который валялся без дела уже давно. Схема представлена ниже:В общем, само устройство похоже на десятки подобных, описанных в интернете или на страницах радиолюбительской прессы – никаких суперовских ноу-хау здесь не применено, поэтому подробно рассказывать о его работе я не буду. В качестве датчика температуры использован DS18b20, работающий по протоколу 1-Wire. В качестве коммутирующих элементов — 30-ти амперные реле фирмы Bestar. Драйвер реле — сборка транзисторов Дарлинтонга ULN2003. Управляет всем самый выгодный в плане цена/возможности микроконтроллер фирмы ATMEL ATmega48.

Блок управления водонагревателем(бойлером) на Atmega48

Остановлюсь на контроле тока, т.к. подобных решений не так уж много встречал (а может плохо искал). Для реализации этой функции я использовал токовые трансформаторы  AS-406. Уже после того, как я их купил, более внимательно почитал на них даташит, и обнаружил (о славяне:)), что их рабочая частота 20кГц – 200кГц. Расстраиваться особо не стал и проверил их в работе под сетевой нагрузкой. Ничё, работают родимые и на 50 Гц. Напомню, что токовые трансформаторы без нагрузки включать НЕЛЬЗЯ – пробьет вторичную обмотку.  Калибровку измерения тока я проводил следующим образом. Подключал мощную нагрузку,  ЛАТР-ом регулировал ток через неё, замерял пик напряжения с выхода трансформатора тока для разных целых величин тока нагрузки. Потом построил график и убедился, что зависимость … не очень линейная(((. Но, поскольку особая точность в контроле тока мне не была нужна, я определился для себя, что 1 В пика с выхода делителя трансформатора соответствуют приблизительно 5 А потребления. Программа написана на С в оболочке WinAVR. Исходник прокомментирован. Внутренности задней части корпуса выглядят так:

Размещение элементов внутри корпуса

Фьюзы необходимо настроить для работы от внутреннего генератора 8МГц. Обязательно нужно включить BOD на 4,5 В, иначе при работе с EEPROM будут ошибки записи/чтения. На переднюю панель устройства вынесены трёхразрядный семисегментный индикатор и четыре кнопки:

1 - РЕЖИМ;
2 - ток фазы А, +;
3 - ток фазы В, -;
4 - ток фазы С, запись в EEPROM и выход из режима установки.

В рабочем состоянии на индикаторе во 2-м и 1-м разряде индицируется измеренная температура воды, а 3-й разряд показывает нагрев воды — «бегущая» вверх чёрточка, и остывание — «бегущая» вниз чёрточка. В этом состоянии при нажатии кнопок 2,3,4  разряды 2 и 1 будут показывать ток соответствующих фаз ТЭН-ов, а 3-й разряд — номер фазы (верхняя, средняя и нижняя чёрточки). При индикации температуры, если нажать ещё раз на кнопку 1, устройство перейдёт в режим установки верхнего порога температуры нагрева, что отобразится в 3-м разряде индикатора значком «t», а 2-й и 1-й покажут устанавливаемую температуру. Кнопками 2 и 3 температура увеличивается и уменьшается соответственно. Следующее нажатие на 1-ю кнопку переведёт устройство в режим установки гистерезиса температуры воды (3-й разряд — значок «Г», 2-й и 1-й — гистерезис в градусах). Ещё одно нажатие кнопки 1 переводит устройство в режим установки максимального тока фаз (3-й разряд — значок «А», 2-й и 1-й — ток в амперах). Последующие сколь угодно раз нажатия кнопки 1 будут листать устанавливаемые параметры «по кольцу». Выйти из режима установки и сохранить установленные параметры в энергонезависимой памяти можно нажатием кнопки 4. После этого устройство переходит в основной режим работы.

В процессе работы устройство постоянно отслеживает температуру воды и ток по фазам. Если температура уравняется или превысит установленную максимальную — реле отключатся и ТЭН-ы обесточаться. Когда температура опуститься до значения максимальная минус гистерезис — реле включаться и опять начнётся подогрев воды. Если, несмотря на выключенные ТЭН-ы, температура воды продолжает повышаться (например «залипли» контакты реле) и превысит максимальную плюс пять градусов — устройство покажет аварию по температуре (3-й разряд значок «t», 2-й и 1-й — надпись «Er») и генерирует прерывистый звуковой сигнал. Если ток по любой из фаз в процессе работы превысит максимальное значение — устройство покажет аварию по току (3-й разряд — номер аварийной фазы соответствующей чёрточкой, 2-й и 1-й — надпись «Er») и тоже генерирует звуковой сигнал. Выйти из режимов аварии можно только выключением и включением питания (т.е. сбросом), т.к. в реализованы эти режимы бесконечным циклом. Исходник, конечно, не фонтан, и многие гуру по С могли бы поводить меня лицом по нему, но в целом, мне кажется ничё. Переходы в режимы аварий по температуре и по току можно было бы оформить отдельной функцией, но сделано так сознательно, чтобы отработка аварии по току была максимально быстрой. Датчик DS18b20 помещён в пластмассовую трубочку (корпус негодной шариковой ручки) и загерметизирован с обоих сторон термоклеем, таким образом, что торец датчика и верхняя часть его корпуса «выглядывают» наружу, т.е. имеют непосредственный термоконтакт с окружающей средой. Сделанный таким образом датчик помещён в штатный колодец датчика температуры бойлера, который наполнен трансформаторным маслом. Устройство работает уже более 10 дней. Сбоев не наблюдалось.

Автор: s_black

Файлы:
Исходный код (СИ), файл прошивки микроконтроллера, макеты печатных плат SprintLayout, даташит на датчик тока
Дата 05.08.2012 Размер файла 368.03 KB Закачек 1275

Комментарии  

0 #1 nikola_man 10.08.2012 21:36
Возможно ли в схеме использовать другие датчики тока ? например csla1cd
www.farnell.com/.../621717.pdf
Сообщить модератору
0 #2 AntonChip 13.08.2012 12:20
Цитирую nikola_man:
Возможно ли в схеме использовать другие датчики тока?

Можно поставить любые другие подходящие по параметрам, если что можно откалибровать и изменить исходник
Сообщить модератору

Рекомендуем посмотреть