Water sensor +relay

Тема в разделе "Arduino & Shields", создана пользователем Wardonne, 13 янв 2019.

  1. Wardonne

    Wardonne Нуб

    Всем привет!
    Нужна помощь кто сможет помочь со скетчем что бы при низком значении реле вкл, а когда уже высокое выкл? Вот такой датчик
    [​IMG]
     
  2. Airbus

    Airbus Радиохулиган Модератор

    Дубль два?
     
    NikitOS нравится это.
  3. KindMan

    KindMan Гуру

    Wardonne нравится это.
  4. NikitOS

    NikitOS Король шутов Администратор

    ?
    Код (C++):

    int sensorPin = A0;         //Пин сенсора
    int relayPin = 6;         //Пин реле

    int normalWaterLevel = 700;     //Нормальное значение показаний датчика
    int maxWaterLevel = 600;     //Максимальный порог показаний датчика для включения реле
    int minWaterLevel = 0;       //Минимальный порог показаний датчики для включения реле

    int whaterLevel;         //Переменная для хранения текущего уровня воды

    bool relayState = true;       //Какой сигнал включит реле? (Можно проверить подавая логические ноль и единицу на сигнальный пин реле)

    void setup() {
       pinMode(relayPin, OUTPUT);   //Настраиваем пин с реле как выход
    }

    void loop() {
       whaterLevel = analogRead(sensorPin);     //Считываем показания датчика
       relayState = !relayState;           //Изменяем состояние реле, т.е выключаем
       digitalWrite(relayPin, relayState);       //Подаем на реле сигнал

       if (whaterLevel < minWaterLevel && whaterLevel > minWaterLevel) {   //Если уровень воды между минимальными и максимальными порогами...
         relayState = !relayState;         //Изменяем состояние реле, т.е включаем
         digitalWrite(relayPin, relayState);     //Подаем на реле сигнал
       } else if (whaterLevel > maxWaterLevel) {   //Иначе, если уровень воды больше нормы..
         relayState = !relayState;         //Изменяем состояние реле, т.е включаем
         digitalWrite(relayPin, relayState);     //Подаем на реле сигнал
       }
    }
     
     
    Wardonne нравится это.