Bom Dia pessoal Tudo bom!!
Estou com um problema com um projeto da faculdade.A programação geral do projeto esta pronta mas não consigo retornar hora e minuto real, para a partir dai usar um if/else para acionar ou não os outros componentes.
Preciso de uma função que me retorne em 2 variáveis hora e minuto os atuais. Se precisar eu compro o RTC mas como e para demostrar para o professor o arduino estara ligado no pc!!
Alguem poderia me ajudar?
Agradeço desde já a todos
bubulindo:
E o que já fizeste?
#include <Wire.h>
#include <RTClib.h>
RTC_Millis rtc;
int minutoAgora;
int horaAgora;
void setup() {
Serial.begin(57600);
rtc.begin(DateTime(DATE,TIME));
delay(1000);
}
void loop () {
DateTime now = rtc.now();
horaAgora = now.hour();
minutoAgora = now.minute();
Serial.print(horaAgora);
Serial.print(':');
Serial.print(minutoAgora);
Serial.println();
delay(3000);
}
FUNCIONO acabei de conseguir, obrigado pelo post
Nota que essa implementação tem alguns problemas:
-
Não sei qual é a precisão do millis(). A mim parece-me que para manter tempo com um acerto regular da hora o millis() serve, mas para manter a hora certa durante mais de uma semana (por exemplo) não deve resultar muito bem.
-
Esse código sincroniza com a hora de compilação. Precisarias duma ligação de rede ou então implementar algo no PC para enviar a hora para o Arduino sincronizar.
-
Essa hipótese não lida bem com falha de alimentação. Se cortares a alimentação, o arduino reinicia na hora de compilação. Isto poderá não ser critico se implementares uma função para acertar a hora.
-
Essa hipótese não lida bem com o processador em modo de limitação de energia (sleep modes).
No entanto, arranjando como sincronizar a hora isso deve funcionar bem.