FAÇA UM TIMER PROGRAMÁVEL – COM PIC 16F628A E DISPLAY LCD 16X2 (REF188)

Não fique esperando para desligar. Use um timer…

Existem algumas atividades que necessitamos ligar algum equipamento e ficar esperando um determinado tempo para desliga-lo. O timer facilita muito porque podemos programar o tempo desejado que o equipamento fique ligado e ao darmos ‘start’, ele ligará e desligará no tempo programado. Assim, evitamos de esquecermos algo ligado e as possíveis consequências disto. Apesar de ser uma coisa simples de ser feita, em especial com microcontroladores, ainda assim é muito útil. Então resolvi fazer uma montagem com este tema. Veja como ficou o esquema:

A rotina usa a interrupção do timer 0 para obter o tempo de 1 segundo necessário ao funcionamento do relógio. Com o prescaller ajustado para dividir por 64 obtemos uma interrupção a cada 8 ms. Um contador adicional divide por 125 obtendo assim este tempo básico.
Para usa-lo basta programar o tempo desejado entre 1 s e 59 minutos/59 segundos, e em seguida, apertar o botão ‘On/Pause’. Os botões ‘Seg’ e ‘Min’ ajustam respectivamente os segundos e os minutos. Apertando começa a incrementar e soltando para o incremento. Somente podemos ajustar o tempo quando em pausa ou desligado por tempo. Se estiver em ‘pausa’ e ajustamos qualquer um dos valores, o display passa a mostrar ‘Timer Off’ ao invés de ‘Timer Pause’. Quando em modo ligado, ou seja, está acionando a saída e contando tempo para desligar, o LCD apresenta ‘Timer On’. Quando apertamos para pausar, também desliga o rele e a carga na sua saída.
Quando o tempo atinge o valor ’00:00′, além de desligar o rele, também ativa um ‘beep’ produzindo um sinal sonoro do termino do tempo, parecido com os usados em forno de microondas. Foi usado um simples disco piezoelétrico, pois a frequência é gerada por software.
Obs. Esta montagem é de caráter didático, sendo realizado em placa de montagem experimental ( tipo protoboard), sujeita a bugs ainda não observados. Está sendo fornecido os arquivos que poderão ser alterados pelos hobistas conforme a sua necessidade.
Atenção: Antes de fazer placa de circuito impresso para este circuito, monte em placa experimental e teste para certificar que ele atende as suas necessidades.

Segue a pasta com os arquivos para esta montagem, nas duas versões (CCS C Compiler):

TIMER_FILES

Segue a pasta com os arquivos para esta montagem, nas duas versões (XC8 Compiler):

TIMER_XC8_FILES

Adicionalmente, em 16/12/2015 foi feita esta versão para tempos menores (1 ms a 9999 ms), para fins de testes com temporizações pequenas, usadas em efeitos estroboscópicos e fotografias:

FAST_TIMER_FILES

Em 08/08/2016 foi postado esta versão do Timer de 0 a 59 minutos, em CCS C Compiler, que permite zerar a contagem ao apertar os botões de ajuste de ‘segundos’ e ‘minutos’ ao mesmo tempo, em modo ‘stop’ ou ‘pause’:

TIMER_LCD_ZERA_FILES

Manuais:
PIC 16F628A
LCD

Curiosidades:
Alguém tem um lápis?
Obras-primas “pintadas” com pedras
A arca de Noé e a arquitetura naval
Como surgiu a moderna indústria do diamante
Mestres na arte de pescar
O fascínio da pesca no gelo
O modo eficiente de o salmão nadar

Assuntos Bíblicos:
Como ensinar seus filhos a ter autocontrole
Como parar de discutir
A Bíblia é produto da sabedoria humana?
O que é preciso para entender a Bíblia?
Por que Deus permitiu o Holocausto?
Será que Deus, a Bíblia ou a religião podem ajudar você a ter satisfação na vida?
Como posso me proteger do assédio sexual?
O que é a fera de sete cabeças de Apocalipse capítulo 13?

Videos Motivadores:
Vejo a vida com as mãos
‘Eu estava cheio da minha vida’
Um novo começo
Japão — refazendo a vida um ano após o desastre
Uma exposição histórica
Deus tem nome?
Outros videos

Até o próximo artigo!!!

34 comments on “FAÇA UM TIMER PROGRAMÁVEL – COM PIC 16F628A E DISPLAY LCD 16X2 (REF188)

  1. Boa tarde Claudio! Mais uma vez Parabéns pelos seu excelentes projetos, estou com dificuldades para compilar alguns codigos seus , inclusive esse do Timer com PIC16F628A esta dando erro na platagem do LCB
    printf(env_lcd_d(“Timer Eletronico”));// nome do aparelho
    env_lcd_c(0xc0);//linha 2
    printf(env_lcd_d(“Larios.Tecnol.Ws”));//blog
    delay_ms(2000);//tempo de apresentação
    env_lcd_c(1);//limpa tela.
    Refiz a PCB no soft SprintLay 5.0 conforme segue links desde já fico muito grato forte abraço.
    https://www.facebook.com/groups/700366773388875/ Arquivos para download.
    https://www.facebook.com/928803753806423/photos/pcb.1132980150055448/1132979546722175/?type=3&theater PCB pagina Facebook.
    Eli Silva

      1. Bom dia Claudio ! Apoós seguir suas orientações , baixei a versão 3.249 do CCS Compiler e consgui compilar normalmente , muitissimo obrigado mais uma vez , sempre aprendo muito com os seu projetos … forte abraço.

    1. Olá Marcos!
      Verifique por favor, a nova versão para tempos curtos (1 ms a 9999 ms). Nela foi usado um disparo por borda de subida no pino 6, além de 3 saídas: Uma normal, uma invertida e outra que fornece um pulso de 1 mseg após o tempo escolhido ser alcançado.
      O display apresenta um contador de números de disparos realizados e na segunda linha, o tempo desejado para a temporização.
      Cláudio

  2. Boa noite Claudio estou fazendo alguns testes com lampadas estroboscópicas e o disparo das mesmas tem que ser entre esses tempos .abraço

  3. Boa noite Claudio estou precisando temporizar tempos entre 0,10 a 5 segundos poderia disponibilizar uma versão para esses tempos obrigado

        1. Olá Marcos!
          Creio que o que pede não é apenas uma mudança de tempo. Você não vai disparar no final do tempo? O circuito atual liga e fica ligado até acabar o tempo. Descreva como funcionará a sua ideia, por favor.
          Cláudio

          1. perfeito Claudio o temporizador sera acionado por um radio controle a 500mts de distancia .usando esse mudança de tempo. abraços

          2. Olá Marcos!
            Obrigado por compartilhar o uso, mas o que gostaria de saber é se você usará como um temporizador normal. Ao chegar o sinal de rádio, ele liga e ficará ligado pelo tempo programado (p. ex. 0, 5 segundos) e desligará (modo normal).
            Ou ao chegar o sinal de rádio, espera desligado pelo fim do tempo e então liga (modo que precisa modificar mais a rotina)?
            Cláudio

          3. Olá Marcos!
            Então, recebe o sinal na tecla on (não usar off eu suponho), ficará a saída acionada pelo período ajustado e depois desligará, certo?
            Com o uso do esquema atual usando rele na saída, com certeza não conseguirá resposta rápida na casa inicial dos 10 mseg. Irá usar outra coisa no lugar do rele? Transistor? Triac? Fotoacoplador?
            Cláudio

Comments are closed.

Back To Top