Fork me on GitHub

29/12/12

Projeto 20: Timer utilizando o PIC16F628A

Timer Utilizando o PIC16F628A

VERSÃO COM DISPLAY DE 7 SEGMENTOS

Nesse projeto como em outro anterior, é utilizado para uma contagem regressiva de tempo. A diferença está na utilização do PIC16F628A. Este PIC é muito limitado, o pino RA4 não funcionam como saída, pois é do tipo dreno aberto(drena a corrente). Para isso pode-se utilizar um transistor do tipo PNP, pois aterrando sua base poderemos obter uma corrente elétrica sobre o  buzzer, ou utilizar um resistor de pull-up.

Possui três botões de funções: ajuste, seleção de ajuste( minutos ou segundos) e um botão de START/STOP, além do botão RESET que foi ligado no pino de RESET(MCLR). Foi utilizado também dois display de 7 segmentos CC (Catodo Comum). Na hora da montagem do circuito, conecte os pinos (A,...,G) do display num resistor de 470 Ohm.

O botão de seleção de ajuste é usado tanto para ajustar os segundos/minutos como para visualizar o tempo dos minutos, caso mantenha-o pressionado.

Observação: Configure o PIC para utilizar o Oscilador Interno( 4 MHz ). Se você estiver utilizando o MikroC PRO for PIC, vá no menu PROJECT >> Edit Project... e seleciona o modo oscilador como: INTOSC Oscillator: I/O function on RA6/...

DOWNLOAD:
Firmware: Timer16F628A.hex;
Arquivo de simulação do Proteus: Timer16F628A.DSN;

CÓDIGO-FONTE:

//VARIAVEIS
int cnt;
short minutos,segundos;
char m1,m2,s1,s2;
bit start,oldstate1,oldstate2;
char numeros[10] = {63,6,91,79,102,109,125,7,127,111};//7 segmentos CC

//ROTINA DE INTERRPÇÃO
//Interrupção a cada 400us
void interrupt()
{
TMR0 = 155;
cnt++;
INTCON.T0IF=0; //flag de interrpção
}

void main()
{
//CONFIGURAÇÃO DOS REGISTROS
CMCON = 0b11111111;//desliga comparador analogico
OPTION_REG=0b00000001; //configura timer0 ( prescaler 1:4 )
INTCON.GIE=1;  //habilita interrupcap global
INTCON.T0IE=1; //habilita interrupcao do timer0
TMR0=155;
TRISB=0b00000000;
TRISA=0b00011111;//pino RA4 definido como entrada.

//DEFINIÇÃO DE VALOR DAS VARIÁVEIS
segundos=0;
minutos=0;

//BIT DE STATUS
start=0;
oldstate1=0;
oldstate2=0;

while(1)
{
 if(cnt  >= 2500) //400us * 2500 = 1s
 {
  cnt=0;
        if(start)
  {
        segundos--;
        if(segundos < 0)
  {
                  segundos=59;
                  minutos--;
                  if(minutos < 0)
      {
                               TRISA.F4=0; //define pino RA4 como saída
                               PORTA.F4=1; //aterrar a base do transistor.
                               minutos=0;
                               segundos=0;
                               start=0;
                  }
        }
        }
 }

 //........AJUSTE DOS SEGUNDOS/MINUTOS..............
if(!PORTA.F1){//.........SEGUNDOS...........
if(PORTA.F0)
{
 oldstate1=1;
}

if(!PORTA.F0 && oldstate1)
{
              oldstate1=0;
              segundos++;
              if(segundos==60) segundos=0;
}
}
else  //.................MINUTOS............
{
 if(PORTA.F0)
 {
 oldstate1=1;
 }
 if(!PORTA.F0 && oldstate1)
 {
        oldstate1=0;
        minutos++;
        if(minutos==60) minutos=0;
}
}

//..........START/PAUSE............
if(PORTA.F2)
{
              oldstate2=1;
}
if(!PORTA.F2 && oldstate2)
{
             oldstate2=0;
             start = ~start;
}
//DIGITOS
m1 = minutos/10;
m2 = minutos%10;
s1 = segundos/10;
s2 = segundos%10;

//DISPLAY DE 7 SEGMENTOS
if(PORTA.F1==0)
{
PORTA=0b01000000;
PORTB=numeros[s2];
delay_ms(1);
PORTA=0b10000000;
PORTB=numeros[s1];
delay_ms(1);
}
else
{
PORTA=0b01000000;
PORTB=numeros[m2];
delay_ms(1);
PORTA=0b10000000;
PORTB=numeros[m1];
delay_ms(1);
}
}
}
VERSÃO COM DISPLAY LCD 16X2
Eu fiz essa segundo versão, a pedido do meu amigo Florisvaldo, utilizando um display LCD 16x2. Vantagens: Você pode escrever textos, simbolos, números à vontade e utiliza um número menor de pinos com relação ao circuito anterior;
Possui o mesmo funcionamento da versão anterior.
Na saída para o buzzer utilizei um relê ligado em paralelo com o diodo. Não se esqueça disso caso você utilize o relê, a função desse diodo é proteger o microcontrolador da tensão reversa. Essa tensão reversa pode ter valores muito altos.
DOWNLOAD:
Firmware: TimerV2.hex;
Arquivo de simulação do Proteus: TimerV2.DSN;


CÓDIGO-FONTE:
MikroC PRO PIC

113 comentários:

  1. Boa tarde Tiago, este temporizador com pic16f628a você poderia fazer uma versão com LCD 2x16.
    obrigado.
    florisvaldo@yahoo.com

    ResponderExcluir
  2. Bom Dia Tiago Henrique,
    Muito obrigado pelo timer só tenho a agradecer a você.
    florisvaldo@yahoo.com

    ResponderExcluir
  3. Amigo você é 10000!! muito bom mesmo.

    ResponderExcluir
  4. Boa tarde Tiago Henrique sera possível disponibilizar o Hex para timer regressivel (timer16f628.hex) pois não esta acessivel, e não tenho compilador para o proteus .
    Cumprimentos:
    Fernando

    ResponderExcluir
    Respostas
    1. Obrigado. Ja arrumei o link.
      Caso você queira, tenho no blog disponivel para download o compilador MikroC Pro PIC.

      Abraços!!!

      Excluir
  5. Thiago, você poderia colocar um exemplo de um Contador com display 16x2, um botão de reset, um liga/desliga e um incrementador com um debounce de 20ms. Abraçoss!

    ResponderExcluir
  6. Olá ! Como eu poderia modificar esse projeto,onde teria só o botão start/stop que ligaria o relé por 2 horas e ao término desse tempo manteria o relé desligado por 1 hora desabilitando o botão por esse tempo ? Um grande abraço e obrigado.

    ResponderExcluir
  7. OLA MEU NOME É ALEX S. SOU TÉC. EM ELETRÔNICA A 21 ANOS, AMO ESSES MICROCONTROLADORES ( PIC).

    TENHO ALGUNS PROJETOS , MAS NADA IGUAL AO SEU, VOCÊ PODE ME AJUDAR...

    GOSTARIA DE MONTAR UM QUE EU PROGRAMA-SE ELE PARA LIGAR E DESLIGAR QUANDO EU QUISESSE, TIPO 1 HORA LIGADO....1 MINUTO DESLIGADO E ASSIM VAI, ENTENDE ?

    1 ABRAÇO
    alextecx@gmail.com

    ResponderExcluir
  8. Voçê tem um blog com muito bom material...
    Desde já um muito obrigado por disponibilizar os seus projetos e exemplos.

    Eu sou amante da eletronica mas não entendo nada de programação, dou um jeito quando é em lader. Estou iniciando na programação em C com o compilador CCS, mas estou achando um pouco complicado. E voçê pelo que vejo utiliza o MicroC, considera-o melhor???

    Já agora andei a ver e não tem nada (exemplos) aqui no seu blog na utilização da porta serie do PIC...
    Eu estou tentando fazer um programa no PIC16F628A, em que recebe comunicação serie na UART do PIC e este converte os dados recebidos para um LCD 16x1 ou 16x2, não estou conseguindo se poder dar uma ajuda... fico agradecido.

    Ou meter aqui algo do género para toda a gente acessar.

    ResponderExcluir
  9. OLA MEU NOME É ALEX S. SOU TÉC. EM ELETRÔNICA A 21 ANOS, AMO ESSES MICROCONTROLADORES ( PIC).

    TENHO ALGUNS PROJETOS , MAS NADA IGUAL AO SEU, VOCÊ PODE ME AJUDAR...

    GOSTARIA DE MONTAR UM QUE EU PROGRAMA-SE ELE PARA LIGAR E DESLIGAR QUANDO EU QUISESSE, TIPO 1 HORA LIGADO....1 MINUTO DESLIGADO E ASSIM VAI, ENTENDE ?

    1 ABRAÇO
    alextecx@gmail.com

    ResponderExcluir
  10. Olá Tiago Henrique me surgiu uma dúvida importante.
    Você disse que os pinos RA0 A RA4 são do tipo dreno aberto!
    Mas no manual consta somente o pino RA4 sendo deste tipo.
    Por favor teria como confirmar isso para nós por favor.
    Grato.

    ResponderExcluir
    Respostas
    1. Você tem toda razão, me desculpe pelo erro. É somente o pino RA4.

      Muito obrigado!!!

      Excluir
  11. Respostas
    1. problema nehum! Mas você teria que alterar o código!

      Excluir
    2. Voce tem que alterar o registro do timer0. No caso do pic18f é o registro T0CON.

      Excluir
  12. Olá amigo. tem como você me orientar sobre a parte de potencia para versão 2? Teria como implementar neste código uma programação dupla. Quando terminar a primeira contagem iniciar uma nova pre programada? Abraço.

    ResponderExcluir
    Respostas
    1. Olá, para adicionar outra contagem, vc pode fazer o seguinte:
      altere o código q começa na linha 63:
      PORTB.F6=1;
      minutos = ?;//numero qualquer
      segundos = ?;//numero qualquer
      start = 1;
      }

      Excluir
  13. Valeu Tiago pela boa vontade. Não consegui compilar o código. Sou novato em programação, na verdade quase um bebe...rsrsrsr. Tem como vc me enviar o código fonte? Outra coisa, apos o final da contagem queria que aparecesse uma mensagem de fim. Muito obrigado pela força. email:carlos.rodlim@gmail.com

    ResponderExcluir
  14. Não consigo abrir o arquivo no Proteus Tiago, utilizo a versão 7.1 do proteus

    ResponderExcluir
  15. E ae tiago blz?..cara eu montei os 3 circuitos fucionou blz..mas como faço para usar o display de 7 segmentos individual porque no proteus eu nao concegui.

    ResponderExcluir
  16. Um meu professor de física técnica sempre afirmava que: Os que não repassam os próprios conhecimentos a ciência deles não vale nada!
    Você está de parabéns com seu blog, e nem imagina o quanto seja útil para a comunidade esse material publicado.
    Continue dessa forma porque irá muito longe.
    Tenho 60 anos e sei o que estou dizendo.
    PARABÉNS

    ResponderExcluir
  17. Thiago Henrique tem como tu disponibilizar o arquivo fonte(.asm) ?

    ResponderExcluir
  18. Boa noite. Preciso de um circuito que acione 02 solenoides em tempos diferente e programáveis.A intenção é que uma fique aberta por X segunbdos(programável) e após o fechamento da primeira , a asegunda também abre e permaneça aberta por y segundos.A intenção é que ela repita o ciclo a cada Z horas por exemplo(programável).
    você faria este circuito?Qual o valor? Já teria ele pronto?
    Agradeço pela atenção.

    ResponderExcluir
  19. oi boa noite caros colegs ,posso entra no conteudo
    meu nome e Marcos Reis, sou da aria de eletronica

    ResponderExcluir
  20. Olá Tiago Henrique, gostaria de saber sobre esse projeto de timer regressivo com display LCD, para o buzzer (sirene) ser de 12V o que teria que mudar nos outros componentes!
    Qualquer coisa por favor se possivel entrar em contato comigo por email : sartori37@gmail.com
    Desde já brigado amigo!

    ResponderExcluir
  21. Boa tarde, Tiago. cara estou tentando montar um controle remoto! e não sei fazer a programação linguagem C, se vc poder me ajudar, com a programação eu agradeceria!
    o projeto que tenho que montar é este. ( http://larios.tecnologia.ws/iBlog/wp-content/photos/2012/08/controle-remoto.bmp )
    ja tenho tudas as peças, só falta o conhecimento da linguagem!!!
    ficaria grato se você que é um grande programador, postasse o codigo de fonte ( a programação ) que devo colocar no PIC.

    ResponderExcluir
  22. Tiago, o código em assembly iria ajudar a entender como o programa fuinciona.
    Abraço!

    ResponderExcluir
  23. Estou fazendo um projeto e gostaria de iniciar a contagem a partir de um pulso CMOS, vindo de outro equipamento, essa contagem seria de 00 min a 1h ajustáveis. E que armazenasse em memoria a transição de um outro pulso CMOS, como se fosse um contador digital. Se possível conto com tua ajuda.

    ResponderExcluir
  24. Tiago,estou precisando muitíssimo da sua ajuda nesse projeto você sabe fazer programação em ladder?Tô precisando muito da sua ajuda!!Tem como me responder poder também me passar um email para podermos conversar?Urgentíssimo questão de vida ou morte rs

    ResponderExcluir
  25. Obrigado amigo pelo Projeto.
    Tiago, poderia me ajudar em um projeto para facu, 1º projeto: PIC 16F628A que no sinal de start começa conta 20 segundos acabando habilita uma saída por 1segundo, isto no loop até o sinal de start desabilitar.

    ResponderExcluir
  26. Tiago, Bom Dia!
    Muito bom o blog. Parabéns !
    Estou com um problema, e, vamos ver se você pode ajudar. Montei o Temporizador com display de LED, e o mesmo funciona direitinho no Proteus. Porém na prática, não há qualquer alteração no estado lógico no pino 3 do PIC quando a contagem é zerada, portando não ocorre o acionamento do rele que acrescentei no circuito, para acionamento de outro dispositivo externo.
    Nada entendo de programação.
    Obrigado pela atenção.

    Roberto

    ResponderExcluir
  27. Olá Roberto, estou com o mesmo problema no temporizador com display 7segmentos, voce conseguiu resolver o seu?
    Montei um, fiz o pcb, tudo legal, funciona normal o display na pratica, aumenta, diminui o contador, tudo, mas quando zera, não aparece nada na saida 3 do pic, ou seja não é possivel acionar nem o buzzer, nem um relê, nada .
    Aguardo seu parecer,
    Anteciosamente,

    joão filho

    ResponderExcluir
    Respostas
    1. Boa noite, grande trabalho, é onde é possível pôr 2 relay que se seguem em ignição nele (isto) timerv2 obrigado, entristece para meu português.

      Excluir
  28. Olá João. Somente hoje ví o seu comentário. Será que ninguém mais montou o circuito ? Pois ninguém comentou este problema. Então, como não entendo nada de programação de PIC, verifiquei no circuito que montei, que o pino 3 fica permanentemente em nível baixo (0 volts), quando ao iniciar a contagem deveria ir para nível alto, e nível baixo ao chegar a zero. A única forma que tentei, foi colocar um resistor pull-up de 10K para elevar o pino 3 ao nível alto, porém ao termino da contagem, nada se altera. Talvez a solução esteja na alteração do pino de saída para o pino 13 através de alteração do programa, considerando a observação no início do artigo de que o pino 3 é somente entrada. Seria bem vindo dos demais participantes , sugestões para resolver o problema encontrado. Se conseguir resolver, por favor compartilhe.

    Grato !

    Roberto

    ResponderExcluir
    Respostas
    1. Tenho uma solução, não sei se você ja tentou. Faz isso mesmo, coloque um resistor de pull-up e altere na programação ( linha 51 ) PORTA.F4=0;.

      Excluir
    2. Tiago. Obrigado pela reposta e sugestão. Bem, como disse antes, não entendo nada de programação, então baixei o Micro C,e copiei o código fonte que você disponibilizou, com a alteração sugerida, porém quando vou compilar dá erro nas linhas 18, 19 e 20. Por favor seria possível mandar o arquivo.hex já alterado para meu e-mail ?
      Grato !

      Roberto (christof@ig.com.br)

      Excluir
  29. Olá João.Você já implementou a alteração do código e o resistor de Pull-up sugerido pelo Tiago ? Se deu certo por favor pode mandar o arquivo.hex com a alteração, pois tentei com o Micro C, mas não consegui.

    Grato.

    Roberto (christof@ig.com.br_

    ResponderExcluir
  30. Amigo tiago você tem uma versão deste timer com Arduino.
    Obrigado.

    ResponderExcluir
  31. Tiago, Obrigado por disponibilizar este circuito.e pela alteração no programa. Agora está funcionando de acordo com o projeto. Aproveito para disponibilizar ao blog e demais colegas a minha versão de PCI no Proteus.
    Grato por tudo.

    Roberto

    ResponderExcluir
  32. Oi Thiago tô usando o mikroC versão 5.8 fiz a compilação da versão 7seg para corrigi a linha que você falou, linha 51 PORTA.F4=0; mas o código ta dando um erro na linha 39. veja ai ok.

    ResponderExcluir
    Respostas
    1. Tenta compilar novamente...Tinha um espaço entre os operadores

      Excluir
  33. Oi THIAGO eu compilei deu certo a versão 7seg mais os Leds não acende.

    ResponderExcluir
    Respostas
    1. Configure no projeto os fusíveis. Define para utilizar o clock interno.

      Excluir
  34. AMIGO THIAGO EU TÔ USANDO O mikroC PRO for PIC VERSÃO 5.8.0 mas não seiu mexe nele da para você me dizer onde eu posso configurar os fusíveis. obrigado

    ResponderExcluir
  35. Thiago obrigado deu certo, fique com deus

    ResponderExcluir
  36. Tiago, estou tentando utilizar seu projeto de timer com display para elaborar uma corrida na feira de ciências. Acredito ser mais básico, porém eu conseguiria utilizar como uma forma de relógio contra o tempo? Timer, 3 ou 4 fios e um relé, onde setamos o tempo, caso cortem o fio errado tem a parada do tempo ou ele aumento de valor e no final do tempo quando a bomba estoura iria colocar uma máquina de fumaça simulando o tal fato...tenho que mudar muita coisa?

    ResponderExcluir
  37. Thiago Henrique teria como fazer um projeto com o compilador MPLab?

    ResponderExcluir
  38. qual a versão do proteus que vc utilizou para fazer esse projeto VERSÃO COM DISPLAY LCD 16X2
    pois no meu proteus nao consigo abri-lo

    ResponderExcluir
  39. Olá Tiago bom dia, queria te agradecer por disponibilizar esse projeto, eu montei ele já a um tempo e funciona firme, porem agora eu queria fazer uma gambiara nele, seria assim: eu defino o tempo que eu quero e quando terminasse o tempo eu gostaria que ele tivesse um contador de 4 digitos no cantinho do display e esse contador contasse 1,, ai coloco novamente outro tempo para contar e quando terminar ele conte 2 e assim por diante! é que eu não tenho muita experiencia em pegar um codigo e modificar ele ainda mais em mikroc . kkkkkkkkkkkkkkk
    gostaria que quando Vc tiver um tempinho me desse uma mão, umas ideias de como fazer. desde ja agradeco, parabens pelo blog tem muita coisa boa aqui.....

    ResponderExcluir
  40. Olá Tiago, não estou conseguindo usar o codigo fonte que tu disponibilizou, teria como posta-lo no formato do programa Pic C Compiler?

    ResponderExcluir
  41. Olá a todos Thiago você pode Incrementar na VERSÃO COM DISPLAY LCD 16X2 para Horas ficaria assim HH:MM:SS.

    ResponderExcluir
    Respostas
    1. é so acrescentar uma variavel chamada "horas" e decrementa-la sempre que minutos < 0. Na hora de exibir faça do mesmo jeito que eu fiz com as variáveis segundos e minutos.

      Excluir
  42. Ola boa tarde Thiago estou começando com PIC e to apanhado paca gostaria de saber porque não consigo compilar o codigo que vc disponibilozou dá uma porrada de erros preciso mudar umas coisinhas tipo que o timer inicie com 1:20 quando passar 45 sec ou desliga um equip e no final desliga o outro
    Decio

    ResponderExcluir
  43. gostaria de saber no timer de 7 segmentos o r3 e 100 oq?

    ResponderExcluir
  44. Ola fui testar a programação do display 7 seg no DEVC++ e deu varios erros teria como arrumar? por favor

    ResponderExcluir
    Respostas
    1. voce tem que utilizar o compilador MikroC PRO PIC.
      Dev C++ só serve pra software...

      Excluir
  45. Olá tiago gostaria de saber se você tem ou consegue transformar em linguagem assembly, se tiver mande no meu email por favor.

    brenocastaldeli2@hotmail.com

    agradeço desde ja!

    ResponderExcluir
  46. Tiago ten que usar o display 7, seg duplo? Ou tanto faz? Se usar 2 individuais ira alternar a prog?

    ResponderExcluir
  47. Poderia me dizer pq vc n adicionou nenhuma biblioteca a programação do display de led 7 seg?

    ResponderExcluir
  48. O compilador que tem que usar tem que ser o MIKROC n pode ser mplab?

    ResponderExcluir
    Respostas
    1. O Mplab é diferente, então, se voce quiser compilar, deve-se realizar as alterações necessarias.

      Excluir
    2. OLA MEU AMIGO ESTOU COM ESTA DUVIDA TBM SOBRE COMPILAR O CODIGO NO MPlab ..
      MUDARIA MUITA COISA? QUAIS SERIAM AS MUDANÇAS , CONSEGUE ME AJUDAR ? OBRIGADO

      Excluir
    3. boa tarde ! achei muito legal ..... teria o codigo para mim compilar pelo mplab ? muito obrigado.....!

      Excluir
  49. Boa noite Tiago, como faço para entrar em contato com você?

    ResponderExcluir
  50. Tem como vc fazer um teclado matricial 4x4 para ps2??? que eu possa ligar direto substituindo o teclado convencional pelo matricial!!!

    ResponderExcluir
  51. Boa noite Tiago tem como fazer uma verão .que quando apertar o start ra4 pino 3 do pic sobe para nivel 1 +5v e quando termina o tempo cai para nivel 0 e permanece até um novo start abraços

    ResponderExcluir
  52. Tiago se puder fazer essa mudança na versão de display lcd agradeço

    ResponderExcluir
  53. Onde será que esta Tiago que demora para responder.kkkkk

    ResponderExcluir
  54. Olá!
    Em primeiro lugar gostaria de te parabenizar Tiago, é tão gratificante ver os técnicos distribuindo conhecimento em uma época que me parece que o individualismo esta a cada dia mais forte no pensamento das pessoas. "tipo, eu sei e o resto que se vire"....
    Realmente é sensacional ter o amigo neste grupo de eletrônica torço para que apoiadores importante e com condições te encontrem e que tu possa sempre manter este estilo de conhecimento, te desejo tudo de bom sempre amigo!!

    "... agora te deixo uma duvida minha,. consegui fazer algumas alterações no código do primeiro projeto o que usa display 7 seg. tudo a nível de conhecimento, porem me deparei com um problema que não consegui transmitir para o código e ver funcionar, seria assim:

    Não mudando nada no código, apenas acrescentando uma função que após eu selecionar um tempo qualquer, seja em min ou segundos atracasse um relé no mesmo momento em que eu pressionasse a tecla start e o rele ficasse acionado ate o fim do tempo selecionado e ou quando a tecla reset fosse pressionada, entende?
    Em fim, espero não estar sendo muito inoportuno, grande abraço e parabéns mais uma vez...

    ResponderExcluir
  55. Boa noite Tiago tem como você me ajudar a montar o projeto, pois já montei e não funcionou.

    ResponderExcluir
  56. Ola Tiago... no projeto do Timer com o LCD a programação seria diferente usando o pic16f877a????...se sim qual mudança....Obrigado!!!!.

    ResponderExcluir
    Respostas
    1. Não há necessidade. Apesar de alguns nomes de bits serem diferentes, o MikroC manteve a compatibilidade entre o PIC16F628A e PIC16F877A.

      Excluir
  57. Boa noite Tiago, gostaria de saber como acrescentar no firmware,som de bip quando qualquer dos botoes são pressionados (como microondas) e ao terminar a contagem, 3 bips ao invez de continuo.

    Agradeço.

    ResponderExcluir
  58. Esqueci de dizer, isso para versão com displays de 7 segmentos ( a pergunta do anonimo de cima)

    ResponderExcluir
  59. Thiago henrique tem como iniciar em 25 minutos direto sem ter que ajustar?.. ou ajustar de 5 em 5 minutos direto e ir decrementando apos acionar o start? como fazer isso no codigo???

    ResponderExcluir
  60. Tiago henrique responde as duvidas!!! po assim fica dificil!!

    ResponderExcluir
  61. Olá Tiago, achei interessante seu projeto. Você também trabalha como freelancer? Obrigado

    ResponderExcluir
  62. ola como faz para acionar a saida para nivel 1 quando acionar start.

    ResponderExcluir
  63. Bom Dia, para ajudar o blogs fiz uma modificação na VERSÃO COM DISPLAY DE 7 SEGMENTOS.
    no esquema coloque um decremento de minutos e segundos, coloque um relay, veja no link aqui.
    http://www.4shared.com/rar/PY8fzJgHce/Timer_Utilizando_o_PIC16F628A.html

    ResponderExcluir
  64. Boa noite Tiago, primeiramente parabéns pelos seus projetos.
    Tiago estou precisando de um timer tipo o de microondas e este seu é muito parecido porem preciso ligar uma lâmpada nele e que ela fique acesa por 3 ou mais minutos e que ao zerar o tempo soe um alarme sonoro por 2 ou 5 segundos será que você tem algum projeto neste sentido? poderia me ajudar desde já agradeço a sua atenção.

    Att.
    Rodrigo
    E-mail: chocotimer@gmail.com

    ResponderExcluir
    Respostas
    1. Amigo Rodrigo, fiz uma modificação no timer e ele faz o que você quer veja no link.
      http://www.4shared.com/rar/PY8fzJgHce/Timer_Utilizando_o_PIC16F628A.html

      Excluir
  65. Olá Thiago.
    Estou utilizando seu projeto com display 16x2 um relé 8 pinos um buzzer programado com um pic16f628a..
    Aproveitando seu projeto gostaria de uma adaptação para poder comandar o tempo da lâmpada ligada e a configuração do buzzer para determinar o tempo de aviso.
    Da forma que eu fiz a lâmpada já é ativada quando ligo na energia. e o correto seria. ela ser ativada após o start. Quanto vc cobraria para refazer seu projeto configurando o rele em conjunto com a lampada e buzer. Em caso afirmativo favor informar o valor se desejar passo meu email.. Obigado. César

    ResponderExcluir
    Respostas
    1. Amigo César fiz uma modificação no timer de uma olhada para ver se é como você quer tá no link.
      http://www.4shared.com/rar/5f1dlmYSba/Timer_Utilizando_o_PIC16F628A.html

      Excluir
  66. Olá, sou iniciante, poderia me dizer como é ligado o segundo display de 7 segmentos, não entendi pelo diagrama.
    Obrigado.

    ResponderExcluir
  67. Boa Tarde, você trabalha com projetos? preciso de um projeto de um temporizador, preciso de duas saídas temporizadas, por favor entre em contato, leandro.bfreitas@hotmail.com

    ResponderExcluir
  68. Boa Tarde, você trabalha com projetos? preciso de um projeto de um temporizador, preciso de duas saídas temporizadas, por favor entre em contato, leandro.bfreitas@hotmail.com

    ResponderExcluir
  69. Algem pode me ajudar? estou com dificuldade para fazer um projeto que seria ligar e desligar 5 relés e para cada um acender um led... ou seja um só botão de pulso liga e outro pulso desliga um so rele(resumindo são 5 entradas e 5 saidas) no local do relé pode ser transistor tambem... fiz o programa em Ladder no LDmicro e funcionou normal mas o problema e que quando passo para o proteus para simular não funciona... fiz tbem na pratiga gravando o pic da o mesmo defeito que na simulação do proteus... preciso do esquema com todos componentes e valores e o codigo fonte em C pois não entendo muito essa linguagem... alguem me ajuda?

    ResponderExcluir
  70. Ola. Ao copiar e tentar compilar o código da versão 2, encontrei um erro na linha 113. Sera falha no compilador ou bug no codigo ?

    113 317 Operator '.' is not applicable to these operands 'segundos'
    113 312 Internal error 'undefined aggregate'
    113 312 Internal error 'undefined struct'

    ResponderExcluir
  71. Thiago,
    Boa noite!

    Estou precisando criar um projeto MPlab (como se fosse o microondas), o usuário vai apertar um botão e selecionar horas, outro botão para minutos e outro para segundos, assim que definido o tempo que ficará ligado o motor o tempo vai decrementando até o 00:00:00 é assim ligaria uma sirene.

    Poderia me dar um auxílio como fazer??

    Meu e-mail é romulostole@yahoo.com.br

    Se alguém tiver algo parecido me envie que olho para tirar dúvidas

    ResponderExcluir
  72. Thiago, bom dia.parabens pelo seu site é muito bom mesmo, teria como VC me ajudar modificando o timer de com 7 seguimentos.
    seria assim:
    ao apertar o start liga um rele ao pausar o rele desliga ao soltar a pausa o rele liga e no fim do tempo o rele desliga e o rele não deve ligar quando aperta start sem tempo a percorrer.

    Meu nome é Antonio meu e-mail toninhozara@gmail.com

    obrigado pela atenção, fico no aguardo

    ResponderExcluir
  73. daria pra implementar 4 programas dentro do pic? um supositorio (como diz o chaves): timer, capacimetro. blink led, frequencimetro!

    ResponderExcluir
  74. Bom Dia Tiago Henrique!
    Sou o Jura.
    Achei muito legal a idéia montar o seu circuito temporizador com display de sete segmentos, usei o mikroc, configurei o PIC para utilizar o Oscilador Interno( 4 MHz ), coloquei os resistores no display, nao funcionou de jeito nenhum aconteceu que ao ligar o circuito só um display ascendia e quando apertava a tecla para selecionar um valor não funcionava, verifiquei o circuito aparentemente não vi erro na montagem, o que fazer agora pra fazer funcionar o circuito?

    ResponderExcluir
  75. Boa tarde é possivel fazer um timer com dois reles e ldc com horário pre definidos ? ex:

    Canal 1 liga de 5:00h e desliga de 17:00
    Canal 2 liga de 16:49h 3 e desliga de 5:01

    Sou iniciante ainda estou tentando no simulador rsrs

    ResponderExcluir
  76. Olá, tubo bem? Tiago eu entendi todo o código, porém ainda não consegui visualizar como a função interrupt é chamada. Poderia me dar detalhes?

    ResponderExcluir
  77. Ola amigo muitobom. Vc poderia
    Postar em asm? Grato.

    ResponderExcluir
  78. Ola amigo muitobom. Vc poderia
    Postar em asm? Grato.

    ResponderExcluir
  79. Ola Tiago boa tarde
    Meu amigo pelo o que vi voce e uma pessoa que tem prazer em ajudar
    Entao eu gostaria da tua ajuda pois eu preciso montar um temporizador com o PIC12F629 que funcione da seguinte forma
    Ligar de 3 em 3 Horas e ficar + ou - 3 segundos ligados isso e continuamente
    Se voce puder me fazer o esquema e o codigo para eu gravar no pic ficarei muito grato
    Se puder me responder no EMAIL: mariojopra@gmail.com
    Fique com DEUS

    ResponderExcluir
  80. olá Tiago...sei que este projecto já tem algum tempo...mas mesmo assim espero que me responda...eu preciso que o seu timer não tenha a função pause...o que devo alterar?
    mais uma coisa, será possível implementar um led que quando meto a contar em minutos, clicando no start, o led fique a piscar em quanto conta? tipo os segundos?
    obrigado você é um génio..

    ResponderExcluir

Postagens Relacionadas!!