- DS1307 - clock
- EEPROM 24C32AN - memória
- Bateria de lithium CR2032
Como ele tem uma bateria, as configurações de data e hora serão mantidas mesmo que o módulo seja desligado. Para maiores informações sobre o módulo clique aqui.
Para a este artigo, utilizaremos a biblioteca RTCLib para trabalhar com o módulo que pode ser baixada aqui.
Abaixo uma tabela com a pinagem que deve ser seguida para ligar o módulo ao arduino.
Segue uma foto, ilustrando a ligação.
Segue um código exemplo para testar o módulo.
#include <Wire.h>
#include <RTClib.h>
//RTC - Real Time Clock
RTC_DS1307 RTC;
//Inicializacao dos modulos
void setup () {
//Inicialozacao da serial
Serial.begin(9600);//Inicializacao da serial
Wire.begin();//Inicializacao do protocolo wire
RTC.begin();//Inicializacao do modulo RTC
//Verifica se o modulo esta funcionando ou nao
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
//Ajusta a data/hora do Clock com a data/hora em que o codigo foi compilado, basta descomentar a linha
//RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();//Recuperando a data e hora atual
Serial.print(now.day(), DEC);//Imprimindo o dia
Serial.print('/');
Serial.print(now.month(), DEC);//Recuperando o mes
Serial.print('/');
Serial.print(now.year(), DEC);//Recuperando o ano
Serial.print(' ');
Serial.print(now.hour(), DEC);//Recuperando a hora
Serial.print(':');
Serial.print(now.minute(), DEC);//Reci[erando os minutos
Serial.print(':');
Serial.print(now.second(), DEC);//Recuperando os segundos
Serial.println();
delay(3000);//A leitura sera repetida a cada 3 segundos
}
O código acima deve gerar uma saída similar no console serial conforme abaixo.
Até a próxima.



Pois o meu não sai do canto. O tempo não passa, fica uma hora fixa...
ResponderEliminarFernando , Salve !!!!
ResponderEliminarTenho um kit (arduino uno + rtc) identico ao seu. Implementei seu codigo no meu arduino pra ter uma ideia de funcionamento. Mas ai descobri um pequeno problema: enquanto o arduino esta com alimentacao o timer ta correndo blz, mas qdo eu interrompo a alimentacao, o rtc armazena a data e hora em que parou e quando a alimentacao retorna ao inves do timer estar com a hora atualizada ele simplesmente continua da hora em que foi interrompida a alimentacao.
Tem alguma ideia do que possa ser? Ja verifiquei as pinagens (ok), a bateria tambem, ja troquei ate de arduino (mega2560) e continua no mesmo.
Isso é assim mesmo ?
Olá! Você encontrou a solução para este problema? Eu estou passando pela mesma situação, a hora trava quando o arduino não esta alimentado, já tentei um monte de coisas, mas nada ainda.
Eliminarq peça é essa q vc usou para ligar o jumpers no módulo?
ResponderEliminarEste comentário foi removido pelo autor.
ResponderEliminarCaros, talvez seus problemas se resolvam com este outro código aqui:
ResponderEliminarhttp://www.instructables.com/id/Arduino-Aquaponics-Real-Time-Clock-Part-I/step2/Arduino-Library-and-Sketch/
Parabéns. Código enxuto que funcionou perfeitamente!
ResponderEliminar