O móduto RTC
DS1307, um relógio de tempo real, é um componente muito útil para montar algum
tipo de relógio com o Arduino, setar alarmes e assim executar ações em horários
predeterminados. Neste post vamos apresentar um tutorial de como conectar este
módulo com o Arduino Uno, mostrando as informações de data e hora no Serial
Monitor da IDE Arduino. Lembrando que este modulo também é compatível com
outros microcontroladores.
Esse módulo
tem 56 bytes de memória não-volátil disponível para uso, é capaz de armazenar e
fornecer informações completas de data como dia da semana, dia do mês, mês, ano
e além é claro, das funções de horas, minutos e segundos, nos formatos de 12 ou
24 horas. Meses com menos de 31 dias e anos bissextos são ajustados
automaticamente.
Uma bateria de lítio
garante que os dados sejam preservados mesmo sem alimentação externa, e é
acionada automaticamente em caso de falta de energia no módulo.
Uma outra característica desse módulo é que
você pode utilizar um sensor de temperatura DS18B20 (não
incluso), e ler as informações do sensor a partir do pino DS do módulo, o que
faz com que seja possível montar um relógio completo com data, hora, dia da
semana e temperatura, sem a necessidade de outros componentes.
Programa
Conectando o Módulo RTC DS1307 ao Arduino
Neste post vamos mostrar um breve tutorial de como ligar esse módulo RTC DS1307 ao Arduino e exibir todas essas informações no serial monitor.
Olhando o módulo pela parte inferior, podemos ver na parte esquerda os pinos GND, Vcc, SDA e SCL, utilizados para cascatear dispositivos I2C, e também o pino DS, que fornece os dados do sensor de temperatura, se o mesmo estiver instalado. No lado direito, vamos utilizar apenas os pinos SCL, SDA, Vcc e GND para ligação ao Arduino.
Conecte o módulo RTC DS1307 ao Arduino, tomando cuidado para não inverter as ligações, pois como vimos acima existem pinos com o mesmo nome dos dois lados do módulo :
Você precisara baixar a biblioteca RTC DS1307 antes de carregar o seu programa, baixe ela clicando aqui, descompacte o arquivo e copie o conteúdo para a pasta LIBRARIES da IDE do seu Arduino.
No programa, a parte do código que contém os comandos
rtc.setDOW(MONDAY);
rtc.setTime(16, 30, 47);
rtc.setDate(5, 6, 2014);
rtc.setTime(16, 30, 47);
rtc.setDate(5, 6, 2014);
só deve ser utilizada para setar a hora e data do RTC DS1307. Depois disso, essas linhas podem ser comentadas ou excluídas e o programa deve ser novamente carregado no Arduino.
//Carrega a biblioteca do RTC DS1307
#include <DS1307.h>
//Modulo RTC DS1307 ligado as portas A4 e A5 do Arduino
DS1307 rtc(A4, A5);
void
setup()
{
//Aciona o relogio
rtc.halt(
false
);
//As linhas abaixo setam a data e hora do modulo
//e podem ser comentada apos a primeira utilizacao
rtc.setDOW(FRIDAY);
//Define o dia da semana
rtc.setTime(20, 37, 0);
//Define o horario
rtc.setDate(6, 6, 2014);
//Define o dia, mes e ano
//Definicoes do pino SQW/Out
rtc.setSQWRate(SQW_RATE_1);
rtc.enableSQW(
true
);
Serial.begin(9600);
}
void
loop()
{
//Mostra as informações no Serial Monitor
Serial.print(
"Hora : "
);
Serial.print(rtc.getTimeStr());
Serial.print(
" "
);
Serial.print(
"Data : "
);
Serial.print(rtc.getDateStr(FORMAT_SHORT));
Serial.print(
" "
);
Serial.println(rtc.getDOWStr(FORMAT_SHORT));
//Aguarda 1 segundo e repete o processo
delay (1000);
}
Execute o programa, abra o Serial Monitor e você terá as informações do RTC DS1307 dessa maneira :
Essa biblioteca pode mostrar as informações da data em formato completo bastando retirar as infomrações de FORMAT_SHORT (formato reduzido) do programa.
Observação: Este Post é recomendado para os participantes do Hackathon da UNIMED.
Fonte:
blog.filipeflop.com
Nenhum comentário:
Postar um comentário