Интервал времени

Frost56rus
Offline
Зарегистрирован: 14.08.2020

Ребят, помогите переделать мой говнокод. 

Была задача включать и выключать реле в определенное время, а теперь надо чтобы реле было включено например с 19.00 до 23:00 при условии что кнопка на pin 2 низкого уровня. Я не программировал уже года 4 и позабывал много чего, особенно условия.

 

Сейчас так:

   if(myRTC.hours == 7) //Если сейчас 7 утра
    {
      digitalWrite(PIN_RELAY, HIGH); //включить свет
    }
    if(myRTC.hours == 10) //Если сейчас 10 утра
    {
      digitalWrite(PIN_RELAY, LOW); //выключить свет
    }
    if(myRTC.hours == 17) //Если сейчас 17 вечера
    {
      digitalWrite(PIN_RELAY, HIGH); //включить свет
    }
    if(myRTC.hours == 23) //Если сейчас 23 вечера
    {
      digitalWrite(PIN_RELAY, LOW); //выключить свет

 

Frost56rus
Offline
Зарегистрирован: 14.08.2020

В PHP я бы сделал примерно так 
if (myRTC.hours >= 19 && <= 23) {
действие

}

Frost56rus
Offline
Зарегистрирован: 14.08.2020
 if(sensorVal == 0){ //если кнопка нажата
    if(myRTC.hours >= 19 && <= 23){ //лень писать коммент тут и так понятно
    {
      digitalWrite(PIN_RELAY, HIGH); //включить свет
    }
      else{
      
      digitalWrite(PIN_RELAY, LOW); //выключить свет
      }
  }

 

Сделал как в PHP, хз, прокатит или нет

MaksVV
Offline
Зарегистрирован: 06.08.2015

есть один способ убедиться в этом

Frost56rus
Offline
Зарегистрирован: 14.08.2020

Да как всегда, блин, либо заработает, либо нет

b707
Offline
Зарегистрирован: 26.05.2017

Frost56rus пишет:
Сделал как в PHP, хз, прокатит или нет

ставлю на то, что даже не скомпилится

Frost56rus
Offline
Зарегистрирован: 14.08.2020

Ставки сделаны, ставок больше нет. 

Frost56rus
Offline
Зарегистрирован: 14.08.2020

я проиграл 

 

b707
Offline
Зарегистрирован: 26.05.2017

подсказываю - второе условие запишите полностью. Остальное вроде верно

Frost56rus
Offline
Зарегистрирован: 14.08.2020

Типа elseif (myRTC.hours <= 23) ?

Frost56rus
Offline
Зарегистрирован: 14.08.2020

Спасибо большое, не думал что нельзя все в одном условии писать

AndreyD
AndreyD аватар
Offline
Зарегистрирован: 07.10.2018

Else в #7 две ошибки в выделенной строке.

Frost56rus
Offline
Зарегистрирован: 14.08.2020

вторая ошибка это мой косяк, удалил переменную старую, а значение не удалил, но поправил

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

птваюмать

if((myRTC.hours >= 19) && (myRTC.Hours<= 23)) ...

Frost56rus
Offline
Зарегистрирован: 14.08.2020

оооо, спасибо огромное