RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/radiofan/measuring_technics/liquid_level_contro_ultrasonic_range_finder.html

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

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

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

Я разработал блок измерения и поддержания уровня жидкости в баке на базе ультразвукового измерителя дальности HC-SR04, принцип работы которого подробно изложен в [1]. Этот блок применён на дачном участке для поддержания уровня воды в баке умывальника и бочке для полива растений. На одном из предприятий он поддерживает необходимый уровень дизельного топлива в расходной ёмкости и нормально работает более года. К сожалению, блок не сертифицирован, поскольку процедура сертификации занимает очень много времени, а затраты на неё гораздо больше, чем на приобретение любого зарубежного аналога.

Схема блока

Рис. 1. Схема блока

 

Схема блока изображена на рис. 1. В каждом рабочем цикле, повторяющемся каждую секунду, микроконтроллер DD1 трижды запускает измеритель дальности B1, генерируя импульсы Trig длительностью 15 мкс, и получает импульсы Echo с задержкой, пропорциональной длительности распространения ультразвукового импульса от передатчика до поверхности жидкости в баке и обратно к приёмнику. Программа измеряет задержку с помощью таймера TMR1, настроенного так, что по окончании счёта число в его регистрах TMR1H и TMR1L равно длительности задержки отражённого импульса в микросекундах. Зная его, можно определить заполненность бака Q в процентах по формуле 

где NTMR1 - результат счёта (число в регистрахTMR1H и TMR1L); Ht - глубина бака(расстояние от места установки измерителя до дна), мм; k -коэффициент, пропорциональный скорости звука в воздухе, при скорости 331,8 м/с он равен 16,59. Но контрольные измерения показали, что более точные результаты получаются при k=17.

Программа рассчитывает коэффициент заполнения бака после каждого из трёх измерений, выполняемых с интервалами 200 мс. Их результаты она присваивает переменным Q1, Q2 и Q3. Затем проводит их мажоритарный отбор для выявления ошибочного результата. Такая обработка показала свою надёжность при контроле заполнения открытой бочки, когда влияние на результаты оказывают насекомые, падающие листья и механические воздействия на бочку. Для измерений в закрытых баках этот алгоритм избыточен.

Полученное в каждом цикле значение Q при работе в автоматическом режиме сравнивается с нижним порогом Qmin (при Q<Qmin блок включает насос) и с верхним порогом Qmax (при Q>Qmax блок выключает насос). Управляет насосом реле K1, именно от возможностей его контактов зависит допустимая мощность насоса.

Блок питается постоянным напряжением 12 В и потребляет ток не более 95 мА. Микроконтроллер DD1 управляет ЖКИ HG1 (одна строка из 16 символов) через сдвиговый регистр DD2. Это дало возможность занять управлением ЖКИ минимальное число выводов микроконтроллера.

Программа написана на языке ассемблера и отлажена в среде MPLABX4.15. В ней использованы вычисления с плавающей запятой (формат чисел с плавающей запятой - один байт порядок и два байта мантисса). Нажатия на кнопки SB1 и SB2 обрабатываются по прерываниям.

Поскольку в знакогенераторе ЖКИ PC1601BC нет символов кириллицы, сообщения выводятся на английском языке. Общение с оператором происходит через систему меню ME_0- ME_5. Их перебирают нажатиями на 

кнопку SB1, выбирая нужное меню нажатием на кнопку SB2, при этом на экране ЖКИ появляется курсор. Выходят из меню МЕ_0 и МЕ_1 нажатием на кнопку SB2, из МЕ_2-МЕ_4 - одновременным нажатием на кнопки SB1 и SB2. Из МЕ_5 программа выходит автоматически по окончании записи в EEPROM.

В меню МЕ_2-МЕ_4 значение параметра увеличивается при нажатии на кнопку SB1 (с ускорением после восьмого шага), а при нажатии на кнопку SB2 оно уменьшается (также с ускорением после восьмого шага).

Меню имеют следующие функции и вид:

МЕ_0 - ручное управление насосом. На экран ЖКИ выводится сообщение "Pump OFF Qw=XX%" (насос выключен) или "Pump ON Qw=XX%" (насос включён), где XX - измеренный коэффициент заполнения бака. Каждое нажатие на кнопку SB1 включает или выключает насос.

МЕ_1 - автоматическое управление насосом. На экран выводится сообщение "AutoQwYQw=XX%". Буква "Y" означает, что насос включён. В противном случае она отсутствует.

МЕ_2 - установка порога включения насоса. На экран ЖКИ выводится сообщение "Set min Qw=XX%", где XX - значение коэффициента заполнения при уровне жидкости, меньше которого насос будет включён.

МЕ_3 - установка порога выключения насоса. На экран выводится сообщение "Set max Qw=XX%" , где XX - значение коэффициента заполнения при уровне жидкости, больше которого насос будет выключен.

МЕ_4 - установка глубины бака. На экран выводится сообщение "Set Ht = ZZZmm ", где ZZZ - глубина бака, мм.

МЕ_5 - запись параметров в EEPROM микроконтроллера. На экран ЖКИ выводится сообщение "EEPROM Set OFF". По окончании записи вместо OFF будет выведено YYY

Блок смонтирован на печатной плате из фольгированного с одной стороны стеклотекстолита, чертёж которой показан на рис. 2. Её помещают в пластмассовый корпус подходящего размера с вырезанным в нём окном для экрана индикатора HG1. На одной из стенок корпуса размещают кнопки SB1 и SB2. Излучатель и приёмник ультразвука модуля HC-SR04 должны выступать из корпуса. Прибор необходимо зафиксировать в верхней части бака (выше максимально возможного уровня жидкости), направив излучателем и приёмником ультразвука вниз.

Чертёж печатной платы блока

Рис. 2. Чертёж печатной платы блока

 

Реле K1 - 4117-C-Z с обмоткой на 12 В. Предельный коммутируемый его контактами ток - 10 А, максимальное коммутируемое переменное напряжение - 380 В. У меня такое реле управляет электродвигателем насоса мощностью 1,5 кВт. При необходимости это реле можно заменить на 51.9.012.0000, но печатную плату под него придётся корректировать.

Резистор R1 и конденсатор C2 - для поверхностного монтажа типоразмеров соответственно 1206 и 0805. Оксидный конденсатор C1 - К50-6, К50-35 или импортный. Транзистор КТ315Г можно заменить другим структуры n-p-n с допустимым током коллектора не менее 0,15 А и коэффициентом передачи тока базы больше 40. Диод Шотки SS14 можно заменить любым, в том числе обычным кремниевым диодом с допустимым прямым током больше рабочего тока обмотки применённого реле и обратным напряжением не менее 15...20 В.

Так как АЦП микроконтроллера программа не использует, микроконтроллер PIC16F676-I/P можно заменить на PIC16F630-I/P, но потребуется небольшая корректировка программы. Сдвиговый регистр 74HC164N можно заменить на К561ИР2. ЖКИ PC1601BC при необходимости может быть без изменения схемы подключения заменён одним из более распространённых символьных ЖКИ, имеющих две строки по 16 символов. Это позволит выводить на его экран более информативные сообщения. При наличии в знакогенераторе ЖКИ русских букв англоязычные сообщения можно заменить русскоязычными. Запас программной памяти для подобных усовершенствований в применённом микроконтроллере есть (используется 77 %).

Перед началом использования блока нужно установить в меню ME_2-ME_4 значения верхнего порога, нижнего порога и глубины бака. Затем записать их в EEPROM, выбрав меню ME_5.

Программа микроконтроллера имеется здесь.

Литература

1. Нечаев И. Ультразвуковой дальномер HC-SR04 без микроконтроллера. Часть 1. Сигнализаторы присутствия. - Радио, 2018, № 4, с. 59-62.

2. Кухлинг Х. Справочник по физике. - М.: МИР, 1983.

Автор: В. Баранов, г. Санкт-Петербург