Você está na página 1de 9

TUTORIAL

Módulo RTC com


DS1307 e EEPROM
www.huinfinito.com.br

Conceito:
Um RTC - Relógio de Tempo Real (Real Time Clock, em inglês) é um relógio geralmente sob a forma de um circuito
integrado que mantém o controle do tempo presente.

Aplicação:
A aplicação inicial do RTC visava o controle do tempo em computadores pessoais, servidores e sistemas embarcados,
mas atualmente os RTCs estão presentes na quase totalidade dos dispositivos eletrônicos que precisam manter um
controle preciso do tempo.

Protocolo:
I2C (Inter-Integrated Circuit) é um barramento serial multi-mestre desenvolvido pela Philips que é usado para
conectar periféricos de baixa velocidade a uma placa mãe, a um sistema embarcado ou a um telefone celular. O nome
significa Circuito Inter-integrado e é pronunciado I-dois-C.

O protocolo I2C utiliza apenas duas linhas bidirecionais de dreno aberto, que são: Dados Seriais (Serial Data - SDA) e
Clock Serial (Serial Clock - SCL). Este protocolo especifica dois sinais de comunicação, um com o sinal de clock
(gerado pelo mestre), e outro de dados, bidirecional.

O endereço padrão I2C para comunicação com o Módulo RTC é 0x68.

Módulo RTC:
O módulo é composto por um chip DS1307, que é um relógio de tempo real e uma EEPROM 24C32, que poderá ser
usada para gravar dados, além de suportar o protocolo I2C.

Vista de Frente Vista do Verso

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
1/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

Este módulo utiliza uma bateria de célula de lítio (CR2032), onde o relógio / calendário fornece como informações:
segundos, minutos, horas, dia da semana, dia do mês, mês e ano. No fim do mês a data é ajustada automaticamente
para meses com menos de 31 dias, incluindo correções para o ano bissexto até 2100. O relógio funciona no formato
de 24 horas ou de 12 horas com indicador de AM / PM.

Para o correto funcionamento deste módulo é necessário que a bateria de 3V esteja inserida no suporte, localizado no
verso da placa.

Informações úteis sobre o Módulo RTC:

Características do chip DS1307:


 56-Bytes, com bateria de apoio, não volátil (NV) de RAM para armazenamento de dados;
 Interface serial I2C;
 Tensão: 4,5V ~ 5,5V;
 Corrente: 1,5mA;
 Sinal de saída programável em onda quadrada;
 Consome menos de 500nA no modo oscilador.
 Informa: segundos, minuto, horas (formato 12h e 24h), dia da semana, dia do mês, mês e ano.

Características do chip 24C32:


 Interface serial I2C;
 Memória: 4K x 8 bits (32Kbit)
 Tensão: 4,5V ~ 5,5V;
 Retenção de dados: 200 anos, desde que não falte alimentação.

Passo a passo para conexão/comunicação entre Módulo RTC + Arduino + Computador


(PC):
O Arduino foi construído originalmente para se comunicar de forma serial através de seus pinos digitais D0 (RX) e D1
(TX), que ao serem conectados a um computador através de um cabo USB, permite a transferência de dados pela
chamada interface UART (TTL), mesmo enquanto trabalha em outras tarefas, desde que haja espaço disponível no
buffer serial de 64 byte. Assim, no Arduino existe uma parte do hardware especifica para a conversão Serial/USB.
Disso resulta a criação de uma porta COM (Communication) virtual no computador para a comunicação com o
Arduino.

Porém uma biblioteca denominada Wire foi desenvolvida para permitir a comunicação serial através do barramento
I2C do Arduino.

O Arduino UNO Rev.3 possui pontos de conexão chamados de SDA (Serial Data) e SCL (Serial Clock) nos pinos
analógicos A4 e A5 respectivamente e mais dois outros pinos adicionais próximos ao RESET, conforme mostrado na
figura a seguir.

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
2/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

Com essa biblioteca é possível realizar uma comunicação via I2C, com velocidades de até 9.600 bps. Então os passos
abaixo deverão ser seguidos exatamente na mesma sequência que forem apresentados, pois caso contrário correrá o
risco de não funcionar:

