Оглавление:

Ультразвуковой контроллер уровня жидкости: 6 шагов (с изображениями)
Ультразвуковой контроллер уровня жидкости: 6 шагов (с изображениями)

Видео: Ультразвуковой контроллер уровня жидкости: 6 шагов (с изображениями)

Видео: Ультразвуковой контроллер уровня жидкости: 6 шагов (с изображениями)
Видео: Датчик уровня воды. Обзор и подключение 2024, Ноябрь
Anonim
Ультразвуковой контроллер уровня жидкости
Ультразвуковой контроллер уровня жидкости

Введение Как вы, наверное, знаете, в Иране засушливая погода, а в моей стране нехватка воды. Иногда, особенно летом, видно, что правительство перекрывает воду. Так что в большинстве квартир есть резервуары для воды. В нашей квартире есть бак на 1500 литров, который обеспечивает воду. Также в нашей квартире 12 жилых единиц. В результате можно ожидать, что резервуар очень скоро опустеет. К резервуару прикреплен водяной насос, который перекачивает воду в здание. Когда бак пуст, насос работает без воды. Эта ситуация вызывает повышение температуры двигателя и со временем может вызвать поломку насоса. Некоторое время назад эта помпа произошла у нас второй раз, и после вскрытия мотора мы увидели, что провода катушки сгорели. После замены помпы, чтобы снова не допустить этой проблемы, я решил сделать регулятор уровня воды. Я планировал сделать схему, чтобы отключить питание насоса всякий раз, когда вода опускалась ниже нижнего предела в резервуаре. Насос не будет работать, пока вода не поднимется до верхнего предела. После прохождения верхнего предела схема снова подключит источник питания. Вначале я поискал в Интернете, могу ли я найти подходящую схему. Однако ничего подходящего не нашел. Были некоторые индикаторы воды на основе Arduino, но они не могли решить мою проблему. В результате я решил разработать свой контроллер уровня воды. Универсальный пакет с простым графическим пользовательским интерфейсом для настройки параметров. Также я постарался учитывать стандарты EMC, чтобы убедиться, что устройство работает корректно в разных ситуациях.

Шаг 1. Принцип

Принцип
Принцип

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

Обратите внимание: когда вы находите расстояние до воды, вы рассчитываете объем пустого пространства в резервуаре. Чтобы получить объем воды, вы должны вычесть рассчитанный объем из общего объема резервуара.

Шаг 2: датчик, источник питания и контроллер

Датчик, источник питания и контроллер
Датчик, источник питания и контроллер
Датчик, источник питания и контроллер
Датчик, источник питания и контроллер
Датчик, источник питания и контроллер
Датчик, источник питания и контроллер
Датчик, источник питания и контроллер
Датчик, источник питания и контроллер

Аппаратное обеспечение

В качестве датчика я использовал водонепроницаемый ультразвуковой датчик JSN-SR04T. Порядок работы такой же, как у HC-SR04 (вывод эха и триггера).

Технические характеристики:

  • Расстояние: от 25 см до 450 см
  • Рабочее напряжение: 3,0-5,5 В постоянного тока
  • Рабочий ток: < 8 мА
  • Точность: ± 1 см
  • Частота: 40 кГц
  • Рабочая температура: -20 ~ 70 ℃

Обратите внимание, что у этого контроллера есть некоторые ограничения. Например: 1- JSN-SR04T не может измерять расстояние ниже 25 см, поэтому вам необходимо установить датчик на высоте не менее 25 см над поверхностью воды. Кроме того, максимальное измерение расстояния составляет 4,5 м. Так что этот датчик не подходит для огромных резервуаров. 2- точность составляет 1 см для этого датчика. В результате, в зависимости от диаметра резервуара, разрешение объема, которое будет отображать устройство, может варьироваться. 3 - скорость звука может меняться в зависимости от температуры. В результате на точность могут влиять разные регионы. Однако для меня эти ограничения не были принципиальными, а точность была подходящей.

Контроллер

Я использовал STM32F030K6T6 ARM Cortex M0 от STMicroelectronics. Вы можете найти спецификацию этого микроконтроллера здесь.

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

Первая часть - преобразовать 220 В / 50 Гц (Иранское электричество) в 12 В постоянного тока. Для этого я использовал понижающий понижающий блок питания HLK-PM12. Этот преобразователь переменного / постоянного тока может преобразовывать 90 ~ 264 В переменного тока в 12 В постоянного тока с выходным током 0,25 А.

Как вы, наверное, знаете, индуктивная нагрузка на реле может вызвать несколько проблем в цепи и источнике питания, а проблемы с источником питания могут привести к нестабильности, особенно в микроконтроллере. Решение - изолировать источники питания. Также необходимо использовать демпферную схему на контактах реле. Есть несколько способов изолировать источники питания. Например, можно использовать трансформатор с двумя выходами. Более того, существуют изолированные DC / DC преобразователи небольшого размера, которые могут изолировать выход от входа. Для этого я использовал MINMAX MA03-12S09. Это преобразователь постоянного тока в постоянный ток мощностью 3 Вт с изоляцией.

Шаг 3: Контроллер IC

Наблюдатель IC
Наблюдатель IC

Согласно примечанию TI App: Контроллер напряжения (также известный как интегральная схема сброса [IC]) - это тип монитора напряжения, который контролирует источник питания системы. Контроллеры напряжения часто используются с процессорами, регуляторами напряжения и секвенсорами - как правило, там, где требуется измерение напряжения или тока. Супервизоры контролируют шины напряжения, чтобы гарантировать включение питания, обнаруживать неисправности и взаимодействовать со встроенными процессорами для обеспечения работоспособности системы. вы можете найти эту заметку о приложении здесь. Хотя микроконтроллеры STM32 имеют встроенные средства контроля, такие как монитор включения питания, я использовал внешний чип супервизора, чтобы убедиться, что все работает нормально. В моем случае я использовал TL7705 от TI. Вы можете увидеть описание этой ИС на веб-сайте Texas Instruments ниже: Семейство контроллеров напряжения питания на интегральных схемах TL77xxA разработано специально для использования в качестве контроллеров сброса в микрокомпьютерных и микропроцессорных системах. Контроллер напряжения питания контролирует питание на предмет пониженного напряжения на входе SENSE. При включении питания выход RESET становится активным (низким), когда VCC достигает значения, приближающегося к 3,6 В. В этот момент (при условии, что SENSE выше VIT +) функция таймера задержки активирует временную задержку, после которой выдает RESET и RESET (НЕ) переходят в неактивное состояние (соответственно высокий и низкий). Когда во время нормальной работы возникает состояние пониженного напряжения, активируются СБРОС и СБРОС (НЕ).

Шаг 4: Печатная плата (PCB)

Печатная плата (PCB)
Печатная плата (PCB)
Печатная плата (PCB)
Печатная плата (PCB)
Печатная плата (PCB)
Печатная плата (PCB)
Печатная плата (PCB)
Печатная плата (PCB)

Я спроектировал печатную плату из двух частей. Первая - это плата ЖК-дисплея, которая подключается к материнской плате с помощью ленточного / плоского кабеля, а вторая часть - это плата контроллера. На этой плате я разместил блок питания, микроконтроллер, ультразвуковой датчик и сопутствующие компоненты. А также силовая часть, которая представляет собой цепь реле, варистора и демпфера. Как вы, наверное, знаете, механические реле, такие как реле, которое я использовал в своей схеме, могут выйти из строя, если они всегда работают. Чтобы решить эту проблему, я использовал нормально замкнутый контакт (NC) реле. Таким образом, в нормальной ситуации реле неактивно, и нормально закрытый контакт может передавать питание на насос. Когда вода опускается ниже нижнего предела, реле включается, и это отключает питание. Сказав это, это причина того, что я использовал схему демпфера на контактах NC и COM. Что касается того, что помпа была большая мощность, то я использовал для нее второе реле 220, и я управляю им с помощью реле на печатной плате.

Вы можете скачать файлы PCB, такие как файлы Altium PCB и Gerber, с моего GitHub здесь.

Шаг 5: Код

Image
Image
Установка на резервуар
Установка на резервуар

Я использовал STM32Cube IDE, которое представляет собой универсальное решение для разработки кода от STMicroelectronics. Он основан на Eclipse IDE с компилятором GCC ARM. Кроме того, в нем есть STM32CubeMX. Вы можете найти больше информации здесь. Сначала я написал код, который включал нашу спецификацию резервуара (высоту и диаметр). Однако я решил изменить его на графический интерфейс для настройки параметров на основе различных спецификаций.

Шаг 6: Установка на резервуар

Установка на резервуар
Установка на резервуар
Установка на резервуар
Установка на резервуар

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

Рекомендуемые: