Программирование датчика уровня жидкости

Управление уровнем воды в баке с использованием программируемого реле ОВЕН ПР110

Контроллер ПР110 выпускается российской компанией «ОВЕН». Контроллер выполняет операции только с дискретными сигналами – основное его предназначение заключается в замене собой несложных систем управления на релейной логике. Это определяет то, что за ним (как и за другими аналогичными по функциям контроллерами) закрепилось название «программируемое реле».

Программируемое реле ОВЕН ПР110

Функциональная схема программируемого реле ОВЕН ПР110:

Функциональная схема программируемого реле ОВЕН ПР110

Логика работы программируемого реле ПР110 определяется пользователем в процессе программирования с помощью среды «OWEN EasyLogic» или «OWEN Logic».

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

ОВЕН ПР110 в шкафу автоматики

Процесс создания коммутационной управляющей программы для программируемых реле ПР110 рассмотрим на примере системы управления уровнем воды в баку.

Необходимо реализовать систему управления заполнением бака водой. Выполнение отдельных функций определяется состоянием датчиков уровня, некоторых функций – оператором. Должна быть световая индикация текущего состояния системы.

Алгоритм управления состоит в следующем. Имеется три датчика, определяющих текущий уровень воды в баке: верхний, средний и нижний. Каждый датчик срабатывает (выдает на выходе уровень логической единицы) при превышении водой соответствующего уровня.

Ручное управление осуществляется с помощью двух кнопок: «Старт» и «Стоп». Когда бак пуст (уровень воды ниже нижнего датчики уровня), должен постоянно гореть красный индикатор, когда полон (выше верхнего) – постоянно зеленый. Ведется управление двумя насосами.

Запуск насосов разрешен, если бак не полон (уровень воды ниже верхнего). Если при нажатии кнопки «Старт» уровень воды ниже среднего – запускаются оба насоса, если при нажатии кнопки «Старт» уровень воды выше среднего – запускается один насос.

Включение насосов сопровождается миганием зеленого индикатора. При заполнении бака (уровень воды достигнет верхнего уровня), насосы автоматически выключаются. Если бак пуст (уровень воды ниже нижнего уровня) выключить насосы нажатием кнопки «Стоп» нельзя.

Пример создания программы в OWEN Logic

Для реализации данной задачи управляющий автомат должен иметь пять дискретных входов и четыре релейных выхода. Для решения поставленной задачи примем следующие решения.

Датчик нижнего уровня воды в баке подключим к входу I1, датчик среднего уровня – к входу I2, датчик верхнего уровня – к входу I3. Кнопку «Стоп» подключим к входу I4, кнопку «Старт» – к входу I5. Включением насоса №1 будем управлять с помощью выхода Q1, включением насоса №2 – с помощью выхода Q2. Индикатор красного цвета подключим к выходу Q3, индикатор зеленого цвета – к выходу Q4.

Ручное управление осуществляется кнопками, которые формируют кратковременные управляющие сигналы. Для того чтобы система управления оставалась в том состоянии куда мы ее переведем кратковременным сигналом с той или иной кнопки в программе нужен триггер.

Введем в программу триггер RS1. Выход этого триггера устанавливается в единицу по приходу положительного фронта на вход S и сбрасывается в ноль по приходу положительного фронта на вход R. Нужно иметь в виду, что при одновременном поступлении единичных сигналов на входы приоритетным является сигнал входа R.

Если уровень воды в баке выше верхнего или мы нажали и удерживаем в таком состоянии кнопку «Стоп», то нажатие в это время кнопки «Старт» не должно приводить к включению насосов. Поэтому кнопку «Старт» подключим к менее приоритетному входу S триггера RS1. Тогда, если включению насосов никакие условия препятствовать не будут (т. е. на входе R триггера RS1 будет логический ноль), при нажатии кнопки «Старт» выход триггера RS1 будет устанавливаться в единицу. Этот сигнал будет использоваться для разрешения работы двигателей.

Из двух насосов насос №1 должен включаться в любом случае, поэтому сигнал с выхода триггера RS1 соединим с выходом Q1. Насос №2 должен включаться только в том случае если не сработал датчик среднего уровня. Для выполнения этого условия введем в программу инвертор и логический элемент И. Вход инвертора соединим с входом I2, входы логического элемента И соответственно с выходом инвертора и с выходом триггера RS1.

Программа в OWEN Logic

Включение насосов должно сопровождаться миганием зеленого индикатора. Для формирования периодического сигнала для включения/выключения зеленого индикатора введем в программу генератор прямоугольных импульсов BLINK1. На закладке свойств этого блока установим длительность единичного и нулевого сигнала на его выходе одинаковыми и равными 1с. Соединим выход триггера RS1 вход разрешения работы генератора BLINK1.

Теперь генератор BLINK1 будет работать только тогда, когда выход триггера RS1 будет установлен в единицу, т. е. тогда когда будет разрешена работа насосов. 26 Введем в программу логический элемент ИЛИ. Его выход соединим с выходом Q4. Один вход логического элемента ИЛИ соединим с выходом генератора BLINK1, другой – входом I3. Теперь при включении насосов зеленый индикатор будет мигать, но если сработает датчик верхнего уровня, то этот индикатор будет гореть постоянно.

Тригер и генератор в программе

Выключение насосов должно производиться если мы нажмем кнопку «Стоп» и одновременно датчик нижнего уровня будет находиться в состоянии логической единицы (наличие хотя бы при минимальном наличии воды в баке) или если сработает датчик верхнего уровня (бак полон).

Для выполнения этих условий введем в программу логический элемент ИЛИ и логический элемент И. Один вход логического элемента И соединим с кнопкой «Стоп», другой – с входом I1 (с выходом датчика нижнего уровня). Один вход элемента ИЛИ соединим с выходом элемента И, другой – с входом I3 (с выходом датчика верхнего уровня). Выход элемента ИЛИ соединим с входом R триггера RS1.

Программа управления уровня воды в баке

Индикатор красного цвета должен гореть, если одновременно выполняются два условия: не работают насосы (на выходе триггера RS1 присутствует ноль) и уровень воды ниже нижнего уровня (на выходе датчика нижнего уровня присутствует ноль).

Для «проверки» этих условий и управления красным индикатором в программу введем два инвертора и логический элемент И. Вход одного инвертора соединим с входом I1 (с выходом датчика нижнего уровня), вход другого инвертора – с выходом триггера RS1). Выходы инверторов соединим с входами логического элемента И. Выход логического элемента И подключим к выходу Q3.

Подключение выхода Q3

В конечном итоге в целом у вас должна получиться программа, представленная ниже. На рисунке условно показаны внешние цепи, подключаемые к программируемому реле.

Пример программы управления уровнем воды в баке

Используя режим эмуляции среды программирования «OWEN Logic» убедитесь, что программа работает в соответствии с исходным заданием. Загрузив программу в реле, убедитесь в том же самом.

Телеграмм канал для тех, кто каждый день хочет узнавать новое и интересное: Школа для электрика

Если Вам понравилась эта статья, поделитесь ссылкой на неё в социальных сетях. Это сильно поможет развитию нашего сайта!

Не пропустите обновления, подпишитесь на наши соцсети:

Источник

Как работает датчик уровня воды и как его подключить к Arduino

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

Внешний вид подключения датчика уровня воды к плате Arduino Uno

Поэтому в данной статье мы рассмотрим принципы работы датчика уровня воды (water level sensor) и его подключение к плате Arduino. Ранее на нашем сайте мы рассматривали следующие проекты, связанные с определением уровня воды:

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик уровня воды (купить на AliExpress).
  3. Резистор (купить на AliExpress).
  4. Светодиод (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Как работает датчик уровня воды

Распиновка датчика уровня воды

Датчик уровня воды имеет 3 контакта, работает от 5V и передает на свой выход аналоговые данные. Его распиновка показана на следующем рисунке.

Распиновка датчика уровня воды

VCC – через данный контакт на датчик подается питающее напряжение 5V.

GND – общий провод (земля). Его необходимо подключить к общему проводу платы Arduino.

OUT – аналоговый выход датчика, на котором формируется аналоговый сигнал с уровнем в диапазоне от GND до VCC.

Принципы работы датчика уровня воды

На печатной плате датчика расположены длинные проводящие пластины и при достижении водой определенного уровня проводимость между двумя пластинами изменяется. Измеряя величину этих изменений мы можем определить уровень воды.

На представленной Gif картинке наглядно показан принцип работы датчика уровня воды. Как вы можете видеть из представленного рисунка, капли воды падают в стакан, уровень воды поднимается, а вместе с ним пропорционально повышается и уровень напряжения на выходном каскаде датчика. Это происходит из-за того, что на печатной плате датчика расположено 10 проводящих пластинок, 5 из которых являются питающими, а другие 5 – сенсорными.

Компоненты датчика уровня воды

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

Компоненты датчика уровня воды

Датчик содержит 3 контакта, 2 из которых используются для подачи питания на датчик, а третий является выходным контактом датчика. Также датчик содержит встроенный светодиод, который загорается при подаче питания на датчик, транзистор и несколько резисторов.

Наиболее часто задаваемые вопросы про датчик уровня воды

Какие основные типы датчиков уровня воды существуют:
Существуют 6 основных типов подобных датчиков: резистивные, емкостные, ультразвуковые, частотные, на основе поверхностных волн (GWR) и на основе датчиков давления. Каждый из этих типов датчиков имеет свои достоинства и недостатки.

Для чего используются датчики уровня воды?
Подобные датчики используются для измерения уровня жидкостей и текучих сред, а также псевдосжиженных твердых тел, включая гидросмеси, зернистые (гранулированные) материалы, порошки и т.д.

Можно ли сделать датчик уровня воды самому?
Если у вас есть в наличии светодиоды, зуммер и чувствительные провода, то данный датчик можно изготовить самому.

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

Схема модуля датчика уровня воды

Схема модуля датчика уровня воды представлена на следующем рисунке.

Схема модуля датчика уровня воды

В представленной схеме коллектор транзистора подключен к источнику напряжения 5V, а эмиттер транзистора подключен к земле через резистор 100 Ом. В модуле датчика 5 проводящих пластин подключены к контакту Vcc через резистор 100 Ом, а остальные 5 пластин подключены к базе NPN транзистора. Теперь, если вода будет достигать этих проводящих пластин, ток начнет протекать от источника 5V на базу транзистора и транзистор будет открываться. И чем больше датчик будет погружен в воду, тем большее напряжение будет на его выходе.

Схема проекта

Схема подключения датчика уровня воды к плате Arduino Uno представлена на следующем рисунке.

Схема подключения датчика уровня воды к плате Arduino Uno

В данной схеме мы подключили выходной контакт датчика уровня воды к контакту A0 платы Arduino, а светодиод – к ШИМ контакту 6 платы Arduino. Программу нашего проекта мы напишем таким образом, чтобы яркость свечения светодиода изменялась в зависимости от уровня воды, измеряемого датчиком.

Внешний вид собранной конструкции проекта

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

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

Источник

Читайте также:  Выбери все особенности языка программирования python
Оцените статью