Intervalo de funcionamento (hora certa, comparando horas)

Postado 08:13 29/09/2016 por Thiago Condé


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!!


Comentários


Faça o login para enviar uma mensagem