Essa ideia serve para acionar cargas nos intervalos especificos, e nao apenas no instante momento que foi acionado!
Muitas vezes precisamos saber o intervalo que algo precisa ser acionado ou não acionado ou seja o real estado de funcionamento. Com isso muitos de nós comparamos apenas a hora inicial e a hora final, nunca verificamos o intervalo logo se o equipamento nesse meio tempo ficar desligado e for ligado não terá o estado real de funcionamento!! Isso pode ser resolvido com uma bateria caso falte energia externa.
Na construção de um algoritmo que ao ligar o equipamento ele possa estar corretamente no estado real de acordo com os a hora inicial e hora final. vejamos a conclusão:
vamos simular as seguintes horas reais vinda do RTC (Relogio de tempo real) : 01:00, 05:00, 21:00,
Os intervalo de tempo seguirão o seguinte padrão: <inicial>, <final>
TESTE INTERVALO: 04:00, 10:00
O grande segredo é converter a hora para inteiro retirando os ":"
Define o primeiro conceito quando a hora (inicial < final):
if (inicial < agora < final)
Simulando (400 < 100 < 1000) é falso!
Simulando (400 < 500 < 1000) é verdadeiro!
Simulando (400 < 2100 < 1000) é falso!
Define o segundo conceito quando a hora (inicial > final):
TESTE INTERVALO: 20:00, 03:00
if ((inicial > agora < final) ou (inicial < agora > final))
Simulando ((2000 > 100 < 300) ou (2000 < 100 > 300)) verdadeiro!!
Simulando ((2000 > 500 < 300) ou (2000 < 500 > 300)) falso!!
Simulando ((2000 > 2100 < 300) ou (2000 < 2100 > 300)) verdadeiro!!
Seguindo essa logica da pra definir corretamente o estado real do equipamento, em qualquer instante em que se desejara, essa foi a melhor forma que achei para trabalha com horas, convertendo elas para inteiros comparando se é maior ou menor, em outras programações comparar horas ou datas é muito facil, mas com o arduino tive uma dificuldade, e muitos codigos com deficiencia nessa parte, por isso estou postando essa ideia caso alguem tenha uma melhor e queira compartilhar será bem vindo!! Muito obrigado!!