Ви не увійшли.
Сторінки 1
Большое спасибо за уделенное вами время моей проблеме. В 3:00 пришла мысля и я решил проблему.
if(hour == h1on && minute == min1on && second == sec1on)
{
b=h1off*3600+min1off*60+sec1off;
}
if (b-(hour*3600+minute*60+second)>0)
{
TimerINTERVAL = millis() ;
//#1 1000 миллисекунд вычислит. поток 1
static uint32_t past_1 = 0 ;
static uint32_t past1_1 = 0 ;
if (Led && TimerINTERVAL - past1_1 >= 2000 ) {// 2000 миллесекунд=2сек длительность вспышеки
digitalWrite(Relay1, HIGH);
Led = 0;
}
if (TimerINTERVAL - past_1 >= 10000) { // 10000 миллесекунд=10сек период вспышек
past_1 = TimerINTERVAL ;
digitalWrite(Relay1, LOW);
past1_1 = TimerINTERVAL ;
Led = 1;
}
}
if(b-(hour*3600+minute*60+second)==0)
{
digitalWrite(Relay1, HIGH);
b=0;
}
Спасибо.
Этот цикл работает тоже отлично. Не могу вставить его во временные рамки. Подскажите пожалуйста как это можна сделать.
if(hour == h1on && minute == min1on && second == sec1on)
{
TimerINTERVAL = millis() ;
//#1 1000 миллисекунд вычислит. поток 1
static uint32_t past_1 = 0 ;
static uint32_t past1_1 = 0 ;
if (Led && TimerINTERVAL - past1_1 >= 2000 ) {// 2000 миллесекунд=2сек длительность вспышеки
digitalWrite(Relay1, HIGH);
}
if (TimerINTERVAL - past_1 >= 5000) { // 10000 миллесекунд=10сек период вспышек
past_1 = TimerINTERVAL ;
digitalWrite(Relay1, LOW);
past1_1 = TimerINTERVAL ;
Led = 1;
}
}
if(hour == h1off && minute == min1off && second == sec1off)
{
digitalWrite(Relay1, HIGH);
}
Идеи хорошие. С циклом возникли проблемы, когда заходит в цикл не мого сделать чтобы он с этого цикла вышел когда нужно.
level1:
if(hour == h1on && minute == min1on && second == sec1on)
{
level:
TimerINTERVAL = millis();
for (a=0; a<5000; a=millis()-TimerINTERVAL)
{digitalWrite(Relay1, LOW);
Serial.print(a);
Serial.print("a=");
TimerINTERVAL1 = millis();
if(hour == h1off && minute == min1off && second == sec1off)
{
digitalWrite(Relay1, HIGH);
goto level1;
}
}
for (b=0; b<2000; b=millis()-TimerINTERVAL1)
{digitalWrite(Relay1, HIGH);
Serial.print(b);
Serial.print("b=");
TimerINTERVAL = 0;
if(hour == h1off && minute == min1off && second == sec1off)
{
digitalWrite(Relay1, HIGH);
goto level1;
}
}
goto level;
}
Нужен цикл для включения реле например: 8:00 включать на 7 секунд и и повторить включение через 5 минут опять на 7 секунд и повторять это до 19:00.
Я сделал чтоб 8:00 включать на 7 секунд (время только для примера), а дальше цикл не получается.
if(hour == h1on[0] && minute == min1on[0] && second == sec1on[0]) // совпадение времини
{
digitalWrite(Relay1, LOW); // включение релле
lcd.setCursor(0, 1);
lcd.print("relle 1 ON");
TimerINTERVAL = millis();
}
{
if(millis() - TimerINTERVAL > per1on[0]*1000) // если прошел период времени.
{
digitalWrite(Relay1, HIGH); // выключаем релле
lcd.clear();
TimerINTERVAL = 0;
}
}
if(hour == h1off && minute == min1off && second == sec1off)
{
digitalWrite(Relay1, HIGH);
}
Сторінки 1