Go Down

Topic: Dificuldade com RTC DS3231 (Read 1 time) previous topic - next topic

Ricajero

#15
Feb 25, 2017, 02:48 pm Last Edit: Feb 25, 2017, 07:22 pm by Ricajero
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 ( https://github.com/JChristensen/DS3232RTC ).

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.

Code: [Select]
#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.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy