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:
Manuais:
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!!!
kkkkkkkkk desculpa lario foi apenas um parecer!