Термоанемометрический цифровой датчик потока воздуха на PIC
Термоанемометрический датчик потока воздуха, представленный в статье, предназначен для контроля тяги в системе вентиляции квартиры или дома. Датчик построен на PIC микроконтроллере и двух цифровых датчиках температуры. Датчик позволяет не только определять наличие потока воздуха и примерно рассчитывать его скорость, но и определять направление потока.
Принцип действия датчика основан на одновременном нагреве нагревательным элементом двух термодатчиков, расположенных с разных сторон от него. При этом, если потока воздуха нет, то оба термодатчика нагреваются одинаково, а если поток воздуха присутствует, то "пятно тепла" смещается в сторону того термодатчика, куда направлен поток воздуха. Данный принцип измерения заимствован из промышленных термоанемометрических датчиков, однако стоимость таких датчиков для монтажа в трубе 100 – 150 диаметра начинается от 6000 р.
Описываемый в статье датчик не претендует на роль точного измерительного датчика, он лишь позволяет качественно оценить наличие и скорость потока, что для целей автора вполне достаточно. Однако, при наличи точного анемометра его можно откалибровать.
Схема термоанемометрического датчика
Схема датчика показана на рисунке ниже:
Датчик собран на микроконтроллере PIC16F688, работающем на частоте 4 МГц от встроенного генератора. В качестве термодатчиков использованы два широко распространенных цифровых датчика DS18B20. Для упрощения программы, чтобы не использовать сложную процедуру нахождения датчиков, висящих на одном проводе, датчики подключены на разные выводы контроллера и опрашиваются каждый отдельно. Нагревательным элементом для них служит резистор на 1800 ом мощностью 2Вт. Резистор питается напряжением 48 В (об этом ниже). Остальная схема питается от 5 В. Два светодиода индицируют направление потока воздуха. Контроллер по UART передает значения температур обоих датчиков, их разность, а также значение АЦП, пропорциональное напряжению, взятому из точки соединения резисторов R2 и R3. Это позволяет контролировать наличие нагревающего напряжения, обрыв или замыкание резистора R2. FU1, D4 и VR1 обеспечивают защиту при случайном замыкании линии 48 В на линию 5 В.
Термоанемометрический датчик спроектирован как часть системы умного дома, постоенной на шине CAN; и подключается к одному из модулей системы LAN-кабелем (UTP8), по которому подается питание на датчик и обратно передаются данные с датчика. Так как модули умного дома объединены CAN-шиной с помощью такого же кабеля, и по этому же кабелю подается питание для них 48 В от единого блока питания, то для нагрева резистора и использовано это напряжение.
Датчик собран на печатной плате, чертеж которой показан на рисунке ниже.
Расположение деталей на плате:
Слой bottom:
Слой top:
Примерный внешний вид готового устройства показан на следующих рисунках:
Плата имеет такие размеры, чтобы ее можно было установить на вентиляционной трубе или выпускном канале осевого вентилятора вдоль оси. При этом резистор R2 и термодатчики вводятся внутрь трубы через подготовленное отверстие. Датчик лучше располагать таким образом, чтобы резистор R2 был сверзху платы, дабы избежать ее дополнительного нагрева.
Светодиоды можно расположить с любой стороны платы. Если датчик располагается на выпускном канале настенного вытяжного вентилятора, то в этом случае светодиоды тоже введятся внутрь и загибаются в сторону передней части вентилятора. Их видно через входную решетку. Светодиоды можно и не устанавливать.
Настройка и калибровка.
Термоанемометрический датчик потока воздуха требует калибровки. Для этого датчик нужно подключить к компьютеру через переходник USB-UART и смотреть показания датчика в любой терминальной программе. Настройки порта: 9600, 8-N-1 (по умолчанию).
Первичная калибровка производится в закрытом помещении или боксе без движения воздуха.
Для начала нужно определить разницу в показаниях двух термодатчиков без нагрева. У автора она составляла примерно 0,05 – 0,1 градуса. Эта разница на работу датчика не влияет, однако позволяет убедиться, что термодатчики работают правильно.
Затем нужно определить разницу показаний при включенном нагреве в установившемся режиме. У автора разница достигала 3.25 градуса при установившейся температуре около 75 градусов (В первоначальной версии стоял резистор на 1500 ом, и датчики нагревались до 90 градусов, а сам резистор и того больше. Для снижения риска возгорания или перегрева мощность на резисторе пришлось уменьшить.) Возможно, что разные стороны резистора нагреваются неравномерно.
Чтобы нивелировать эту разницу можно немного подогнуть резистор к одному из термодатчиков, либо один из термодатчиков подогнуть к резистору.
В процессе нагрева и остывания разница также может плавать. Лучше снять несколько кривых, усреднить их и ввести поправку программно в модуле обработки. Программа самого датчика в текущей версии пока не предусматривает таких корректировок.
При движении воздуха "пятно тепла" смещается к одному из датчиков, и даже при слабом потоке разница температур может достигать 6-8 градусов, а при значительном потоке – и более.
Пороги дельты температур для индикации светодиодами заданы такие:
- При разнице больше 4 градусов – мигает зеленый светодиод – есть поток воздуха в вытяжке.
- При разнице от -3 до 4 градусов – горят красный и зеленый светодиоды – потока нет.
- При разнице меньше -3 градусов – мигает красный светодиод – есть обратная тяга.
При обратной тяге также выводится высокий логический уровень на 4 вывод разъема J1 для возможности дальнейшего подключения какого-либо исполнительного устройства или сигнализатора.
Автором предполагается автоматически включать вентилятор при отсутствии тяги в вентиляции. Однако при этом задувает и сам датчик потока. Поэтому автоматика периодически должна выключать вентилятор, выжидать определенное время на нагрев резистора и определять наличие тяги без вентилятора. Решение о включении вентилятора автоматика принимает на основе данных, полученных с термоанемометра.
Прошивку для микроконтроллера можно скачать здесь.
Плату для самостоятельной сборки можно купить здесь.