Você está na página 1de 9

TUTORIAL Mdulo RTC com DS1307 e EEPROM

www.huinfinito.com.br
Conceito:
Um RTC - Relgio de Tempo Real (Real Time Clock, em ingls) um relgio geralmente sob a forma de um circuito integrado que mantm o controle do tempo presente.

Aplicao:
A aplicao inicial do RTC visava o controle do tempo em computadores pessoais, servidores e sistemas embarcados, mas atualmente os RTCs esto presentes na quase totalidade dos dispositivos eletrnicos 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 perifricos de baixa velocidade a uma placa me, 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 so: Dados Seriais (Serial Data - SDA) e Clock Serial (Serial Clock - SCL). Este protocolo especifica dois sinais de comunicao, um com o sinal de clock (gerado pelo mestre), e outro de dados, bidirecional.

O endereo padro I2C para comunicao com o Mdulo RTC 0x68.

Mdulo RTC:
O mdulo composto por um chip DS1307, que um relgio de tempo real e uma EEPROM 24C32, que poder ser usada para gravar dados, alm de suportar o protocolo I2C.

Vista de Frente

Vista do Verso

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 1/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br

Este mdulo utiliza uma bateria de clula de ltio (CR2032), onde o relgio / calendrio fornece como informaes: segundos, minutos, horas, dia da semana, dia do ms, ms e ano. No fim do ms a data ajustada automaticamente para meses com menos de 31 dias, incluindo correes para o ano bissexto at 2100. O relgio funciona no formato de 24 horas ou de 12 horas com indicador de AM / PM.

Para o correto funcionamento deste mdulo necessrio que a bateria de 3V esteja inserida no suporte, localizado no verso da placa.

Informaes teis sobre o Mdulo RTC:


Caractersticas do chip DS1307: 56-Bytes, com bateria de apoio, no voltil (NV) de RAM para armazenamento de dados; Interface serial I2C; Tenso: 4,5V ~ 5,5V; Corrente: 1,5mA; Sinal de sada programvel em onda quadrada; Consome menos de 500nA no modo oscilador. Informa: segundos, minuto, horas (formato 12h e 24h), dia da semana, dia do ms, ms e ano.

Caractersticas do chip 24C32: Interface serial I2C; Memria: 4K x 8 bits (32Kbit) Tenso: 4,5V ~ 5,5V; Reteno de dados: 200 anos, desde que no falte alimentao.

Passo a passo para conexo/comunicao entre Mdulo RTC + Arduino + Computador (PC):
O Arduino foi construdo originalmente para se comunicar de forma serial atravs de seus pinos digitais D0 (RX) e D1 (TX), que ao serem conectados a um computador atravs de um cabo USB, permite a transferncia de dados pela chamada interface UART (TTL), mesmo enquanto trabalha em outras tarefas, desde que haja espao disponvel no buffer serial de 64 byte. Assim, no Arduino existe uma parte do hardware especifica para a converso Serial/USB. Disso resulta a criao de uma porta COM (Communication) virtual no computador para a comunicao com o Arduino.

Porm uma biblioteca denominada Wire foi desenvolvida para permitir a comunicao serial atravs do barramento I2C do Arduino.

O Arduino UNO Rev.3 possui pontos de conexo chamados de SDA (Serial Data) e SCL (Serial Clock) nos pinos analgicos A4 e A5 respectivamente e mais dois outros pinos adicionais prximos ao RESET, conforme mostrado na figura a seguir.

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 2/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br

Com essa biblioteca possvel realizar uma comunicao via I2C, com velocidades de at 9.600 bps. Ento os passos abaixo devero ser seguidos exatamente na mesma sequncia que forem apresentados, pois caso contrrio correr o risco de no 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 verso j possua essa biblioteca esse passo pode ser ignorado. A partir das IDEs (Interface de Desenvolvimento Integrada) com verso 1.0, essa biblioteca herda as funes de fluxo, tornando-o compatvel com outras bibliotecas de leitura / gravao. Devido a isso, os comandos send() e receive() forma substitudos por read() e write(), respectivamente;

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 3/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br

2.

Baixar o programa (cdigo) 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; Conectar o Mdulo RTC ao Arduino ligando-se o pino SCL do mdulo na porta analgica A5, o pino SDA na porta analgica A4, o pino positivo (VCC) no 5V e o pino negativo (GND) no GND.

3.

4.

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

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 4/9

TUTORIAL Mdulo 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 opo 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 ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 5/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br
7. No menu da IDE selecione a opo 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 opo Abrir (Open) no menu Arquivo (Files);

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 6/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br
9. Ser aberta uma janela, onde voc dever navegar at o local onde RTC_DS1307_EEPROM.ino. Ao encontra-lo selecione-o e pressione o boto Abrir; baixou o arquivo

10. Aps abrir o programa RTC_DS1307_EEPROM.ino deve-se carrega-lo no Arduino, pressionando o boto Carregar (Upload) logo abaixo da barra de menu. Aguarde at uma mensagem de concludo (Done) ser exibida na IDE. Aconselhamos a fazer uma leitura dos comentrios inseridos em cada linha do programa, pois isso facilitar o seu entendimento de como o programa funciona.

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 7/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br

11. Para testar a comunicao dos dados entre o Arduino, o Mdulo e o PC, abra a tela Serial Monitor da IDE do Arduino para verificar o seguinte resultado:

12. Por fim para que seu Mdulo RTC continue contando o tempo a partir dos dados de hora e data inicialmente gravados necessrio abrir o programa RTC_DS1307_EEPROM.ino novamente e inserir um comentrio // (barras duplas) na linha de comando responsvel por realizar a chamada da funo configuraModulo(), que est localizada no setup() do programa, pois essa funo deve ser executada uma nica vez na inicializao do mdulo, j que aps voc definir os dados inicias no mdulo, 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 no seja realizado esse passo toda vez que voc abrir o Serial Monitor a leitura do seu Mdulo RTC voltar a contar o tempo a partir dos dados iniciais.

HU INFINITO COMPONENTES ELETRNICOS Detalhes: Loja Virtual inscrita no CNPJ sob o n.14.855.232/0001-36 - TELEFONE: +55 61 9962-7070 8/9

TUTORIAL Mdulo RTC com DS1307 e EEPROM


www.huinfinito.com.br

13. Aps comentar a linha de programa confiraModulo() deve-se carrega-lo no Arduino novamente, pressionando o boto Carregar (Upload) logo abaixo da barra de menu. Aguarde at uma mensagem de concludo (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 estaro 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 reinicializao dos dados no Mdulo RTC o comentrio na linha de programa confiraModulo() deve ser removido e o programa carregado mais uma vez no seu Arduino. Perceba pela figura a seguir, que aps realizarmos o passo anterior e abrir o Serial Monitor da IDE do Arduino os dados da hora e data do Mdulo RTC sempre ficaro atualizados.

Links teis sobre o Mdulo RTC:


Biblioteca RTClib

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