@ramisdavletov

Arduino. Поможете с алгоритмом?

Не могу реализовать в цикле Watering полива заданного объема Volume, в заданное время.

268ea248230d41b09317f7df2b816a0b.png

В данный момент если объем не успеет пройти через датчик потока воды за время, то он прекращает подачу воды.
Охота чтобы полив начинался в N-ное время, и закончился только после прохождения заданного объема.
Помогите с алгоритмом.
Спасибо.
  • Вопрос задан
  • 414 просмотров
Решения вопроса 2
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
проблема в том, что у вас поливается только при условии, что часов 22 и минут 21. как только минут становится 22 - все прекращается. сделайте => для минут или измените логику - по наступлению времени выставляйте флаг , далее в цикле полива проверяйте наличие флага, при наличии и не достижении объема полива поливайте - по достижении объема снимайте флаг
Ответ написан
Комментировать
@ramisdavletov Автор вопроса

void Watering()
{
 int  h = 23;
 int t = 8;
 int s = 1;
 bool Flag;
 if (((ReturnHour()) ==  h) && ((ReturnMinute()) ==  t) )
 {
   Serial.println("TIME!!!!");
   bool Flag = true;
 }

 if ( (ReturnVolume()) > Volume)
 {
   Serial.println("FINISH!");
   digitalWrite(ValweONEpin, HIGH);
   Serial.println("Valwe STOPPED!!");
   Flag = false;
   if ((ReturnMinute()) ==  (t + s))
   {
     FlowmeterZeroValue();
   }
 }

 if ((ReturnVolume()) < Volume && Flag == true)
 {
   Serial.println("< VOLUME");
   Serial.println("Valwe WORKING!!");
   digitalWrite(ValweONEpin, LOW);
 }

}

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы