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.

Exibições: 4974

Anexos

Responder esta

Respostas a este tópico

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.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço