Автополив цветов не работает

Тема в разделе "Arduino & Shields", создана пользователем worlak2, 10 ноя 2017.

  1. worlak2

    worlak2 Нуб

    В общем заказал все детали, но что-то пошло не так, не работает. Помпа не жужит, а как датчик проверить не знаю, впервые заказал ардуино и детали и хотел поиграться, но что-то пошло не так. У меня arduino Uno ch3400 . Фото в разобранном
    [​IMG]
    Вот как я все соединил
    [​IMG]
    [​IMG] [​IMG]

    Вот код который я загружаю в Ардуино

    #define POMP_PIN 4
    // даём разумное для пина, к которому подключён датчик влажности почвы
    #define HUMIDITY_PIN A0
    // минимальный порог влажности почвы
    #define HUMIDITY_MIN 200
    // максимальный порог влажности почвы
    #define HUMIDITY_MAX 700
    // интервал между проверкой на полив растения
    #define INTERVAL 60000 * 3
    // переменная для хранения показания влажности почвы
    unsigned int humidity = 0;

    // статическая переменная для хранения времени
    unsigned long waitTime = 0;



    void setup(void)
    {

    // пин помпы в режим выхода
    pinMode(POMP_PIN, OUTPUT);


    }

    void loop(void)
    {
    // считываем текущее показания датчика влажности почвы
    int humidityNow = analogRead(HUMIDITY_PIN);
    // если показания текущей влажности почвы
    // не равняется предыдущему запросу
    if(humidityNow != humidity) {
    // сохраняем текущие показания влажности
    humidity= humidityNow;

    }
    // если прошёл заданный интервал времени
    // и значения датчика влажности меньше допустимой границы
    if ((waitTime == 0 || millis() - waitTime > INTERVAL) && humidity < HUMIDITY_MIN ) {
    // включаем помпу
    digitalWrite(POMP_PIN, HIGH);
    // ждём 2 секунды
    delay(2000);
    // выключаем помпу
    digitalWrite(POMP_PIN, LOW);
    // приравниваем переменной waitTime
    // значение текущего времени плюс 3 минуты
    waitTime = millis();
    }
    }
    Ссылка на статью http://wiki.amperka.ru/projects:irrigator
     
    Последнее редактирование: 10 ноя 2017
  2. SergeiL

    SergeiL Оракул Модератор

    Учитесь отладке! :)

    Вставляете в код вывод в монитор:
    Код (C++):
    Serial.print("New Humidity = ");
    Serial.println(humidityNow);
     
    В Ардуино IDE в меню "инструменты" включаете "Монитор порта" и смотрите что происходит.

    Подправил Ваш код,
    Начтните с этого:

    Код (C++):
    void setup(void)
    {
        Serial.begin(115200);
        Serial.println("");
        Serial.println("--- Setup Start -----");
       
        // пин помпы в режим выхода
        pinMode(POMP_PIN, OUTPUT);
       
        Serial.println("--- Setup End -----");

    }

    void loop(void)
    {
        // считываем текущее показания датчика влажности почвы
        int humidityNow = analogRead(HUMIDITY_PIN);
       
        // если показания текущей влажности почвы
        // не равняется предыдущему запросу
        if(humidityNow != humidity)
        {           // сохраняем текущие показания влажности
       
            humidity= humidityNow;
           
            Serial.print("New Humidity = ");
            Serial.println(humidityNow);
           
        }
       
        // если прошёл заданный интервал времени
        // и значения датчика влажности меньше допустимой границы
       
        if ((waitTime == 0 || millis() - waitTime > INTERVAL) && humidity < HUMIDITY_MIN )
        {    
       
            digitalWrite(POMP_PIN, HIGH);   // включаем помпу
            Serial.println("Pomp ON");
           
            delay(2000); // ждём 2 секунды
           
            digitalWrite(POMP_PIN, LOW);     // выключаем помпу
            Serial.println("Pomp OFF");
           
                                            // приравниваем переменной waitTime
                                            // значение текущего времени плюс 3 минуты
            waitTime = millis();
        }
    }
     
  3. Оформите код для чтения
    Код (Text):
    Вот так.
    И что вам пишет компилятор?
     
  4. worlak2

    worlak2 Нуб

    Спасибо за ответ на вопрос, все решилось буквально 2 часа назад , проверил тестером питание которое отдавалось , оказалось не той стороной был подключен усилитель(был подключен как на фото в примере)