1. Baixar a biblioteca Wire da internet (http://arduino.cc/en/Reference/Libraries) e descompactá-la na pasta


libraries do Arduino. Caso a sua versão já possua essa biblioteca esse passo pode ser ignorado. A partir das
IDEs (Interface de Desenvolvimento Integrada) com versão 1.0, essa biblioteca herda as funções de fluxo,
tornando-o compatível com outras bibliotecas de leitura / gravação. Devido a isso, os comandos send() e
receive() forma substituídos por read() e write(), respectivamente;

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
3/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

2. Baixar o programa (código) de exemplo chamado RTC_DS1307_EEPROM na aba DOWNLOAD do link


http://www.huinfinito.com.br/modulos/830-modulo-rtc-com-ds1307-e-eeprom-24c32.html;

3. Conectar o Módulo RTC ao Arduino ligando-se o pino SCL do módulo na porta analógica A5, o pino SDA na
porta analógica A4, o pino positivo (VCC) no 5V e o pino negativo (GND) no GND.

4. Plugar o cabo USB no Arduino e conectar no seu computador;

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
4/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

5. Abrir a IDE (Interface de Desenvolvimento Integrada) do Arduino clicando no aplicativo “arduino.exe”;

6. No menu da IDE selecione a opção “Ferramentas (Tools)”, “Placa (Board)” e escolha o tipo de Arduino que
você está utilizando. No caso desse exemplo estamos utilizando o Arduino UNO;

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
5/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

7. No menu da IDE selecione a opção “Ferramentas (Tools)”, “Porta Serial (Serial Port)” e defina qual porta
COM (Communication) o Arduino está utilizando. No caso desse exemplo foi definida a COM41;

8. Para abrir o programa RTC_DS1307_EEPROM na IDE do Arduino, deve-se selecionar a opção “Abrir (Open)”
no menu “Arquivo (Files)”;

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
6/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

9. Será aberta uma janela, onde você deverá navegar até o local onde baixou o arquivo
RTC_DS1307_EEPROM.ino. Ao encontra-lo selecione-o e pressione o botão “Abrir”;

10. Após abrir o programa RTC_DS1307_EEPROM.ino deve-se carrega-lo no Arduino, pressionando o botão
“Carregar (Upload)” logo abaixo da barra de menu. Aguarde até uma mensagem de concluído (Done) ser
exibida na IDE. Aconselhamos a fazer uma leitura dos comentários inseridos em cada linha do programa, pois
isso facilitará o seu entendimento de como o programa funciona.

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
7/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

11. Para testar a comunicação dos dados entre o Arduino, o Módulo e o PC, abra a tela Serial Monitor da IDE do
Arduino para verificar o seguinte resultado:

12. Por fim para que seu Módulo RTC continue contando o tempo a partir dos dados de hora e data inicialmente
gravados é necessário abrir o programa RTC_DS1307_EEPROM.ino novamente e inserir um comentário “//”
(barras duplas) na linha de comando responsável por realizar a chamada da função “configuraModulo()”, que
está localizada no “setup()” do programa, pois essa função deve ser executada uma única vez na inicialização
do módulo, já que após você definir os dados inicias no módulo, isso fará como que ele comece a contar o
tempo e nunca mais pare de contar enquanto tiver energia, seja ela fornecida pela fonte principal ou pela
bateria auxiliar de 3V. Agora, caso não seja realizado esse passo toda vez que você abrir o Serial Monitor a
leitura do seu Módulo RTC voltará a contar o tempo a partir dos dados iniciais.

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
8/9
TUTORIAL
Módulo RTC com
DS1307 e EEPROM
www.huinfinito.com.br

13. Após comentar a linha de programa “confiraModulo()” deve-se carrega-lo no Arduino novamente,
pressionando o botão “Carregar (Upload)” logo abaixo da barra de menu. Aguarde até uma mensagem de
concluído (Done) ser exibida na IDE. Dessa forma a cada vez que você abrir o Serial Monitor da IDE do
Arduino os dados de hora e data estarão atualizados, e o ponto de partida para contagem do tempo ficará
sempre travado com aqueles dados iniciais por você gravado no primeiro momento. Agora caso queira fazer
uma nova reinicialização dos dados no Módulo RTC o comentário na linha de programa “confiraModulo()”
deve ser removido e o programa carregado mais uma vez no seu Arduino.

Perceba pela figura a seguir, que após realizarmos o passo anterior e abrir o Serial Monitor da IDE do Arduino
os dados da hora e data do Módulo RTC sempre ficarão atualizados.

Links úteis sobre o Módulo RTC:

 Biblioteca RTClib

HU INFINITO COMPONENTES ELETRÔNICOS


Detalhes: Loja Virtual inscrita no CNPJ sob o nº.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070
9/9

Você também pode gostar