ATUALIZANDO O RELÓGIO BINÁRIO

 

No ano de 2006 eu publiquei um relógio com mostrador "binário" (na verdade um BCD) na revista Eletrônica Total nr 115 (edição bimensal de Maio/Junho). Muitos leitores montaram esse pequeno relógio e o mesmo funciona desde então em minha sala. Porém uma coisa que sempre me incomodou (um pouco) era que sempre que a energia elétrica "piscava" o relógio precisava ser acertado. Muitas vezes eu o deixei desligado por esse motivo. Na época me ocorreu colocar um RTC no mesmo, mas haviam as limitações "editoriais" e outras que me impediram de fazê-lo.

Bom o relógio ficou abandonado por algum tempo, até que num final de semana eu resolvi colocá-lo na bancada para resolver esse pequeno problema. A primeira opção seria utilizar um módulo RTC pronto, facilmente encontrado no mercado hoje em dia. Mas dai eu precisaria comprá-lo e esperar chegar, eu queria resolver o problema rápido e utilizando o que eu tinha em mãos. Buscando no gaveteiro de componentes encontrei um DS1302 e resolvi construir meu próprio "módulo RTC". Depois foi só alterar o programa e "problema resolvido"!


Obs.: Caso você não conheça o projeto original, clique aqui!


O CIRCUITO PARA A ATUALIZAÇÃO PROPOSTA

Na figura acima é possível ver o circuito do módulo que eu estou utilizando no meu relógio binário. Ele tem poucos componentes (como a maioria dos módulos presentes no mercado). A ideia é facilitar a sua aplicação de forma direta em basicamente qualquer circuito microcontrolado, certo?! CI1 é o componente principal, um DS1302 da Dallas Semiconductor. Trata-se de um relógio de tempo real com as seguintes características:

  • Relógio em tempo real com segundos, minutos, horas, dia do mês, mês, dia da semana e ano com compensação do ano válido até 2100;
  • 31 x 8 RAM para armazenamento de dados;
  • E/S do tipo serial com uso mínimo de pinos;
  • Tensão de operação entre 2.0–5.5V;
  • Corrente menor a 300nA a 2.0V;
  • Operação em single-byte ou modo burst para transferência de dados (leitura ou gravação) na RAM;
  • 8 pinos DIP ou SOICs;
  • Interface simples tipo 3 wire;
  • TTL - compatível (VCC = 5V);
  • Faixa de temperatura entre –40 ° C a +85 °;
  • Ci compatível com DS1202;
  • entre outras.
Clique aqui para fazer o download do datasheet deste componente, onde poderá ver mais informações a respeito do mesmo.

X1 é um cristal de 32.768kHz necessário para o clock do CI (é através do mesmo que o CI controla seu relógio interno). C1 é o capacitor de desacoplamento e B1 a bateria de backup que manterá o CI em funcionamento caso a tensão presente em VCC2 seja retirada (queda de energia, desligamento acidental ou proposital do circuito, etc).

Olhando para o circuito você poderá perceber que o mesmo é muito simples, como a maioria dos módulos presentes no mercado "single chip". Para fazer seu próprio módulo, é necessário compreender bem o funcionamento dos componentes presentes na placa, certo? O datasheet do componente traz muitas informações a respeito, e portanto precisa ser estudado. Sendo assim, não tem nenhuma "mágica" que vai lhe trazer os conhecimentos necessário. É preciso estudar! Apenas isso!


MONTAGEM



A figura acima mostra minha sugestão para o layout de circuito impresso (foi a que usei). A placa ficou bem pequena e fácil de instalar em qualquer ponto, principalmente dentro do relógio binário (objeto principal deste artigo).

A montagem deve ser feita tomando cuidado ao soldar o CI na placa ou mesmo o seu suporte (eu preferi assim). O suporte da bateria também é "polarizado" e merece atenção na sua montagem. C1 é do tipo cerâmico (não polarizado) e mais tranquilo de ser montado. Para J1 eu optei por soldar fios para facilitar a conexão com a placa do relógio binário.


ADAPTAÇÃO NO RELÓGIO



A adaptação é relativamente simples, pois requer apenas que os fios do módulo sejam soldados a placa do relógio binário diretamente abaixo do PIC16F628 (agora um PIC16F628A). A figura acima mostra os detalhes dessa conexão e abaixo listo estes pontos:

Módulo (JP1)
pino no PIC
1 (VCC)
14
2 (GND)
5
3 (SCK)
11 (RB5)
4 (DT)
16 (RA7)
5 (RST)
15 (RA6)


Após a adaptação bastou alterar o programa de controle para que o relógio pudesse, ao ser acertado gravar o novo horário na RAM do CI DS1302 e quando fosse ligado (ou religado em caso de queda de energia ou outra) pudesse "ler" da mesma RAM o horário atualizado!


O PROGRAMA

Para alterar o programa eu precisaria ter em mãos o compilador CCS C PCM v3.15 utilizado na versão 1.0 (original de 2006). O problema é que eu não tenho mais esse compilador. Então criei um novo projeto utilizando o compilador XC8 2.45 com MPLABX 6.0 Microchip. É o que eu tinha em mãos, lembra?!?!

Eu não pretendo ficar aqui detalhando o programa, até porque não é esse o objetivo do artigo. Mais abaixo em DOWNLOADS eu deixei o novo pacote e se você tiver interesse poderá fazer o download do mesmo para estudá-lo (o fonte). O programa é basicamente o mesmo se comparado a versão original e servirá como exemplo caso você tenha outros programas em CCS C e queira migrar para o XC8 Microchip.


SUGESTÃO PARA CAIXA




A primeira caixa que eu fiz para meu pequeno relógio foi preparada com madeira e um pedaço de "prancheta de acrílico vermelha". Porém, após a atualização eu achei que o relógio merecia uma nova caixa. E nos tempos "modernos" nada melhor que utilizar uma impressora 3D para preparar uma caixa! E foi o que eu fiz! Após desenhar a caixa, foi só imprimir a mesma! As figuras acima mostram o resultado!

Obs.: Arquivos disponíveis para download no meu perfil do Thingiverse!


CONCLUSÃO

Nesse pequeno artigo você não viu apenas como atualizar o relógio binário como também viu que é possível preparar seu próprio módulo em casa, como o que se tem em mãos! Acho essa parte a mais importante, já que o mundo dos microcontroladores foi invadido por "módulos" que simplesmente resolvem quase tudo. O único problema é que uma grande maioria sequer sabe como os mesmos funcionam e se limitam a meros "usuários" destes. A eletrônica vai bem além disso e estudar um componente presente num módulo pode representar a diferença no sucesso da aplicação do mesmo em microcontroladores onde uma "biblioteca mágica" não existe! Sorte e sucesso em suas montagens e estudos!!!



DOWNLOADS:


- Circuito do módulo DS1302
- Layout de circuito impresso não invertido ( veja aqui como usar esse método)
- Layout de circuito impresso invertido (conheça esse método aqui)
- Pacote com arquivos fonte + hex para gravação



Este projeto foi publicado, com minha autorização, originalmente na revista Eletrônica Total nr 115 de Maio/Junho de 2006 .

Especificações:

- Microcontrolador - PIC16F628A (versão atualizada!)
- Mostrador - tipo BCD com LEDs
- Alimentação - rede AC 110V/220V (com transformador!)
- RTC - DS1302 (versão atualizada!!!)
- Programa - Linguagem C (compilador XC8 Microchip)

 



Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.