- Управление уровнем воды в баке с использованием программируемого реле ОВЕН ПР110
- Как работает датчик уровня воды и как его подключить к Arduino
- Необходимые компоненты
- Как работает датчик уровня воды
- Распиновка датчика уровня воды
- Принципы работы датчика уровня воды
- Компоненты датчика уровня воды
- Наиболее часто задаваемые вопросы про датчик уровня воды
- Схема модуля датчика уровня воды
- Схема проекта
- Объяснение программы для Arduino
Управление уровнем воды в баке с использованием программируемого реле ОВЕН ПР110
Контроллер ПР110 выпускается российской компанией «ОВЕН». Контроллер выполняет операции только с дискретными сигналами – основное его предназначение заключается в замене собой несложных систем управления на релейной логике. Это определяет то, что за ним (как и за другими аналогичными по функциям контроллерами) закрепилось название «программируемое реле».
Функциональная схема программируемого реле ОВЕН ПР110:
Логика работы программируемого реле ПР110 определяется пользователем в процессе программирования с помощью среды «OWEN EasyLogic» или «OWEN Logic».
Основным и единственным инструментом для программирования и отладки программного обеспечения контроллеров является персональный компьютер. С его помощью можно не только создать программное обеспечение соответствующего контроллера, но, как правило, и пронаблюдать то как оно работает, используя компьютерную имитацию.
Процесс создания коммутационной управляющей программы для программируемых реле ПР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.
Включение насосов должно сопровождаться миганием зеленого индикатора. Для формирования периодического сигнала для включения/выключения зеленого индикатора введем в программу генератор прямоугольных импульсов BLINK1. На закладке свойств этого блока установим длительность единичного и нулевого сигнала на его выходе одинаковыми и равными 1с. Соединим выход триггера RS1 вход разрешения работы генератора BLINK1.
Теперь генератор BLINK1 будет работать только тогда, когда выход триггера RS1 будет установлен в единицу, т. е. тогда когда будет разрешена работа насосов. 26 Введем в программу логический элемент ИЛИ. Его выход соединим с выходом Q4. Один вход логического элемента ИЛИ соединим с выходом генератора BLINK1, другой – входом I3. Теперь при включении насосов зеленый индикатор будет мигать, но если сработает датчик верхнего уровня, то этот индикатор будет гореть постоянно.
Выключение насосов должно производиться если мы нажмем кнопку «Стоп» и одновременно датчик нижнего уровня будет находиться в состоянии логической единицы (наличие хотя бы при минимальном наличии воды в баке) или если сработает датчик верхнего уровня (бак полон).
Для выполнения этих условий введем в программу логический элемент ИЛИ и логический элемент И. Один вход логического элемента И соединим с кнопкой «Стоп», другой – с входом I1 (с выходом датчика нижнего уровня). Один вход элемента ИЛИ соединим с выходом элемента И, другой – с входом I3 (с выходом датчика верхнего уровня). Выход элемента ИЛИ соединим с входом R триггера RS1.
Индикатор красного цвета должен гореть, если одновременно выполняются два условия: не работают насосы (на выходе триггера RS1 присутствует ноль) и уровень воды ниже нижнего уровня (на выходе датчика нижнего уровня присутствует ноль).
Для «проверки» этих условий и управления красным индикатором в программу введем два инвертора и логический элемент И. Вход одного инвертора соединим с входом I1 (с выходом датчика нижнего уровня), вход другого инвертора – с выходом триггера RS1). Выходы инверторов соединим с входами логического элемента И. Выход логического элемента И подключим к выходу Q3.
В конечном итоге в целом у вас должна получиться программа, представленная ниже. На рисунке условно показаны внешние цепи, подключаемые к программируемому реле.
Используя режим эмуляции среды программирования «OWEN Logic» убедитесь, что программа работает в соответствии с исходным заданием. Загрузив программу в реле, убедитесь в том же самом.
Телеграмм канал для тех, кто каждый день хочет узнавать новое и интересное: Школа для электрика
Если Вам понравилась эта статья, поделитесь ссылкой на неё в социальных сетях. Это сильно поможет развитию нашего сайта!
Не пропустите обновления, подпишитесь на наши соцсети:
Как работает датчик уровня воды и как его подключить к Arduino
Переполнение различных контейнеров/емкостей для хранения воды является достаточно частой проблемой для многих домохозяйств. Конечно, существуют специальные шаровые клапаны, которые автоматически перекрывают поток воды при достижении уровнем воды определенного уровня, но в ряде случаев применение электронного устройства для решения этой задачи выглядит более предпочтительным.
Поэтому в данной статье мы рассмотрим принципы работы датчика уровня воды (water level sensor) и его подключение к плате Arduino. Ранее на нашем сайте мы рассматривали следующие проекты, связанные с определением уровня воды:
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Датчик уровня воды (купить на AliExpress).
- Резистор (купить на AliExpress).
- Светодиод (купить на AliExpress).
- Макетная плата.
- Соединительные провода.
Как работает датчик уровня воды
Распиновка датчика уровня воды
Датчик уровня воды имеет 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 представлена на следующем рисунке.
В данной схеме мы подключили выходной контакт датчика уровня воды к контакту A0 платы Arduino, а светодиод – к ШИМ контакту 6 платы Arduino. Программу нашего проекта мы напишем таким образом, чтобы яркость свечения светодиода изменялась в зависимости от уровня воды, измеряемого датчиком.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
В программе мы будем считывать аналоговое значение напряжения с выхода датчика и на основе его значения определять уровень воды.
Код программы мы начнем с указания осмысленных имен для используемых контактов – к которым подключены датчик уровня воды и светодиод.