Boa tarde
Comprei um módulo RTC DS1307 e quebrei bastante a cabeça para configurar a hora no mesmo, mas acabei de descobrir uma forma simples sincronizando com o PC. Tem bastante tutoriais na net, mas ninguém falou o obvio
abaixo está um código muito comentado e genial que faz a sincronização:
//código relógio rtc simplificado testado
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
char hora[30];
void setup () {
Serial.begin(9600);
#ifdef AVR
Wire.begin();
#else
Wire1.begin(); // I2C
#endif
rtc.begin();// aciona a função RTC
if (! rtc.isrunning()) {// se a função RTC não foi acionada
Serial.println("RTC não esta funcionando"); //
rtc.adjust(DateTime(__DATE__, __TIME__)); //caso rtc não esta funcionando ajusta a hora sincronizando com o PC
}
}
void loop () {
DateTime now = rtc.now();
sprintf( hora, "%02d:%02d:%02d", now.hour(), now.minute(), now.second() );
Serial.println(hora);
delay(1000);
}
O pulo do gato, foi que é preciso retirar a pilha do RTC para que ele pare de rodar, ai é só colocar de voltar ligar a placa rodar o código ver se no monitor serial se esta imprimindo a hora certinho e ser feliz.
Seu RTC estará com a hora configurada, basta gravar outro código, ou comentar a linha que sincroniza como no exemplo abaixo, para que ele não fique Sincronizando.
ex:
//if (! rtc.isrunning()) {
//Serial.println("RTC is NOT running!"); // se o RTC não esta rodando
//rtc.adjust(DateTime(__DATE__, __TIME__)); // ajusta a hora sincronizando com o PC
Caso apareça no monitor serial 00:00:00 quando imprimir a hora, significa que ele travou, ai é necessario retirar a pilha, pois para o código o RTC esta funcionando.
No meu caso não possuo LCD, por isso precisava de uma solução via código e não havia encontrado uma dica mais simples.
Tags:
Infelizmente, apesar de ser divulgado como simples, o Arduino não é tão simples assim, ele só é mais fácil de trabalhar que os microcontroladores PIC, por causa de sua forma de gravar o código, e por já vim relativamente pronto para o uso.
Para trabalhar com Arduíno é necessario conhecimento em eletrônica e programação em linguagem C, dependendo do seu nível atual, isso pode ser rápido ou demorar um tempo, mas depois que pega um pouco o jeito, vai ficando simples.
Mas continue insistindo, depois que você entende a vida muda, sempre fico fascinado com as coisas que é possível fazer com Arduíno, a criatividade é o limite.
vlw obrigado.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por