Ёмкостный датчик уровня жидкости: подключение, примеры работы

Бесконтактный датчик уровня жидкости XKC-Y25-V зафиксирует наличие водного раствора сквозь преграды и стены.

Датчик не будет работать с металлическими препятствиями.

Примеры работы

Для теста сенсора воспользуйтесь стаканом или кружкой. Наполните ёмкость наполовину водой и перемещайте сенсор в области ватерлинии. Для питания и обработки результатов понадобится контроллер.

Пример для Arduino

Подключите датчик уровня воды к Arduino Uno через Troyka Shield к 4 цифровому пину.

Схема устройства

Код программы

liquidLevelState.ino
// пин бесконтакного датчика уровня жидкости
#define LIQIID_SENSOR_PIN  4
 
void setup()
{
  // открываем монитор Serial-порта
  Serial.begin(9600);
  // настраиваем пин в режим входа
  pinMode(LIQIID_SENSOR_PIN, INPUT);
}
 
void loop()
{
  // считываем состояние пина
  int motionState = digitalRead(LIQIID_SENSOR_PIN);
  // выводим данные в Serial-порт
  Serial.println(motionState);
  delay(100);
}

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

Пример для Iskra JS

Скоммутируем датчик к Iskra JS через Troyka Shield к 4 цифровому пину.

Схема устройства

Код программы

Зафиксируем изменение уровня жидкости с помощью Espruino и языка JavaScript.

liquidLevelState.js
// наблюдаем за датчиком уровня жидкости
setWatch(function() {
  // если сработало изменение на пине датчика
  // считываем состояние сенсора
  var state = digitalRead(P7);
  // выводим в консоль текущие состояние
  if (state) {
    print("Water is Yes");
  } else {
    print("Water is Not");
  }
}, P7, {
  // функция вызывается многократно
  repeat: true,
  // фиксация восходящего фронта
  edge: "both"
});

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

Пример для Raspberry Pi

Произведите мониторинг уровня воды микрокомпьютером Raspberry Pi. Подключите сенсор движения к 4 пину малины. Чтобы обойтись без макеток и проводов, используйте плату расширения Troyka HAT.

Схема устройства

Код программы

liquidLevelState.py
# библиотека для работы с методами языка Wiring (Arduino)
import wiringpi as wp
# инициализация WiringPi 
wp.wiringPiSetup()
# пин 4 в режим входа
wp.pinMode(4, 0)
 
while (True):
    # считываем состояние с датчика уровня воды
    motionState = wp.digitalRead(4)
    # печатаем результат в консоль
    print(motionState);
    # ждём 100 мс
    wp.delay(100)   

После запуска скрипта вы увидите текущие показатели сенсора. Пока уровень воды находится выше датчика — в консоле выводятся единицы, при опускании уровня ниже сенсора — нули.

Элементы платы

Световой индикатор

Информационный светодиод о детектировании жидкости: при наличии воды в зоне поиска сенсора — светодиод горит, при отсутствии — не горит. Светодиод дублирует выходной сигнал сенсора.

Регулировка чувствительности

Откройте заднюю крышку сенсора.

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

Для регулировки используйте маленькую плоскую отвёртку, которую можно найти в «Наборе отвёрток».

Разъём подключения

Сенсор подключается к управляющей плате через встроенный кабель. На конце провода расположен разъём в формфакторе Troyka-контактов:

  • Жёлтый (S) — цифровой выход сенсора. Используется для передачи текущего состояния модуля. При детектировании воды на датчике высокий уровень сигнала, при отсутствии — низкий. Подключите к цифровому пину микроконтроллера.
  • Чёрный/Коричневый (V) — соедините с рабочим напряжением микроконтроллера.
  • Синий (G) — соедините с землёй микроконтроллера.

Характеристики

  • Модуль датчика: XKC-Y25-V
  • Интерфейс: бинарный цифровой сигнал
  • Диапазон толщины/чувствительность индукции: 0–20 мм
  • Напряжение питания: 3,3–5 В
  • Потребляемый ток: до 5 мА
  • Время отклика: 500 мс
  • Класс защиты: IP67
  • Длина кабеля: 50 см
  • Габариты: 28×28 мм

Ресурсы