Как сделать условие для включения

У меня проект на ардуино. Проще говоря, суть в том, что стоит датчик уровня жидкости и когда воды становится критически низко, то включается помпа и добирает воды до определенного уровня. Как изобразить данный алгоритм в виде кода? Я просто новичок и очень сложно дается кодинг. Также, куда подключить датчик уровня, тоже хотелось бы подсказки

  1. Изучай матчасть, читай книги
  2. Или закажи проект за деньги, тыщи в 3 уложишься.

Тему пока перенес в песочницу, если ТС созреет до заказа, перенесем в платный раздел

Используйте операторы if - else

Например, упрощённо:

Спойлер
 В цикле loop() проверяем
{
if(сработал датчик)
  {
  включаем помпу
  }
else
  {
 выключаем помпу
  }
}

Какие книги изучать. Я ничего стоющего не нашел на просторах интернета. Постоянно вижу книги “обо всем и ни о чем”

Хотите сказать, что в интернете нету книг по программированию на C++? ЧуднО ))

1 лайк

Это другое. Надо же именно по ардуино ))

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

2 лайка
Спойлер

Вот пример кода для реализации описанного алгоритма управления уровнем воды с использованием датчика и помпы. Этот пример предполагает, что у вас есть цифровой датчик уровня жидкости (или аналоговый, если используется с пороговым значением) и реле для управления помпой.

#define WATER_SENSOR_PIN A0  // Пин датчика уровня воды (аналоговый)
#define PUMP_PIN 8           // Пин управления помпой (через реле)

// Пороговые значения для уровня воды
const int WATER_LOW_THRESHOLD = 300;  // Минимальный уровень воды (настройте под ваш датчик)
const int WATER_HIGH_THRESHOLD = 700; // Максимальный уровень воды (настройте под ваш датчик)

// Переменные для отслеживания состояния
bool pumpState = false;  // Состояние помпы

void setup() {
    pinMode(WATER_SENSOR_PIN, INPUT);
    pinMode(PUMP_PIN, OUTPUT);
    digitalWrite(PUMP_PIN, LOW); // Помпа изначально выключена

    Serial.begin(115200); // Для мониторинга
}

void loop() {
    int waterLevel = analogRead(WATER_SENSOR_PIN); // Читаем уровень воды с датчика

    Serial.print("Текущий уровень воды: ");
    Serial.println(waterLevel);

    if (!pumpState && waterLevel < WATER_LOW_THRESHOLD) {
        // Включаем помпу, если уровень воды ниже минимального
        pumpState = true;
        digitalWrite(PUMP_PIN, HIGH); // Включаем помпу
        Serial.println("Помпа включена!");
    } else if (pumpState && waterLevel > WATER_HIGH_THRESHOLD) {
        // Отключаем помпу, если уровень воды выше максимального
        pumpState = false;
        digitalWrite(PUMP_PIN, LOW); // Выключаем помпу
        Serial.println("Помпа выключена!");
    }

    delay(1000); // Задержка для предотвращения слишком частого опроса датчика
}

Объяснение

  1. Пины:

• WATER_SENSOR_PIN: Читает уровень воды (аналоговый сигнал от датчика).

• PUMP_PIN: Управляет помпой через реле.

  1. Пороговые значения:

• WATER_LOW_THRESHOLD: Если уровень воды ниже этого значения, включается помпа.

• WATER_HIGH_THRESHOLD: Если уровень воды выше этого значения, помпа отключается.

  1. Логика управления помпой:

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

• Если помпа включена и уровень воды достигает верхнего предела, она выключается.

  1. Serial Monitor:

• Выводит текущий уровень воды и состояние помпы для мониторинга.

  1. Задержка:

• delay(1000) предотвращает слишком частый опрос датчика (один раз в секунду).

Беги, сдавай!!

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