DISC2 – DISCADORA COM PIC 16F628A (SEM TECLADO)

0

Quando publiquei o protótipo da discadora DISC1 foi me perguntado se era possível fazer uma versão que usasse o próprio telefone da linha para programa-la. Encarei o desafio ! Apresento-lhes a DISC2 !!!

Veja o esquema abaixo:

Esta discadora é um protótipo construido experimentalmente em protoboard, que utiliza um telefone qualquer conectado a linha telefonica, para programa-la. Existem 2 padrões de linha, sendo o mais moderno, o sistema ‘DTMF'( por duplo tom) e o outro, mais antigo, o sistema decádico (pulso). Portanto, foi colocado uma chave (SW2) para a escolha correta do tipo de linha usado. Para aquisição de dados “DTMF” da linha, foi utilizado um circuito integrado MT8870DE, especializado em decodificar estes sinais e converte-los em ‘binário’ nos pinos 11 a 14 do mesmo. O pino 15 indica quando uma conversão foi feita com sucesso e habilita o microcontrolador a usar estes dados.
Para captação de pulsos da linha, foi utilizado um fotoacoplador do tipo P521 ou similar. O pino 11 do PIC recebe estes impulsos e decodifica por meio de rotinas especificas. Para evitar que um número discado sem objetivo de programação, venha a alterar os dados gravados na discadora, foi previsto a chave SW1, que deverá ser acionada para ‘PROG’ antes da programação da discadora e depois retornar para a posição de ‘USO’.

É possível armazenar até 6 números a serem discados com comprimento máximo de 20 digitos cada.

Eis os comandos aceitos:

PROGRAMAR NÚMERO A SER DISCADO EM UMA DAS 6 MEMÓRIAS:
(EM MODO DTMF) DIGITE: (SENHA 4 DIG)(X)(NÚMERO DE TELEFONE ATÉ 20 DIG)(#) ; SENDO X = MEMÓRIA 1 A 6 (AGUARDE
NO FINAL, 2 BIP CURTOS)
(EM MODO PULSO) DIGITE: (SENHA 4 DIG)(X)(NÚMERO DE TELEFONE ATÉ 20 DIG) E AGUARDE 2 BIP CURTOS.

