Схема. Терморегулятор для аквариума
Подаренный на Новый год ребёнку аквариум неожиданно принёс массу новых проблем и забот. За ним нужно следить, для него потребовались фильтр, аэратор, освещение, терморегулятор… Большая часть оборудования была приобретена вместе с рыбками, а вот терморегулятор было решено разработать самостоятельно. Изучение радиолюбительских решений в этой области показало, что самое удачное, на мой взгляд, из них — конструкция, описанная в [1]. Но мне она представилась излишне усложнённой, а её возможности — избыточными.
Для поддержания заданной температуры, заведомо более высокой, чем окружающая, достаточно одного канала управления нагревателем. Измерение температуры с точностью до десятых долей градуса тоже излишне, вполне достаточно целых значений, для отображения которых хватит двухразрядного индикатора. Управление терморегулятором должно быть предельно простым, желательно, с помощью единственной кнопки. В итоге родилась описываемая ниже конструкция.
Аквариумные рыбки, как правило, обитатели тёплых мест, поэтому комфортная для них температура — +26…+28 °С. В наших жилищах температура обычно ниже, поэтому необходимо подогревать воду в аквариуме, контролируя её температуру, чтобы не допустить перегрева. Исходя из этого, можно сформулировать алгоритм работы терморегулятора: датчик температуры периодически измеряет её, микроконтроллер выводит на цифровой индикатор результат и сравнивает его с заданным значением, принимая в зависимости от знака их разности решение о включении или выключении нагревателя.
Схема терморегулятора показана на рис. 1. Датчик температуры ВК1 —компактный, широко распространённый и недорогой DS18В20 с цифровым интерфейсом 1-Wire. Этот интерфейс программно и аппаратно легко реализуем с помощью любого микроконтроллера. Преимущество датчика DS18B20 ещё и в том, что он калиброван изготовителем и не требует какой-либо дополнительной калибровки при эксплуатации.
Тактовую частоту микроконтроллера ATmega8A-AU (DD1) задаёт кварцевый резонатор ZQ1. Индикатор HG1 — светодиодный двухразрядный семиэлементный с общими катодами. Допустимый выходной ток портов микроконтроллера вполне достаточен, чтобы без дополнительных усилителей управлять светодиодным индикатором. Для упрощения вместо восьми токоограничительных резисторов в цепях анода каждого элемента индикатора установлены только два (R5 и R6) в цепях общих катодов каждого разряда. Плата за это -зависимость яркости отображаемой цифры от числа образующих её светящихся элементов индикатора.
Управление нагревателем происходит по сигналам, формируемым микроконтроллером на выходе РСЗ. Они поступают через оптрон U1, обеспечивающий изоляцию микроконтроллерного узла от сети 220 В, на управляющий электрод симистора VS1. Соединённый последовательно с излучающим диодом оптрона светодиод HL1 служит индикатором включения нагревателя.
Напряжение питания 8 В я подавал на терморегулятор от зарядного устройства для сотового телефона Siemens. Можно использовать и другие с выходным напряжением не менее 7 В. Интегральный стабилизатор напряжения DA1 понижает его до 5 В.
Кнопка SB1 служит для управления регулятором. В микроконтроллере программно включён внутренний резистор, соединяющий с плюсом питания вход РВ1, к которому подключена кнопка.
Алгоритм работы терморегулятора преобразован в программу микроконтроллера с помощью среды разработки Algorithm Builder for AVR www.algrom.net/russian.html После подачи питания на индикаторе кратковременно отображается номер версии программы. Затем с периодичностью около секунды датчик DS18B20 измеряет температуру. Результат (целое число градусов) появляется на индикаторе. После сравнения измеренной температуры с заданным пороговым значением подаётся или снимается сигнал включения нагревательного элемента.
Нажатием на кнопку SB1 регулятор переводят в режим индикации и регулировки порогового значения температуры. Признак этого режима — включённая в младшем разряде индикатора десятичная точка. Кратковременными нажатиями на кнопку значение на индикаторе увеличивают каждый раз на единицу. При нажатии продолжительностью более 3 с программа заносит установленное значение в энергонезависимую память микроконтроллера, а на индикатор возвращает измеренное значение температуры. Точка в младшем разряде гаснет. То же самое, но без записи нового порога в память, произойдёт, если в течение 3 с нажатий на кнопку не будет.
Интервал возможных значений пороговой температуры -от 5 до 35 °С. Если по достижении числа 35 продолжать короткие нажатия на кнопку, на индикатор будут поочерёдно выведены буквы С (Control) и Р (Power).
Длительное нажатие на кнопку при букве С на индикаторе вызовет переход в режим индикации и установки способа управления нагревателем. Их два: СН (Control Hot) и СС (Control Cold). В режиме СН нагреватель включён, когда температура воды ниже пороговой. Например, температура воды — 24 °С, пороговое значение — 27 °С. Нагреватель будет работать, пока температура воды не достигнет 28 °С. Затем, когда температура опустится до 26 °С, он будет выключен и вновь включён.
Если для достижения заданной температуры воду требуется охлаждать, используют режим СС. В этом случае вместо нагревателя к терморегулятору должно быть подключено охлаждающее устройство, например, обдувающий аквариум вентилятор. В этом случае при пороге 27 °С и температуре воды 28 °С вентилятор будет включён и выключен, когда температура воды упадёт до 26 °С.
Если кнопку длительно удерживать нажатой при букве Р на индикаторе, терморегулятор перейдёт в режим индикации и установки относительной длительности открытого и закрытого состояния симистора VS1 при работе нагревателя. Возможны режимы от Р1 (включённый нагреватель работает непрерывно до выключения) до Р9 (включённый нагреватель работает один такт из каждых девяти). Длительность такта — 0,25 с. Прерывистый режим позволяет подогревать воду не специализированным аквариумным водонагревателем мощностью около 50 Вт, а, например, обычным бытовым кипятильником мощностью 500 Вт.
Запись выбранных параметров режимов С и Р в энергонезависимую память и возвращение в основной режим происходят точно так же, как и после установки пороговой температуры.
Выводимые на индикатор измеренные значения температуры программно ограничены интервалом -9…59°С. Более низкая температура отображается как Lo, более высокая — как Hi.
В программе используются два таймера микроконтроллера. По прерываниям от Timer0 с периодом около миллисекунды организованы динамическая индикация и опрос состояния кнопки SB1. По прерываниям от Timer1 с периодом около 0,25 с программа отсчитывает интервалы времени и организует прерывистую работу нагревателя.
Конфигурация микроконтроллера должна соответствовать таблице.
Терморегулятор собран на плате SEM0010M-8A [2] с установленными на заводе-изготовителе микроконтроллером ATmega8A-AU, кварцевым резонатором ZQ1, конденсаторами С2 и СЗ и не показанным на схеме разъёмом программирования. Размеры платы — 42×42 мм. Как видно на рис. 2, на её свободном макетном поле смонтированы остальные детали терморегулятора, кроме датчика температуры, вынесенного в аквариум и соединённого с платой отрезком четырёхпроводного телефонного кабеля. Для подключения нагревателя предусмотрена колодка с двумя винтовыми зажимами.
Вместо указанного на схеме индикатора (он снят с отслужившего свой срок системного блока компьютера) можно использовать любой семиэлементный светодиодный с общим катодом и номинальным током 5… 15 мА на элемент. Для достижения приемлемой яркости придётся, возможно, подобрать резисторы R5 и R6. Использование индикатора с общим анодом не исключено, но это потребует небольшого изменения программы микроконтроллера.
Оптрон МОС3062 можно заменить на МОС3162. Подойдут и подобные им с другой последней цифрой в обозначении (например, МОС3063, МОС3163). Для них, возможно, придётся изменить номинал резистора R4. Симистор VS1 может быть любого типа с соответствующим мощности нагревателя коммутируемым током и предельным напряжением в закрытом состоянии не менее 600 В.
От стабилизатора DA1 можно отказаться, если внешнее напряжение питания не превышает 5,5 В (например, используется зарядное устройство для сотовых телефонов LG). Отказаться можно и от кварцевого резонатора — в терморегуляторе нет элементов, требующих точного выдерживания интервалов времени. Некоторое исключение — датчик DS18B20, но и у него допустимый интервал длительности импульсов достаточно широк. Но чтобы перейти на использование вместо кварцевого встроенного в микроконтроллер RC-генератора на 4 МГц, потребуется скорректировать программу в части настройки таймеров и формирования программных задержек.
Налаживания устройства при правильном монтаже, как правило, не требуется. В случае отсутствия индикации температуры следует проверить питающее напряжение на входе и выходе стабилизатора DA1. Также следует проверить настройки программатора.
Плата помещена в корпус размерами 75x75x13 мм (полупрозрачную коробку для хранения мелких предметов), укреплённый на боковой стенке аквариума (рис. 3). В качестве нагревателя использован бытовой электрокипятильник мощностью 500 Вт (режим работы терморегулятора — Р9). Датчик DS18B20 защищён от воды обычным скотчем и погружён в неё недалеко (в 5…10 см) от нагревателя в верхней части аквариума. Желательно — в струе течения, создаваемого фильтром-аэратором. Это обеспечит равномерный прогрев толщи воды.
При программировании микроконтроллера запись в его энергонезависимую память информации о пороговой температуре и заданных режимах работы терморегулятора не предусмотрена. Поэтому первое включение следует производить, не подсоединяя к нему нагреватель. После появления на индикаторе измеренной температуры необходимо установить нужные параметры режимов С и Р. Например, СН и Р9. Затем установить требуемое пороговое значение температуры. После этого следует отключить устройство от сети, опустить нагревательный элемент в аквариум, закрепить рядом датчик температуры, соединить нагревательный элемент с терморегулятором и вновь включить его.
Пример: объём аквариума — 50 л, температура в помещении — 25 °С, нагреватель — электрокипятильник мощностью 500 Вт, установлены режимы СН и Р9, пороговая температура -27 °С. Прогрев воды до температуры отключения нагревателя (28 °С) занял полтора часа, далее нагреватель включался и выключался с периодом около 20 мин. При касании нагревателя рукой он казался чуть тёплым. Обитатели аквариума поначалу проявляли интерес к «нововведениям» — рыбки тыкались в кипятильник и сразу отплывали в сторону. Но никто не пострадал…
Устройство получилось компактным и сравнительно недорогим (дешевле имеющегося в продаже терморегулятора аналогичного назначения). В перспективе его можно усовершенствовать. Остались масса неиспользованных ресурсов микроконтроллера и место на плате. Можно, например, периодически включать фильтр или подсветку.
Прилагаемые файлы: term.zip
ЛИТЕРАТУРА
1. Кожухин П. Автомат для аквариума. -Радио, 2011, № 6, с. 43—45.
2. Модуль Evolution light на базе микроконтроллер ATmega8A-AU www.ekits.ru/index/php&productID=2376
А. ПАХОМОВ, г. Владимир
«Радио» №10 2012г.
Похожие статьи:
Терморегулятор на PIC
Таймер подсветки аквариума
Автоинформатор для автобуса
Терморегулятор с трехфазным питанием
Сенсорный регулятор освещения