🛒
0 товар.
0 руб.
Логотип

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

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

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

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

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

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

Контактные датчики уровня воды — это два оголённых контакта: пока они сухие, цепь разомкнута, а когда вода покрывает их — вода проводит ток и замыкает цепь, Arduino видит это как изменение сигнала на пине.

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

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

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

  1. Нижний датчик уровня (у дна бака, минимальный уровень воды): сигнал → D2.
  2. Верхний датчик уровня (у края бака, максимальный уровень): сигнал → D3.
  3. Питание обоих датчиков: VCC → 5V, GND → GND.
  4. Модуль реле: сигнал → D7, VCC/GND → 5V/GND. Сам насос подключается к силовым контактам реле (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: Электронные модули.

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

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

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

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

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

Корзина

Поиск


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