APAGAR NÚMERO DE UMA DAS 6 MEMÓRIAS:
(EM MODO DTMF) DIGITE: (SENHA 4 DIG)(X)(#) ; SENDO X = MEMÓRIA 1 A 6 (AGUARDE NO FINAL, 2 BIP CURTOS)
(EM MODO PULSO) DIGITE: (SENHA 4 DIG)(X) E APENAS AGUARDE 2 BIP CURTOS.

APAGAR NÚMERO DE TODAS AS 6 MEMÓRIAS DE UMA ÚNICA VEZ:
DIGITE: (SENHA 4 DIG)(7)(0) (AGUARDE NO FINAL, UM BIP LONGO)

TESTAR DISCAGEM DE NÚMERO DA MEMÓRIA:
DIGITE: (SENHA 4 DIG)(8)(0) ; DISCARÁ TODOS OS NÚMEROS DAS MEMÓRIAS EM SEQUENCIA
DIGITE: (SENHA 4 DIG)(8)(X) ; DISCARÁ SOMENTE A MEMÓRIA X ,SENDO X= 1 A 6

DEFINIR MODO DE DISCAGEM INTERROMPIDO(PARA DE DISCAR SE ENTRADA DE COMANDO VOLTAR AO GND(DISCA APENAS O 1º NÚMERO):
DIGITE: (SENHA 4 DIG)(9) (AGUARDE NO FINAL, 2 BIP CURTOS)

DEFINIR MODO DE DISCAGEM CONTINUO (DISCA EM SEQUENCIA TODOS OS NÚMEROS, MESMO SE ENTRADA DE COMANDO FOR ‘0’:
DIGITE: (SENHA 4 DIG)(0) (AGUARDE NO FINAL, 2 BIP CURTOS)

SENDO A SENHA = 1234 ,PODENDO SER MODIFICADA NA PARTE ‘SENHA INICIAL’ DOS ‘EQU’S.
APÓS PROGRAMAR, VOLTE A CHAVE SW2 PARA MODO ‘USO’.

Quando SW2 estiver em posição ‘DTMF’, tanto aceitará comandos de programação em “DTMF” como irá discar em “DTMF”.
È possível programar em “DTMF” e depois, mudando a chave SW2 para ‘PULSO’, realizar a discagem por pulsos. E vice-versa.
Para discar, o pino 17 do PIC, deverá receber através do resistor R12, uma tensão de 5 volts. Poderá ser proveniente de um alarme ou mesmo um sensor de presença que envia esta tensão para iniciar a discagem. Foi previsto um pequeno delay entre o acionamento e o inicio da discagem, que poderá ser alterado na variavel ‘T_PRE_DISPARO’ e depois recompilar. Note que, enquanto a entrada de disparo for +5 volts, irá continuar a discar todos os números das memórias e voltará a repetir, até que a discadora seja desligada ou seja resetada. Se a entrada voltar a 0 volts, vai depender se foi programada em modo continuo ou interrompido. Em modo interrompido, irá discar somente o primeiro número e irá parar. Já, em modo continuo, todos os números das memórias serão discados e depois irá parar. Pode-se verificar que a programação em modo Pulso é um pouco diferente do modo DTMF. Isto se deve ao fato das teclas # e * não serem usadas em modo ‘pulso’.
Esta montagem pode estar sujeita a bug’s ainda não detectados e tem como objetivo de servir de base para aprendizado de como usar de sinais telefonicos juntamente com um microcontrolador. Cada hobysta poderá alterar o arquivo asm, conforme desejar, convergindo para suas necessidades de projeto. Veja também o projeto DISC1 para mais detalhes interessantes.

Segue abaixo o arquivo ASM:

DISC2_ASM

Segue abaixo o arquivo HEX:

DISC2_HEX

Links úteis:

PIC 16F628A
MT8870DE
DTMF
DECÁDICO

Curiosidades:
Universo cheio de surpresas
Universo – obra do acaso?
Nosso inigualável sistema solar
Mapeamento do céu
Qual a origem do universo e a vida?
Ponte da Torre – Entrada para Londres
O planeta vivo

Outros assuntos:
Quatro dicas para lidar com problemas financeiros e dívidas
Como lidar com sucesso com os sogros
Como reagir a um assédio sexual
Como parar de adiar as coisas

Até o próximo artigo!!!

0

16 comments

  1. 0

    Olá Claudio.
    Obrigado por compartilhar sua experiência com nós.
    Gostaria de saber se da pra usar essa discadora com um celular.

    Obrigado
    Alex

    1. 0

      Olá Coiote! Esta discadora foi feita para uso com linha telefônica convencional. Mas nada impede de você realizar testes com celular, mas não me pergunte como, por que nunca fiz isto. Alguns celulares já tem uma função de discagem rápida acessando uma única ‘tecla’. Poderia usar um rele para acionar as ligações desta ‘tecla’ e deixar programado o número a discar.
      Cláudio

  2. 0

    Estimado Claudio, no he podido hacer andar el circuito, crees que los pines del relay NO y NC están correctos?

    1. 0

      Hola Sharez!
      Cuando se inicia una llamada de teléfono, los contactos del relé deben conectar la resistencia de carga de 330 ohmios, por lo que la conexión es correcta.
      Claudio

  3. 0

    ❓ Olá Claudio, para alterar o tipo de cristal de 10mhz pora 4mhz, seria possivel. o de 4mhz e mais facil de conseguir, e o que consigo das minhas sucatas por aqui, valeu.

    1. 0

      Olá Agnaldo! Na ocasião do desenvolvimento deste projetinho didático, eu tive alguns problemas com a duração da rotina de interrupção , o que me levou a usar um cristal de 10 Mhz, com o objetivo de agilizar esta rotina, fazendo-a em menor tempo. Não aconselho a alterar este valor.
      Claudio

  4. 0

    :mrgreen: Olá Claudio, parabéns pela iniciativa de desponibilizar esta idéia com todos, eu ja procuro a tempos uma explicação como pode funcionar uma forma de enviar pela linha telefonica dtmf, valeu mesmo…

  5. 0

    Claudio tudo bem ? Uma sugerencia para seus proximos projetos, que tal uma central de alarme de 2,4,5 zonas por exemplo e com sensores sem fio ..um abraço..

  6. 0

    Ola Claudio.

    Seus projeto e informacoes sao de grande ajuda.
    para quem esta comecando com pic e ate mesmo para os veteranos, Pois conhecimento nao ocupa lugar no espaco,(( e nao paga imposto)).

    Parabens pelo blog.
    Que Deus continue ti abencoando.

    PS. ganhou mais um seguidor no seu blog.

    Renato Adami

    1. 0

      Olá Renato! Fico feliz que as informações postadas estejam sendo utéis. Obrigado por seu comentário incentivador.
      Cláudio

  7. 0

    Nao poderia deixar de agradecer por mais esse projeto que para mim é de amplo interesse , ainda nao fiz os testes aqui mas vindo de voce se supoe que deve ser mais um ótimo projeto, valeu mesmo…

    1. 0

      Olá Claudinei!
      Agradeço seu comentário. Na realidade, trata-se de um protótipo , com objetivos didáticos. Mas você poderá altera-lo a vontade, para adequar as suas necessidades, ou talvez , aproveitar partes do código. Isto é com você.
      Divirta-se!!!
      Claudio

Comments are closed.