🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🛢️ Проект: автозаполнение бака по датчику уровня воды

Датчик уровня воды, реле и насос

Датчик уровня жидкости включает насос через реле, когда вода в баке опускается ниже нижней метки, и автоматически отключает его, когда бак снова полон — без ручного контроля и риска сухого хода насоса.

Как это работает

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

Главная идея этого проекта — использовать СРАЗУ ДВА датчика на разной высоте, а не один. Если использовать всего один датчик и включать/выключать насос строго по одной отметке уровня, на границе этой отметки (когда вода чуть колышется от работы самого насоса) реле будет щёлкать туда-сюда десятки раз в секунду — это называется "дребезгом" и быстро убивает и реле, и сам насос частыми пусками. Два датчика с разнесёнными порогами (нижний — "пора включать", верхний — "пора выключать") создают зазор между точками включения и выключения, который называется гистерезисом, и насос работает одним спокойным циклом вместо дребезга.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Установите нижний датчик уровня у дна бака (на минимально допустимом уровне воды) и подключите его сигнальный провод → D2.
  2. Установите верхний датчик уровня ближе к краю бака (на желаемом максимальном уровне) и подключите его сигнальный провод → D3.
  3. Питание обоих датчиков — VCC → 5V, GND → GND Arduino.
  4. Подключите модуль реле: сигнал → D7, VCC/GND реле → 5V/GND Arduino. Сам насос подключается к силовым контактам реле (COM/NO) отдельно, с учётом напряжения питания конкретного насоса — эта часть схемы силовая и должна быть собрана аккуратно.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

const int lowSensorPin = 2;   // нижний датчик уровня (у дна бака)
const int highSensorPin = 3;  // верхний датчик уровня (у края бака)
const int relayPin = 7;       // пин управления реле насоса
bool pumpOn = false;          // текущее состояние насоса

void setup() {
  pinMode(lowSensorPin, INPUT);
  pinMode(highSensorPin, INPUT);
  pinMode(relayPin, OUTPUT);
}

void loop() {
  bool low = digitalRead(lowSensorPin) == LOW;    // вода не достаёт до нижнего датчика
  bool high = digitalRead(highSensorPin) == HIGH; // вода достала до верхнего датчика

  if (low) pumpOn = true;   // уровень упал ниже минимума — включаем насос
  if (high) pumpOn = false; // уровень достиг максимума — выключаем насос

  digitalWrite(relayPin, pumpOn ? HIGH : LOW);
  delay(1000); // пауза между проверками
}

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

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← ❄️ сигнализация заморозков для сада на DS18B2…🌱 комбинированный контроль почвы — влажность… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 153 ₽ 138 ₽ (экономия 15 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA