FAÇA UM RELÓGIO CONTROLADOR DE 6 CANAIS – COM PIC 16F628A E LCD (REF104)

Quantas vezes você desejou que um determinado aparelho já estivesse ligado quando você chegasse em casa? Ou então, que seu pãozinho estivesse pronto juntamente com o seu café da manhã? Se isto lhe parece interessante, leia mais…

Sem dúvida, a tecnologia prove meios de aumentar nossa comodidade em muitos aspectos. A montagem proposta aqui visa obter alguns benefícios práticos para o dia a dia. Trata-se de um relógio com calendário, com apresentação em LCD 16×2 e que conta com o recurso de se poder programar 6 canais com reles, para que possam acionar aparelhos nos horários a ser programado pelo usuário. Veja o esquema abaixo:

Podemos notar que usamos 6 pinos do microcontrolador para controlar o Lcd e também 4 interruptores. Estes são usados na programação, sendo o ‘Menu’, ‘Ajuste de horas’, ‘Ajuste de minutos’ e o ‘Ajuste de segundos’. Apertando o botão ‘Menu’ navegamos pelas telas de programação. Podemos acertar o ‘relógio’, o ‘dia da semana’, a data, mês e ano e a seguir, podemos programar a hora de ligar do canal 1, a hora de desligar o canal 1, indo até o canal 6. A ultima tela é de ‘Encerrar Ajustes’, onde apertando o botão de horas, ou minutos ou ainda de segundos, saímos do ‘modo de programação’.
Quanto a obtenção de horas precisas, foi optado por colocar um ci DS1302, sendo este um relógio de tempo real, com oscilador próprio a cristal de 32,768 Khz. Mais 3 pinos do PIC foram usados para a comunicação com este circuito integrado. As outras 6 saídas foram usadas para comandar, via transistores BC548, os reles que irão suportar as cargas dos mais variados aparelhos desejados.
A alimentação deverá ser feita com um adaptador de parede que forneça 12 volts contínuos ou pode ser feita a moda antiga, com transformador de 110v/12volts , somando os diodos retificadores e capacitores de filtros apropriados. Os reles usados são de 12 volts na bobina e deverão suportar nos contatos, as correntes dos equipamentos que se deseja ligar. Em geral, reles de 10 amperes de contato já são suficientes para a maioria das aplicações. Nota-se um grande simplicidade para se efetuar a montagem, mesmo em placa de protoboard.

ARQUIVO ASM

Quanto ao programa, optou-se por uma interrupção do timer 1 (poderia ter sido usado o timer 0 como opção) para gerar a cada 256 milissegundos, uma interrupção breve, que apenas seta um flag. Este sinaliza para atualizar os contadores do relógio com os contadores internos do DS1302, na rotina principal. Após atualizar, a rotina também compara os valores programados dos canais, contidos na EEprom, com estes contadores atualizados. No momento que os valores são iguais, a rotina irá ligar ou desligar uma determinada saída que controla um rele. Depois, a rotina também testa o botão ‘Menu’ e se estiver apertado, irá entrar em modo de programação, e desligará as interrupções. As rotinas são simples, com muitas repetições , sendo que poderia ter sido feita mais compacta fazendo mais uso do ponteiro da ram (FSR e INDF), em detrimento da simplicidade. Fez se uso do famoso ‘salto goto’, inclusive em paginas diferentes da ‘pagina zero’, carregando valores corretos no PCLATH para gerar saltos apropriados.

USO DO EQUIPAMENTO

Após carregar o código HEX no PIC, e coloca-lo na montagem, ao ligar irá mostrar na primeira linha do Lcd, as horas, minutos e segundos e na segunda linha, o dia da semana e depois, o dia, mês e ano.
Deverá acertar o relógio e calendário, por apertar o botão ‘Menu’ e navegar nas telas, bem como programar os horários desejados nos canais. Os intervalos aceitos na programação, poderão ser pequenos como um segundo e grandes como 23 horas, 59 minutos e 59 segundos. Use os botões adicionais para acertar hora, minutos e segundos. Programando o mesmo horário para ligar e para desligar, fará que um dado canal nunca atue (ficará desligado).

SUGESTÃO DE USO

O uso deste equipamento vai além do que se possa descrever. Por exemplo, poderia ser usado para simular a presença de pessoas em uma residência, por acionar luzes e outros aparelhos em um determinado horário. Veja a figura abaixo:

Uma outra possibilidade, tem que ver com a irrigação de jardins. Podemos programar vários horários e colocar em paralelos alguns canais para obter os resultados desejados. Veja abaixo esta sugestão:

Agora, esta sugestão apela para o conforto matinal. Você já deixa a água e o pó na cafeteira elétrica, e os ingredientes na máquina de fazer pão. O rádio já fica na estação preferida e pronto! Acordar com música, pão feito na hora e café da manhã! Veja abaixo:

Acredito que você leitor, já tenha em mente algo que gostaria de controlar com um circuito destes! Mãos a obra! Use a sua imaginação e divirta-se!

Atenção: Esta montagem é de carater didático, sendo montada e testada apenas em placa de protoboard, sendo sujeita a bugs ainda não detectados. São fornecidos os arquivos ASM e HEX, que poderão ser modificados conforme as necessidades dos hobistas.

Segue o arquivo ASM:

RELOGIO_CONTROL_ASM

Segue o arquivo HEX:

RELOGIO_CONTROL_HEX

Segue pasta zipada com o arquivo hex para baixar:

relogio_control

Caso deseje uma versão usando o circuito integrado DS1307 (i2c) clique aqui.

Manuais:

DS 1302
PIC 16F628A

Curiosidades:

20 modos de criar mais tempo
Saiba mais sobre os relógios de pulso
Compre tempo para ler e estudar
Já que não pode guardá-lo, use-o bem
É tudo culpa do ‘Destino’?
Sou viciado em aparelhos eletrônicos?
O que preciso saber sobre redes sociais? — Parte 1
Seja pontual!
As pessoas nos tempos bíblicos realmente viviam mais?

Outros assuntos:
Como disciplinar seu filho adolescente
Por que eu me corto?
Desempenhem bem o papel de pais
Como fazer seu segundo casamento dar certo
O que acontece quando morremos?
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Até o próximo artigo!!!

74 comments on “FAÇA UM RELÓGIO CONTROLADOR DE 6 CANAIS – COM PIC 16F628A E LCD (REF104)

  1. Olá bom dia larios, a um tempo atrás eu havia comentado que tinha feito esse relógio e que adiantava um pouco e você tinha falado do cristal e outras coisas, Bom acontece que agora eu resolvi montar então esse outro de sete canais com DS1307, Até encomendei um Modulo RTC, este do ML http://produto.mercadolivre.com.br/MLB-685229675-relogio-tempo-real-rtc-ds1307-_JM
    para poder montar o controlar de 7 canais, tenho certeza que agora vai Haver uma precisão BEM Melhor, poderia me dizer se estou certo? Vou aproveitar todos componentes do outro pra fazer esse, Obg pela atenção & boa semana. Att

    1. Olá Bagini!
      A precisão do relógio está diretamente relacionada a:
      1) qualidade do seu cristal (veja Seiko).
      A tolerância do seu cristal em partes por milhão deverá ser a menor possível. Cristais de 20 partes por milhão dará aproximadamente um erro de 1 minuto por mês.(Veja também application note 58 para modelos de cristais recomendados pelo fabricante)
      2) O correto acoplamento do cristal com o chip. A entrada do chip tem uma capacitância que
      deverá ser a mesma do cristal usado. No caso do DS1307, deverá ser de 12,5 pf.
      3) O material da placa de circuito impresso e o formato das trilhas que ligam o cristal. Aterramento da caneca metálica também ajuda. (veja esta outra note application)
      4) A temperatura onde ficará o sistema.
      5) Melhores resultados podem ser obtidos com chip oscilador ao invés de cristal, com temperatura controlada e compensação interna como o DS32kHz (erro de mais ou menos 1 minuto por ano, ficando no lugar do cristal).

      Desta forma, não posso afirmar que a SUA montagem terá precisão melhor. Boas escolhas no que foi exposto acima conduzirá a uma boa precisão.

      Cláudio

  2. Olá Cláudio larios, gostei muito do seu projeto, porém queria substituir a primeira mensagem que o LCD mostra, como faço? Tentei mas não consegui. Me refiro a parte em que seu nome aparece no display

    1. Olá Superfitness!
      Poderá substituir na seguinte porção de código e recompilar no Mplab:

      PEGA_M
      MOVWF JK1
      MOVFW PCAUX
      MOVWF PCLATH
      MOVFW JK1
      MOVWF PCL
      MSG1:
      DT “TIMER_CONTROLER”,0 ;NOME DO APARELHO
      MSG2:
      DT “LARIOS.TECNOL.WS”,0 ;BLOG

      (Mantenha o número de caracteres em 16 por linha e preencha com espaço de necessário)

      Cláudio

Comments are closed.

Back To Top