Olá Giova014,
Desculpe a demora em te dar um retorno. Estive meio sem tempo pro Arduino...
Bem, vamos lá:
Antes de tentar usar a biblioteca que você sugeriu, decidi testar o módulo RTC DS3231 com a mesma biblioteca que eu já vinha usando, mas em uma placa Arduino Mega. Só para ver se o problema era alguma incompatibilidade com o Arduino Uno. Como resultado deste teste, o mesmo problema persistiu, isso é, o código ainda bloqueia o Loop(), assim os dados de data e hora não apareceram no Monitor Serial.
Sendo assim, parti para testar a biblioteca que você me sugeriu ( GitHub - JChristensen/DS3232RTC: Arduino Library for Maxim Integrated DS3232 and DS3231 Real-Time Clocks ).
Essa biblioteca possui dois exemplos mais básicos. Um para ajustar os dados de data e hora do RTC (exemplo SetSerial) e outro exemplo para exibir os dados do RTC (exemplo TimeRTC).
A princípio executei a verificação do exemplo SetSerial. Não apresentou erros. Então carreguei no Arduino. O exemplo SetSerial faz o ajuste dos dados de data e hora no RTC quando enviamos os dados que queremos via Monitor Serial. O ajuste funcionou corretamente. Como pode ser visto na foto do Monitor Serial em anexo dessa mensagem.
Até então tudo certo.
Porém veja só... Pensei que ao reiniciar o Monitor Serial, ou depois de desconectar o Arduino do USB do computador e religá-lo novamente, o módulo RTC deveria ter armazenado os dados de data e hora que eu havia configurado por meio do exemplo SetRTC. Porém quando reinicio o Arduino ou o Serial Monitor, os dados mostrados no Monitor Serial são reajustados para os dados anteriores.
Bem, você saberia o quê eu posso fazer para que os dados de data e hora, quando forem ajustados no módulo RTC, sejam exibidos no Monitor Serial quando eu desplugo e replugo o Arduino no computador, ou quando eu reiniciar o Monitor Serial.
Deu pra entender ?
Para eu entender melhor o funcionamento do RTC e da biblioteca, elaborei o código abaixo. Dê uma olhada se está ok. Tentei fazer o mais simples possível para ajustar os dados de data e hora e exibir no Monitor Serial. Esse código funciona bem, mas o mesmo problema continua, isto é, quando o Monitor Serial é reiniciado, os dados de data e hora exibidos no Monitor Serial são zerados para 1970.
#include <DS3232RTC.h> // Inclui a biblioteca do RTC DS3232 ou DS3231
#include <Time.h> // Inclui a biblioteca Time
#include <TimeLib.h>
void setup() {
Serial.begin (9600); // Inicia o Monitor Serial e define a frequencia dos dados em 9600 Hz
//Depois de ajustado os dados do RTC as duas linhas abaixos devem ser comentadas
setTime(23, 31, 30, 13, 2, 2009); //Ajusta os dados de data e hora do sistema para 23h31m30s on 13Feb2009
RTC.set(now()); // Ajusta o RTC para a hora e data do sistema
}
void loop() {
// Exibe os dados de data e hora no Monitor Serial
Serial.print(hour());
Serial.print(":");
Serial.print(minute());
Serial.print(":");
Serial.print(second());
Serial.print(' ');
Serial.print(day());
Serial.print(' ');
Serial.print(month());
Serial.print(' ');
Serial.print(year());
Serial.println();
// Reexibe os dados de data e hora no Monitor Serial a cada 1000 mS
delay (1000);
}
Mais uma vez obrigado e agradeço se eu puder continuar contando com sua ajuda.