В данной статье я буду рассматривать все процессы применительно к автономной системе отопления частного дома с автоматическим газовым котлом и приведу пример конструкции расходомера на базе бытового недорогого счетчика воды.
Расход теплоносителя (в моем случае воды) в системе отопления является одним из главных параметров, который влияет на поддержание заданного микроклимата в помещении при любых погодных условиях и наряду с другими параметрами определяет качество функционирования системы отопления в целом. Расход теплоносителя показывает какой его объем прошел через систему отопления за определенное время. Так как система отопления может быть разветвленной — например на первом и втором этажах дома может быть два независимых контура отопления — то расход теплоносителя мы будем рассматривать применительно к отопительному котлу. Необходимый номинальный расход теплоносителя рассчитывается на этапе проектирования системы отопления и в процессе ее эксплуатации должен оставаться неизменным. О методах расчета необходимого расхода теплоносителя я расскажу в отдельной статье, в которой будет приведен пример расчета простой системы отопления небольшого частного дома.
Возможно некоторым читателям более понятным будет термин скорость циркуляции теплоносителя или скорость потока теплоносителя в трубах, но скорость циркуляции в отличии от расхода зависит от сечения трубы и на разных участках системы отопления будет разной. Поэтому удобнее пользоваться таким понятием как расход.
Причины по которым расход теплоносителя может уменьшаться:
- отложение накипи внутри теплообменника котла или засорение труб системы отопления, в результате чего увеличивается сопротивление потоку теплоносителя, а значит уменьшается его скорость и, как следствие, объем, прошедший через котел за определенное время, то есть расход;
- засорение фильтров в системе отопления;
- уменьшение производительности циркуляционного насоса из-за всевозможных неисправностей.
Признаки уменьшения расхода теплоносителя в действующей системе отопления:
- котел начал часто включаться и выключаться;
- теплоотдача в системе отопления уменьшилась, батареи прогреваются не полностью даже при установке максимальной температуры отопления на котле, как следствие температура в помещении может быть занижена;
Но указанные признаки могут иметь и другие причины, поэтому было бы неплохо контролировать уровень расхода теплоносителя в своей системе отопления. В таком случае необходим расходомер.
Расходомер на базе бытового счетчика воды.
В моей системе отопления в качестве теплоносителя используется вода. Для контроля расхода теплоносителя я использовал обычный бытовой счетчик воды, который установил на входе теплоносителя в котел (на обратке). При этом счетчик выступал в качестве индикатора, по которому было видно есть ли циркуляция в системе и примерно оценить ее скорость по вращению счетного механизма счетчика. Чтобы узнать расход необходимо было отсчитать по секундомеру определенное время и зафиксировать показания счетчика в начале и конце отрезка этого времени. Конечно это не удобно. Тогда я и задался целью встроить в счетчик дисплей и микроконтроллер, который бы сам считал расход. Таким образом и родилось описываемое ниже устройство.
Счетчик воды со снятым счетным механизмом
Принцип работы счетчика воды очень прост. В нижней герметичной части счетчика расположена крыльчатка, которая вращается за счет потока воды, протекающей через счетчик. На крыльчатке установлены магниты. Счетный механизм крепится сверху на герметичную часть и тоже имеет на одной из шестеренок магнит. Таким образом с помощью магнитного сцепления осуществляется передача вращения крыльчатки на счетный механизм.
Если расположить датчик Холла в месте расположения вращающихся магнитов (в основании счетного механизма) мы получим электрические импульсы, которые уже можно подсчитать микроконтроллером и вывести на дисплей. Вот и вся идея. Дальше, как говорится, дело техники.
Датчик Холла, закрепленный в основании счетного механизма счетчика
В качестве дисплея был выбран светодиодный семисегментный двухразрядный индикатор. Расход теплоносителя было решено измерять в литрах в минуту. Объясню почему именно такая размерность. Я не буду вдаваться в теорию, но ориентировочно расход в литрах в минуту должен быть примерно равен мощности в кВт, отдаваемой котлом на нагрев воды. Например, если ваш котел отдает мощность 10 кВт, то расход теплоносителя должен составлять 10 литров в минуту, при этом разница температур на входе и выходе котла составит 15°С. Таким образом двух разрядов индикатора вполне хватит, что бы отображать расход воды от 1 л/мин и выше. Но, следует отметить, что если необходимо измерять расход теплоносителя больше 20 л/мин, то необходимо использовать счетчики с большим диаметром условного прохода, Ду-20 и выше. В моем опытном устройстве используется счетчик Ду-15.
В качестве устройства для вывода значений расхода теплоносителя на дисплей и подсчета импульсов с датчика Холла была выбрана плата Arduino nano V3. Данная плата содержит микроконтроллер со всей необходимой обвязкой и возможностью быстрого программирования, что очень удобно. Производительности данного микроконтроллера и платформы Arduino для реализации нужного нам алгоритма более чем достаточно.
Для установки всех электронных компонентов расходомера теплоносителя была разработана печатная плата с размерами, позволяющими закрепить ее в корпусе счетного механизма счетчика. Плата была разведена в программе Sprint Layout 5.0. Ниже на фото показана плата с установленными компонентами. Часть компонентов схемы установлено со стороны печатных проводников с обратной стороны платы. Сама плата закреплена на основании счетного механизма. Рядом для сравнения показан счетный механизм счетчика воды без корпуса.
На следующем фото показана обратная сторона платы и проводные соединения с датчиком Холла, который установлен на основании счетного механизма рядом с пластиковой шестеренкой. Как раз внизу данной шестеренки закреплен магнит, который и воздействует на датчик Холла.
Ну и дальше на фото сам расходомер теплоносителя в работе.
Ниже представлена принципиальная электрическая схема расходомера теплоносителя. Модуль А1 это плата Arduino nano.
Выше по тексту я упоминал датчик Холла. На схеме он обозначен как HS1. На самом деле это не «чистый» датчик Холла, а целая микросхема, которая имеет в своем составе датчик Холла, усилитель сигнала датчика, триггер Шмидта, выходной каскад с открытым коллектором и другие вспомогательные элементы. Благодаря всей этой схеме мы имеем на выходе микросхемы сигнал с двумя устойчивыми состояниями — 0 или 1. Микроконтроллер на плате Arduino nano запрограммирован таким образом, что считает переходы из низкого состояния сигнала в высокое (из нуля в единицу).
Для отображения чисел на двухразрядном семисегментном индикаторе используется режим динамической индикации. Для этого все сегменты двух индикаторов соединены параллельно, а выбор разряда осуществляется путем подачи на соответствующий вывод (D1 или D2) индикатора логической единицы (индикатор с общим анодом). Разряды засвечиваются поочередно с частотой, превышающей инерционность зрения человека. В результате мы видим цифры на обеих разрядах индикатора без мерцания.
Диод VD1 защищает устройство от переполюсовки питания. Я установил диод Шоттки для уменьшения потерь напряжения, но это не принципиально. Конденсаторы C1 и C2 улучшают устойчивость работы встроенного стабилизатора напряжения на плате Arduino nano и уменьшают наводки по питанию. Резисторы R1-R7 ограничивают статический ток сегментов индикатора на уровне примерно 5 мА. Так как у нас используется динамическая индикация, то средний ток сегмента будет меньше 5 мА. Данный индикатор очень яркий и хорошо светится даже при токах менее 5 мА.
Схема электрическая принципиальная расходомера теплоносителя автономной системы отопления
Для реализации нужного нам алгоритма работы расходомера был написан скетч в среде Arduino IDE.
Сам скетч подробно закомментирован, я остановлюсь лишь на основных моментах программы.
Для подсчета импульсов с датчика Холла используется режим внешнего прерывания по входу D2 платы Arduino. Программа считает фронты нарастания импульсов, поступающих с датчика Холла. Опытным путем было установлено, что при прохождении через счетчик одного литра воды крыльчатка счетчика делает 30 оборотов. За один оборот крыльчатки с датчика Холла поступает 2 импульса напряжения (на крыльчатке расположено два магнита), то-есть на программном счетчике Arduino мы получим 2 за один оборот. Далее изменение логического состояния на выходе датчика Холла с 0 на 1 будем называть импульсом. Если умножить 2 на 30 мы получим количество импульсов при прохождении через счетчик одного литра воды (теплоносителя). То есть 60 импульсов будут соответствовать 1 литру воды. Таким образом расход теплоносителя через счетчик будет определяться следующей формулой:
G=(Ni/60)*60,
где G — расход теплоносителя в литрах в минуту; Ni — количество импульсов за одну секунду.
Можно сказать, что нам крупно повезло — расход теплоносителя численно равен количеству импульсов датчика Холла за одну секунду. Это очень упрощает программный код. Переменная pulses, в которой хранится количество импульсов датчика Холла за одну секунду, выводится на дисплей без всяких пересчетов и всегда имеет целочисленное значение.
Для вывода значений расхода на семисегментный индикатор используется готовая библиотека Led4Digits, которую я взял здесь. В этом же источнике можно узнать более подробно как работать с данной библиотекой. Для отображения числа на двух разрядах индикатора используется режим динамической индикации. Программно это реализовано через аппаратное прерывание с помощью библиотеки MsTimer2. Обработчик прерывания вызывается каждые 10 мс и переключает разряды дисплея. В этом же обработчике каждую секунду происходит обновление и вывод значения расхода теплоносителя на дисплей.
Расходомер запитан от внешнего нестабилизированного источника напряжением 9 вольт (от старого мобильного телефона). Максимальный потребляемый расходомером ток составляет не более 50 мА.
Файлы для скачивания: