Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Ёмкостный измеритель уровня жидкости

Контролировать уровень жидкости приходится и в дождевых бочках на даче, и в баках с нефтепродуктами, и во многих других случаях. Работа датчиков уровня основана на самых разных принципах. Используются и поплавки, плавающие на поверхности жидкости и механически перемещающие указатель уровня, и измерители электрического сопротивления между погружёнными в жидкость электродами, и оптические и ультразвуковые измерители расстояния до поверхности жидкости. В предлагаемой статье описан прибор, измеряющий уровень жидкости ёмкостным методом.

Этот метод заключается в измерении электрической ёмкости между двумя электродами, помещёнными в резервуар с жидкостью, которая покрывает их в большей или меньшей степени. С погружением электродов в жидкость ёмкость образованного ими конденсатора растёт, причём тем сильнее, чем больше относительная диэлектрическая проницаемость жидкости. 

В основу разработки положена экспериментальная конструкция ёмкостного измерителя уровня жидкости, описанная в [1]. В нём имеются генератор, частота колебаний которого определяется ёмкостью датчика уровня, и микроконтроллер для обработки сигнала. Ёмкость датчика служит одним из элементов колебательного контура генератора. Поэтому по мере заполнения датчика жидкостью частота колебаний генератора снижается. Микроконтроллер измеряет частоту, затем по её значению и известной индуктивности контура вычисляет его ёмкость, а по ней глубину погружения датчика в жидкость.

Описываемый ниже прибор позволяет измерять глубину погружения датчика в жидкость от 0 до 330 мм с дискретностью 1 мм. Имеется также режим измерения относительной диэлектрической проницаемости жидкости от 1 до 99. Кроме того, на индикатор могут быть выведены текущие значения частоты генератора датчика (или другого генератора) от 1 до 999 кГц и ёмкости датчика от 1 до 600 пФ. Выбор измеряемого параметра — ручной. Предусмотрена возможность калибровки прибора по глубине погружения, диэлектрической проницаемости и ёмкости.

 

 

Конструктивно прибор состоит из трёх узлов: выносного генератора с датчиком, погружаемым в жидкость, собственно измерителя и внешнего источника питания (рис. 1). Генератор соединён с измерителем трёхпроводным кабелем, по которому подаётся напряжение питания, а обратно в измеритель — генерируемый сигнал. 

 

 

На рис. 2 изображена схема генератора, который построен на базе компаратора напряжения К554СА3А (DA2). Напряжение его питания 5 В стабилизировано интегральным стабилизатором КР142ЕН5А (DA1), поэтому внешнее напряжение питания может быть нестабилизированным и находиться в пределах от 9 до 12 В. Диод VD1 предназначен для защиты от переполюсовки питания. Частотозадающим элементом генератора служит колебательный контур, образованный ёмкостью датчика Cx и катушкой индуктивности L1. Компаратор охвачен положительной обратной связью через резистор R3. Рабочая точка компаратора задана делителем напряжения R1R2 и стабилизирована отрицательной обратной связью по цепи R4С4, не пропускающей переменную составляющую выходного напряжения компаратора. 
На выходной разъём XP1 генерируемые импульсы поступают через буферный усилитель на транзисторе VT1. Резистор R8 ограничивает ток транзистора при замыкании в его коллекторной нагрузке.

Очень важно подобрать для генератора катушку индуктивности с максимальной добротностью, минимальными собственной ёмкостью и сопротивлением постоянному току. Согласно рекомендациям в [1], применена катушка 09P-103J-50 [2] индуктивностью 10 мГн с сопротивлением постоянному току 35 Ом. Собственная резонансная частота катушки — 410 кГц. Это означает, что её собственная ёмкость — около 15 пФ. Добротность этой катушки, измеренная на частоте 79 кГц, не менее 70. 

С такой катушкой генератор по применённой схеме работает даже с контурной ёмкостью 100000 пФ. А при отключённой ёмкости датчика Cx он возбуждается на частоте около 330 кГц, что соответствует ёмкости контура 20 пФ (15 пФ ёмкости катушки плюс 5 пФ входной ёмкости компаратора и ёмкости монтажа). 

Основой измерителя служит микроконтроллер PIC16F628A-I/P [3], выполняющий управление процессом измерения, вычисление его результатов и отображение значения измеряемой величины на индикаторе.

 

 

Схема измерителя, изображённая на рис. 3, довольно проста. Микроконтроллер DD1 воспринимает сигнал измерительного генератора по входу RA4, остальные линии его портов использованы для управления индикаторами HG1 — HG4 и приёма сигналов от кнопок управления SB1—SB3.

Напряжение питания 9.12В поступает от внешнего нестабилизированного источника. Потребляемый ток — до 200 мА. Прибор включают выключателем SA1. Дроссели L1 и L2 предназначены для устранения паразитной связи между генератором и измерителем через источник питания. Стабилизированное напряжение +5 В для питания микроконтроллера и индикаторов обеспечивает интегральный стабилизатор DA1. 

Кварцевый резонатор ZQ1 и конденсаторы С1 и С4 — элементы тактового генератора микроконтроллера. Вход MCLR микроконтроллера через резистор R7 подключён к плюсовому проводу его питания. Это сделано для того, чтобы наводки на этот вход, имеющий высокое входное сопротивление, не приводили к неожиданным перезапускам микроконтроллера. 

Индикация организована по классическому динамическому принципу. Низкие логические уровни, поочерёдно устанавливаемые программой на выходах RA0—RA3 микроконтроллера, включают с помощью транзисторов VT1 — VT4 семиэлементные светодиодные индикаторы с общим анодом HG1—HG4. Элементы индикаторов включаются в зависимости от уровней, устанавливаемых программой на линиях RB1—RB7. 

Ввиду того что число выводов микроконтроллера ограничено, кнопки SB1 — SB3 пришлось подключить к линиям порта B, уже использованным для управления индикатором. Чтобы совместить две функции, программа каждые 0,2 с на очень короткое (несколько десятков микросекунд) время устанавливает на линиях RA0—RA3, RB2—RB5 высокие уровни напряжения, выключая этим индикаторы, а линии RB1, RB6 и RB7 перенастраивает с вывода на ввод сигналов. Теперь уровни на этих входах зависят от состояния соединённых с ними кнопок (высокий — кнопка нажата, низкий — кнопка не нажата). Определив состояние кнопок, программа возобновляет работу индикаторов.

В режиме индикации через резисторы R15—R17, предназначенные для поддержания низкого уровня на входах, соединённых с ненажатыми кнопками, протекает небольшой ток, который может вызвать подсветку соответствующих элементов индикаторов. Однако сопротивление этих резисторов выбрано достаточно большим, что делает её практически незаметной. 

Резистор R4 — нагрузочный для измерительного генератора импульсов. Сигнал, сформированный на нём, через развязывающий резистор R6 поступает на вход RA4 микроконтроллера, переведённый программой в режим входа внешнего тактового сигнала T0CKI для таймера TMR0. Таймер настроен на счёт импульсов по их спадающим перепадам. Параллельно выходу генератора к входу RA4 подключён вывод RB0 микроконтроллера. В течение времени счёта, равного 0,1 с, RB0 работает в режиме входа, импульсы генератора свободно проходят наT0CKI. По завершении этого интервала программа переводит RB0 в режим выхода, низкое выходное сопротивление которого блокирует прохождение через резистор R6 импульсов генератора. Вместо них на вход T0CKI поступают импульсы, сформированные программно на выходе RB0. Каждый из этих импульсов увеличивает на единицу содержимое регистра предварительного делителя таймера, пока этот регистр не переполнится, что фиксируется по увеличению на единицу содержимого основного счётного регистра. Таким способом удаётся определить, каким было состояние недоступного программе предварительного делителя в момент окончания счётного интервала времени — младший байт числа импульсов генератора, пришедших на вход TOCKI в течение этого интервала. Далее цикл измерения повторяется. 

Программа микроконтроллера написана на языке C в среде разработки программ MPLAB IDE версии 8.20, дополненной компилятором PICC версии 9.50 Lite. Программа производит инициализацию микроконтроллера, затем измеряет частоту сигнала, поступающего от генератора. Полученное значение обрабатывается цифровым фильтром для уменьшения влияния случайных помех. По нему программа вычисляет ёмкость датчика, а затем глубину погружения датчика в жидкость или её относительную диэлектрическую проницаемость. С периодом около 4 мс выполняются циклы динамической индикации, а каждые 200 мс происходит опрос состояния кнопок управления. Все действия, за исключением инициализации, выполняются в бесконечном цикле. 

Процедура инициализации начинается после подачи питания на микроконтроллер. При этом линия RA4 конфигурируется как вход, а линии RA0—RA3 и RB0—RB7 — как выходы. Таймер TMR0 переводится в режим счёта спадающих перепадов импульсов, поступающих на вход RA4 (T0CNT), с предварительным делителем на 256, а таймер TMR1 — в режим счёта с предварительным делителем на восемь внутренних тактовых импульсов, следующих с частотой в четыре раза ниже частоты кварцевого резонатора ZQ1. Разрешаются прерывания по переполнению регистра таймера TMR1. 

Далее программа читает из EEPROM калибровочные коэффициенты и рассчитывает коэффициент _k, необходимый для вычисления ёмкости датчика. 

Измерение частоты выполняется описанным выше методом с извлечением младшего байта результата из предварительного делителя. Более подробное описание этого метода, ставшего почти классическим для микроконтроллеров семейства PIC, можно найти в [4]. Конечно, он был разработан в своё время для микроконтроллеров, имевших всего один восьмиразрядный таймер с восьмиразрядным предварительным делителем частоты. Сегодня можно было бы поступить иначе, используя имеющийся в микроконтроллере PlC16F628A 16-разрядный таймер. Но от этого было решено отказаться, так как реализация классического алгоритма на языке C оказалась довольно простой. 

Для устранения случайных флюктуаций результата измерения применена его двухступенчатая цифровая фильтрация. Её первый этап ограничивает скорость изменения результата. Если очередное измеренное значение отличается от предыдущего больше, чем на хранящуюся в памяти микроконтроллера константу F_b, то за результат этого измерения принимается результат предыдущего, увеличенный или уменьшенный (в зависимости от направления изменения) на величину этой константы. 

На втором этапе вычисляется среднее арифметическое результатов нескольких последовательных измерений, число которых задано константой S. Полученное усреднённое значение используется в дальнейших вычислениях.

При вычислении ёмкости Cu в пикофарадах частное от деления коэффициента _k на квадрат удесятерённого значения частоты в герцах делится на 1000. Такое усложнение вычислений необходимо для того, чтобы их результаты, в том числе промежуточные, представлялись целыми числами, не выходящими за пределы разрядной сетки микроконтроллера. Последовательность действий в этом случае тоже очень важна. Альтернативой могло бы стать представление чисел в формате с плавающей запятой, но это значительно замедлило бы работу восьмиразрядного микроконтроллера и чрезмерно увеличило объём его программы.

Глубина погружения датчика в жидкость в программе вычисляется по формуле, приведённой в [1]:

где L — калибровочная глубина погружения, мм; C — измеренная ёмкость датчика, пФ/100; С0 — ёмкость пустого датчика пФ/100; Ch — ёмкость датчика при калибровочной глубине погружения, пФ/100.

Относительная диэлектрическая проницаемость жидкости, заполняющей датчик, программа определяет по формуле

где егкал — относительная диэлектрическая проницаемость жидкости, в которой производилась калибровка.

При кратких нажатиях на кнопку SB3 "Р" (режим) программа обеспечивает последовательный перебор четырёх режимов измерения: глубины погружения в миллиметрах, ёмкости датчика в пикофарадах, частоты измерительного генератора в килогерцах и относительной диэлектрической проницаемости жидкости. При нажатиях длительностью более 2 с поочерёдно устанавливаются пять калибровочных режимов, которые будут описаны ниже. 

Из двух вариантов конструкции датчика, предложенных в [1], был выбран цилиндрический конденсатор, внешняя обкладка которого представляет собой медную трубку, а внутренняя — медный провод. Ёмкость такого конденсатора, если его длина много больше внешнего диаметра, вычисляют по формуле 

где E0 = 8,854-10-12 Ф/м — абсолютная диэлектрическая проницаемость вакуума; Er — относительная диэлектрическая проницаемость материала, которым заполнено пространство между обкладками конденсатора; I — длина цилиндра; D — внутренний диаметр наружного электрода; d — диаметр внутреннего электрода.

Если подставить в эту формулу значения констант и выразить длину конденсатора в миллиметрах, то формула для вычисления его ёмкости в пикофарадах примет вид

Цилиндрический конденсатор, погружённый в жидкость на глубину H, меньшую его длины I, можно представить как два конденсатора, соединённых параллельно. Один из них длиной H заполнен жидкостью, а второй длиной l-H — воздухом с диэлектрической проницаемостью, равной 1. Поскольку диэлектрическая проницаемость жидкости больше, чем воздуха (у воды при 10°C она около 83), ёмкость датчика при погружении его в жидкость значительно растёт. 

Если жидкость, в которую погружается датчик, электропроводна или агрессивна, электроды датчика необходимо защитить от непосредственного соприкосновения с нею, нанеся на них по возможности тонкий слой изоляции.

 


В рассматриваемом случае было решено ограничиться защитой внутреннего электрода, изготовив его из изолированного провода. При расчётах такой конденсатор следует представлять двумя, соединёнными последовательно. Первый — заполненный воздухом или измеряемой жидкостью с внутренней обкладкой, диаметр которой равен диаметру провода по изоляции. Второй — с внешней обкладкой такого же диаметра и внутренней с диаметром, равным диаметру провода по меди. Диэлектрик второго конденсатора — изоляция провода.

Датчик объединён в один конструктивный узел с генератором. Печатная плата генератора изготовлена из фольгированного с двух сторон стеклотекстолита по чертежу, показанному на рис. 4. Все детали размещены на одной её стороне, отверстия для их выводов не предусмотрены. Пайка выводов выполнена "внакладку". Использованы резисторы МЛТ или аналогичные, оксидные конденсаторы — К50-35, остальные конденсаторы — керамические КМ, К10-7Б. Противоположная деталям сторона платы полностью покрыта фольгой и используется как общий провод.

 


Эскиз конструкции датчика показан на рис. 5. В дугообразные пазы печатной платы генератора 1 вставлены выступы медной трубки 2 внутренним диаметром 8 мм, служащей внешней обкладкой конденсатора-датчика. Сама трубка по периметру её среза и выступы припаяны к фольге с обеих сторон платы. Длина трубки — 350 мм. В верхней её части сделано отверстие диаметром 2.3 мм для свободного прохода воздуха при изменении уровня жидкости внутри датчика.
В качестве внутренней обкладки конденсатора используется отрезок одножильного провода 3 диаметром по меди 0,3 мм в полиэтиленовой изоляции 4 толщиной 0,3 мм. Неплохой вариант — использовать внутренний проводник тонкого коаксиального кабеля вместе с его изоляцией.

В нижней (открытой) части трубки датчика имеются два диаметрально расположенных паза, в которые вставлена стеклотекстолитовая пластина 5. Через отверстие в её центре пропущен очищенный от изоляции нижний конец внутреннего провода. Он загнут в обратную сторону, обвит двумя-тремя витками вокруг провода, подходящего к отверстию, и пропаян. Пайка и вся свободная от изоляции часть провода покрыты несколькими слоями клея БФ-6 или герметика, стойкого к жидкости, уровень которой будет измеряться. Например, клей БФ-6 стоек к слабощелочным и кислотным растворам, но легко растворяется этиловым спиртом. Второй конец провода, пропущенного сквозь трубку, вставлен в отверстие платы 1, натянут и припаян к имеющейся на плате контактной площадке.

 


Чертёж печатных проводников платы измерителя изображён на рис. 6, а расположение деталей на ней — на рис. 7. Переходные отверстия в плате имеют диаметр 0,5 мм. В них вставлены, расклёпаны и пропаяны с двух сторон отрезки выводов от резисторов МЛТ-0,25. Для микроконтроллера DD1 желательно предусмотреть панель с цанговыми контактами. Стабилизатор DA1 установлен параллельно поверхности платы, а его теплоотводящий фланец припаян к фольге общего провода.

Использованы резисторы МЛТ или аналогичные. Оксидные конденсаторы — К50-24, остальные — КМ и К10-7. Кварцевый резонатор в корпусе HC-49S. Кнопки малогабаритные тактовые SWT2, TS-A1PS-130. Светодиодные индикаторы TR319K можно заменить другими с общими анодами и такими же расположением и назначением выводов, например SA05-11HWA. Разъём XS1 — стандартное стереогнездо под штекер диаметром 2,5 мм.

Плата помещена в корпус от мультиметра M-838. Для питания используется выносной выпрямитель (в сетевой вилке) БП7Н-12-300. Можно применить и другой, обеспечивающий выходное напряжение 9.24 В при токе до 200 мА.

Проверить работоспособность генератора можно и без измерителя. Для этого нужно подключить между контактами 2 и 3 штекераХР1 резистор, номиналом 1,5...2 кОм, мощностью 0,5 Вт и подать на контакты 2 (+) и 1 (-) штекера постоянное напряжение 9...12 В. С помощью осциллографа можно проконтролировать наличие выходных импульсов на контакте 3. Их скважность должна быть близка к 2, а амплитуда почти равна напряжению питания. При индуктивности катушки L1 10 мГн, наружном диаметре трубки датчика 10 мм, толщине её стенки 1 мм и длине примерно 350 мм частота генератора должна быть около 250 кГц с пустым датчиком, а с погруженным на 300 мм в дистиллированную воду — около 100 кГц. Если получены примерно такие результаты — всё в порядке. В противном случае необходимо проверять правильность и качество монтажа, а также номиналы установленных элементов. 

 

 

Налаживание измерителя начинают, не устанавливая микроконтроллер в панель на плате. Выключателем SA1 включают питание, проверяют наличие и полярность напряжения 5 В между контактами 14 и 5 панели микроконтроллера. Напряжение на контактах 1—4, 17, 18 относительно контакта 5 должно быть почти равно напряжению питания, а на контактах 6—13 близко к нулю. Затем проверяют работоспособность кнопок SB1—SB3. Нажимая на них, контролируют появление высокого уровня соответственно на контактах 12, 13 и 7. Цепи динамической индикации проверяют соединением с контактом 5 контактов 1, 2, 17, 18 (выбор индикатора) и контактов 7—13 (выбор элемента). Наблюдают свечение соответствующего элемента выбранного разряда.

Затем при выключенном питании вставляют запрограммированный микроконтроллер в панель, подключают проверенный генератор и включают прибор. В старшем разряде индикатора должна появиться буква Н (измерение глубины погружения), а за ней — трёхразрядное число. При коротких нажатиях на кнопку SB3 в старшем разряде индикатора должны поочерёдно выводиться буквы C (измерение ёмкости), F (измерение частоты) и E (измерение относительной диэлектрической проницаемости). 

