В общем заказал все детали, но что-то пошло не так, не работает. Помпа не жужит, а как датчик проверить не знаю, впервые заказал ардуино и детали и хотел поиграться, но что-то пошло не так. У меня arduino Uno ch3400 . Фото в разобранном Вот как я все соединил Вот код который я загружаю в Ардуино #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
Учитесь отладке! Вставляете в код вывод в монитор: Код (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(); } }
Спасибо за ответ на вопрос, все решилось буквально 2 часа назад , проверил тестером питание которое отдавалось , оказалось не той стороной был подключен усилитель(был подключен как на фото в примере)