COMO USAR O CONVERSOR ANALÓGICO/DIGITAL PARA AJUSTAR PERIODOS DE TEMPORIZAÇÃO (COM PIC 12F675)

0

Muitas vezes precisamos temporizar alguma aplicação de forma simples e rápida. Como um pequeno PIC pode ajudar?

Veja o esquema abaixo:

O proposto com este artigo é mostrar o uso do conversor analógico/digital para obter valores que poderão ser usados, não para apresentar a tensão lida, mas para carregar contadores de temporização. O pino 7 de um pequeno PIC 12F675, será configurado para ser um entrada analógica do conversor. Ligado a este pino, temos um potenciômetro de 10K. Conforme a regulagem deste, obtemos valores diferentes de temporização. O valores usados permitem uma temporização máxima de 4 minutos, mas pode ser alterado, conforme o desejo do hobista e sua necessidade. Os tempos para os reles será conforme a posição do potenciômetro na ocasião que for apertado o respectivo botão de comando. Se a posição não for alterada, os tempos serão iguais para ambos reles. Caso deseje, poderá fazer uma escala junto ao potenciômetro, marcando os valores de tempo, como por exemplo, de 15 em 15 segundos.
Apesar de terem tempos iguais, podem ser acionados independentemente. Por exemplo:
Ajuste o potenciômetro para 20 segundos. Aperte o botão 1 e acionará o rele 1. Aguarde 10 segundos e aperte o botão 2, que ligará o rele 2. Deixe passar mais 10 segundos e verá o rele 1 desligar. Mais 10 segundos depois, e verá desligar rele 2. Assim, cada rele ficou ligado por 20 segundos em ocasiões diferentes. Escolha os reles para a corrente apropriada de trabalho. O led serve para indicar que um rele foi acionado, e enquanto houver um deles acionado, ficará ligado.
Obs. Este material é de uso didático apenas, sujeito a bugs não identificados ainda, tendo sido montado e testado apenas em placa de protoboard.

Segue o arquivo ASM:

AD_TEMP_ASM

Segue o arquivo HEX:

AD_TEMP_HEX

Manuais:
PIC12F675

Curiosidades:
Uma das nozes mais úteis do planeta
Robert Boyle – lições do passado
Balolo – o caviar do Pacífico
Faça bom uso de sua curiosidade
A maçã do amor que conquistou o mundo
Florestas tropicais – como explorar sem destruir?
O sistema de navegação das tartarugas marinhas
O que aprendemos dos projetos da natureza?
Nostalgicos moinhos de vento!
Ultimato “em nome de Deus”
Carros – no presente e no passado
O sistema de ‘spray’ do besouro
Ouvindo sons do espaço
Porque as estrelas são cintilantes?
Uma voz silenciosa que pode se ouvida

Outros assuntos:
Como parar de discutir
Como enfrentar o bullying sem ter de partir para a briga (animação)
Como acabar com a tática do silêncio
Como resolver problemas em seu casamento?
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?

Para crianças:
É errado roubar?(vídeo)
Você foi feito maravilhosamente

Até o próximo artigo!!!

Clique aqui para comentários/sugestões fora deste tópico

0

21 comments

  1. 0

    Boa tarde Claudio, tem como ser feito este mesmo programa em um pic 16f628a? se sim pode explicar. desde já agradeço.

    1. 0

      Olá Tiago! O pic 16f628a não dispõem de conversor AD internamente. Portanto, não será possível usando o mesmo processo.
      Cláudio

  2. 0

    ola amigo claudio a ideia do circuito seria para usar como timer de cozinha com opção de selecionar o tempo ja ajustado tipo 5 m / 15 m / 30m/ 45m e 1H
    não sei se seria possivel o tempo de 1hora com o pic mas ja ouvi falar do timer 0 pensei na possibilidade de usar este recurso ,

    1. 0

      Olá Liliano! Para timer para tempos usados em cozinha, acho que seria melhor usar a configuração normal de um relógio, adaptado para os tempos requeridos.
      Claudio

  3. 0

    Olá Claudio bom dia! estou com dificuldade nas leitura 4 entradas analogica quando abilito mas de uma da erro parece que falta uma referencia

    1. 0

      Olá Ronaldo! Para ler as entradas, tem que ser feita a leitura uma por vez. Para determinar qual entrada AD a ser lida, você deverá carregar o registrador ‘ANSEL’ como valor apropriado (veja o datasheet do 12f675, seção AD, pag 41). Em seguida, realizar a conversão. Faça um loop que leia em sequencia e ao mesmo tempo, enviando o resultado para a serial.
      Veja o artigo ‘COMO LER TENSÕES NO PC USANDO UM TERMINAL SERIAL E UM PIC12F675’ que ficará mais facil altera-lo para 4 AD de entrada.
      Claudio

  4. 0

    😛 :mrgreen: Olá Cludio, 100% este esquema aqui ok, esra isto mesmo a minha necessidade, e creio que mais amigos ai do forum, valeu ai e obrigado por mais este exemplo, está funcionando perfeitamente as temporizações independentes por acionamanto das chaves, valeu ok, abraços, se vc quiser disponibilizar o desenho ai no forum pode ficar a vontade…. 🙂

    1. 0

      ❗ Olá Claudio, este exemplo com duas saidas esta 100%, eu estou tentando tirar uma das temporizações deixando só um canal de acionamento mais não estou conseguindo mexer no fonte aqui, me de uma dica como faço para separar os dois tempos deixando só um botão e uma saída, valeu abraços. :mrgreen:

      1. 0

        Olá Agnaldo! Você terá que escolher um canal e eliminar o outro no arquivo asm. Qual a dificuldade que você está tendo?
        Cláudio

        1. 0

          😐 Ok Claudio, foi isto que fiz aqui mais não esta de acordo o funcionamento, vou mandar por e-mail o que mexi para vc ver e se puder dar uma olhada para mim fico grato.

        2. 0

          :mrgreen: Olá Claudio, consegui fazer a separação das duas temporizações, deu certo eu estava comendo bronha aqui, vou finalizar a minha ideia aqui e ti mando para vc dar uma olhada ok, obrigado ai pela atenção….

          1. 0

            Olá Agnaldo! Que bom! Esta expressão ‘ comer bronha’ não é muito nova, não é mesmo! Faz uns 30 anos que não vejo alguém usando ela!!!
            Claudio

  5. 0

    Ola Claudio este micro pic12f675 tem 4 entradas analogicas tem como fazer as leituras das 4 independete uma da outra envia por rs232?

  6. 0

    Legal a ideia amigo , onde modifico o tempo e tem como fazer alguma maneira de ter um temporizador que fosse acionado por um botão apenas e tivesse outros botões com ajuste travado tipo usando o pino analogico mesmo ao inves de ter o potenciometro teria o jogo de resistencia e as chaves SW para acionar o tempo desejado e ela mesmo inicia a parida do tempo .

    1. 0

      Olá Liliano! Você pode mudar o tempo por alterar o equate ‘TEMPO_DELAY ‘ no começo do ASM. Também poderá acrescentar ‘goto $+1’ nas linhas previstas da rotina ‘T_ADICIONAL’. Para tempos maximos maiores que 10 minutos, terá que mudar a rotina.
      Voce pensou em usar um único rele, com varios botões com resistores que prédefiniriam os tempos? Por favor, esclareça melhor a sua idéia e o uso dela.
      Claudio

Comments are closed.