FAÇA UM MODESTO RELÓGIO C/CALENDÁRIO – COM PIC 16F628A , DS1307 E LCD (REF167)

1

Muitos iniciantes na programação de microcontroladores ficam tentados a construir um relógio. Que tal uma versão simples e confiável?

Usando as facilidades do DS1307 fica fácil montar um simples relógio com calendário. Veja o esquema abaixo:

Mas o que é o circuito integrado DS1307?
Trata-se de um RTC (real-time clock) ou seja, um circuito integrado de 8 pinos com todas as facilidades para se obter, de forma precisa, as horas, minutos, segundos, além do dia da semana (domingo a sábado) e o calendário com dia, mês e ano, com todas as correções que um calendário tem que ter (ex. ano bissexto, com mês de fevereiro com 29 dias).
A comunicação com o microcontrolador é por meio do protocolo I2c usando apenas 2 fios e o gnd. Internamente ele dispõem de 8 registradores acessíveis, que armazenam segundos, minutos, horas, dia, data, mês e ano, bem como um registrador de controle para algumas funcionalidades extras (gerar clock externo programável em 4 escala no pino SQW/OUT).
O usuário poderá também dispor de 56 bytes de ram para uso geral, acessíveis pelo barramento I2C. A exatidão da frequência é garantida por um pequeno cristal de 32768 hz, de baixo custo, facilmente encontrado no comércio de componentes eletrônicos. Para que os dados não se percam por falta de energia na alimentação, deverá ser instalado uma pequena bateria de 3 volts. Se esta for de lithium (48mA) terá duração de aproximadamente 10 anos de uso em uma temperatura média de +25C°.
Quanto ao programa em ‘C’, o que ele faz é buscar as informações internas dos 8 registradores e apresentar no LCD nas posições determinadas pelas linhas de código.
Note que não foi usado nenhuma biblioteca externa, mas o código foi criado tanto para o LCD como para o I2C. Creio que isto facilita o aprendizado, por podermos acompanhar o processo de cada etapa, na mesma ‘pagina’ de visualização.

Para ajustar inicialmente o relógio e calendário, deveremos apertar o botão ‘ADJ’. Logo ao pressionar, começará a piscar o relógio. Apertando botão ‘SEG’ irá incrementar os dígitos de segundos e o mesmo ocorrerá com os botões ‘MIN’ e ‘HORA’. Um novo aperto no botão ‘ADJ’ irá fazer piscar o dia da semana (domingo a sábado). Apertando ‘SEG’ ou ‘MIN’ ou ‘HORA’ irá trocar sequencialmente o dia da semana. Um outro aperto em ‘ADJ’ fará piscar o calendário que será alterado com os botões de ‘SEG’ para dia, ‘MIN’ para mês e ‘HORA’ para ano. Mais um aperto em ‘ADJ’ sairá do modo de ajuste do relógio, parando de piscar qualquer dígito. O Lcd usado foi um 16×2 da TECH 1602B , mas poderá ser usado qualquer um disponível que faça uso do controlador interno HD44780 ou similar.
A fonte de alimentação poderá ser fornecida por 4 pilhas AA com um diodo 1N4007 em série, ou um adaptador de parede com saídas diretas em 5 volts (carregadores de celulares) ou mesmo usar uma fonte convencional com transformador de 110/220v para 9 volts, com retificadores, capacitores de filtro e um regulador de tensão 7805.
Obs. Esta montagem é apenas didática, sendo realizada em placa de protoboard, sujeita a bugs ainda não observados, sendo fornecido os arquivos que poderão ser alterados conforme a necessidade do hobista.

Segue pasta com os arquivos da montagem, atualizada em 03/03/2015:

RELOGIO_CALENDARIO_V_2

Manuais:

DS1307
16F628a
LCD 16×2

Curiosidades:
A ponta da asa das aves planadoras
Como gostar do seu trabalho
Você sofre de intolerância à lactose?
O projeto maravilhoso da molécula de hemoglobina
Armas silenciosas — Ameaça real?
Os eficientes e versáteis escudos da Terra

Videos Educativos:
Por que estudar a Bíblia?
Deus tem nome?
Vídeo: Japão — refazendo a vida um ano após o desastre
Um novo começo
Coleção de videos educativos para crianças com Pedrinho e Sofia

Promovendo a união familiar:
Orientações para família
Orientações para adolescentes
Atividades para colorir para seus filhos pequenos
Encontre respostas a sua perguntas bíblicas

Até o próximo artigo!!!

1

9 comments

  1. 0

    lario há possibilidade de incrementar um aviso,tipo de hora em hora dar um bip ou talvez de 6 em 6 horas? o que voce acha?

    1. 0

      Olá José Luiz!
      Um bip de hora em hora faz até sentido. Mas, por gentileza, qual o objetivo de um bip de 6 em 6 horas?
      Cláudio

  2. 0

    lario o que eu tenho em mente, é um relogio que mostre horas, minutos e temperaturas! e pretendo fazer os diplays de 7 seguimentos com aproximadamente 20×8 centimetro.pra este padrão está ótimo,alguns acrescimos poderá ser bem vindo.obrigado pela sua acessibilidade.

  3. 0

    olá lario: satisfação voltar as atividades,bem lario voce tem intenção de construir um relogio com display de 7 seguimento grande? desde ja parabens por este com lcd ate.

  4. 0

    :mrgreen: Olá Claudio,este uso seria para usar em substituição de uma função que existe em um DVR de câmeras aqui em casa, esta função de registrar os eventos e com imagem funciona perfeito, mais para os meus familiares fazerem a consulta dos eventos fica mais complicado, pós tem que acessar o DVR e consultar um MENU complicado demais de complicado, com este exemplo registrando fica mais fácil 🙂 🙂 , saber os eventos pelo display, um abraço…

  5. 0

    :mrgreen: Olá Claudio, como vai tudo na paz, um Feliz ano Novo ai para vc e todos do forum, Claudio este exemplo aqui em questão veio uma ideia, um registrador de eventos para futuras consultas no painel pelas teclas e mostrar no display o dia e horas que um sensor ou chave foi acionado, seria um registrado LOG de eventos, para registrar pelo um sensor qual foi o dia e hora que ocorreu, mais teria ter uma memoria externa creio eu, para poder salvar vários registros. grato ai pelas publicações abraço…

Comments are closed.