При нажатиях длительностью более 2 с поочерёдно (по кругу) выбираются пять калибровочных режимов: 

  • h — ёмкость при калибровочной глубине погружения;
  • о — ёмкость при нулевой глубине погружения;
  • L — калибровочная глубина погружения;
  • с — калибровочный коэффициент ёмкости;
  • e — относительная диэлектрическая проницаемость измеряемой жидкости.

При погружении датчика в жидкость показания в режимах измерения глубины и ёмкости должны увеличиваться, а в режиме измерения частоты уменьшаться. Это свидетельствует о работоспособности прибора и его готовности к калибровке.

Измерив частоту генератора F0 при пустом датчике и зная индуктивность катушки L1 с погрешностью не хуже ± 1%, необходимо рассчитать фактическую ёмкость пустого датчика по формуле 

При частоте в килогерцах и индуктивности в миллигенри ёмкость будет получена в пикофарадах. Если полученное значение не совпадёт с показанным прибором в режиме измерения ёмкости, следует перейти в режим установки калибровочного коэффициента ёмкости. При измеренной прибором ёмкости, меньшей вычисленной по формуле, этот коэффициент нужно увеличить, а в противном случае — уменьшить. Изменяют коэффициент нажатиями на кнопки SB1 и SB2, а записывают его в EEPROM микроконтроллера одновременным нажатием на обе эти кнопки.

Далее задают максимальную глубину погружения датчика в миллиметрах. Этот параметр зависит от длины его трубки и в нашем случае равен 330 мм. Затем вводят значение относительной диэлектрической проницаемости жидкости, с которой предстоит работать. Ёмкость пустого и полностью погруженного в жидкость датчика, измеренную прибором в соответствующих калибровочных режимах, изменять не нужно. Эти значения записывают в EEPROM одновременным нажатием на кнопки SB1 и SB2.

По завершении калибровки прибор готов к работе. Измерять относительную диэлектрическую проницаемость следует при погружении датчика в жидкость именно на ту глубину, при которой производилась калибровка. 

Проект MpLab, исходный код программы на СИ и прошивка микроконтроллера PIC16F628A доступны по этой ссылке.

Литература:

1. Rudolph W., Pretzenbacher R., Kainka B. Brim Full. — Elektor Electronics, 2009, № 5, p. 40—46.
2. FASTRON Radial Coils and Wideband Chokes. — URL: http://www.cpcares.com/pdf/769.pdf (09.06.14).
3. PIC16F627A/628A/648A Flash-Based, 8-Bit CMOS Microcontrollers with nanoWatt Technology. — URL: http://ww1.microchip.com/downloads/en/DeviceDoc/40044G.pdf (30.04.14).
4. D’Souza S. Frequency Counter Using PIC16C5X. — URL: http://kazus.ru/datasheets/pdf-data/3579970/MICROCHIP/PIC16F628A-I/P.html.

Автор: А. Топников, г. Углич Ярославской обл.
Источник: Журнал Радио 2014 №9


C этой схемой также часто просматривают:

Быстродействующий измеритель температуры
Измеритель R, C, L на микросхемах
Индикатор уровня сигнала
Индикатор уровня жидкости
ИЗМЕРИТЕЛЬ МОЩНОСТИ
Термометр с четырьмя датчиками DS18B20
Два вывода микроконтроллера PIC управляют шестью светодиодами
Два E-CW-ключа на микроконтроллере PIC12F675
Бегущая строка с вводом текста с помощью компьютерной клавиатуры

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU




Последние поступления

Автоматизация смывного бачка

Кухонный таймер

Прибор для поиска скрытой проводки на PIC12F629

Фотореле-таймер на микроконтроллере

Термометр на DS18B20

Часы с термометром дом-улица и таймером

Автомат полива для дачи и огорода

Стабилизация мощности тока электродной батареи на микроконтроллере

Термометр с четырьмя датчиками DS18B20

Умывальник с бесконтактным управлением на PIC16F84A



© 2003—2017 «KAZUS.RU - Электронный портал»