Доброго дня всем,помогите решить проблему,не работает код должным образом Код (C++): #define LED_PIN 5 // номер выхода,подключенного к светодиоду #define INTERVAL 10000UL // интервал между включение/выключением светодиода (1 секунда) int FlagPoliva = 0; int timehour = 15; void setup() { pinMode(LED_PIN, OUTPUT); Serial.begin(9600); } void loop() { Serial.println(FlagPoliva); // Отладка значения переменной static unsigned long currentMillis = 0; // Храним время последнего переключения светодиода if (timehour == 15 && FlagPoliva == 0){ // Считываем время, если оно равно 19 часам РМ и флаг полива = 0 то выполняем полив digitalWrite(LED_PIN, 1); if (millis() - currentMillis > INTERVAL) { // Заканчиваем полив по истечению заданного в минутах времени digitalWrite(LED_PIN, 0); FlagPoliva = 1; // Установим флажок, что больше пока поливать не надо currentMillis = millis(); } } } значение переменной FlagPoliva почему то всегда = 1
не трудитесь отвечать, на другом форуме уже проблему решили. Все у человека работает как надо, просто он монитором порта пользоваться не умеет, как оказалось.