DISC2 – DISCADORA COM PIC 16F628A (SEM TECLADO)

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!!!

16 comments on “DISC2 – DISCADORA COM PIC 16F628A (SEM TECLADO)

  1. 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. 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. Estimado Claudio, no he podido hacer andar el circuito, crees que los pines del relay NO y NC están correctos?

    1. 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

Comments are closed.

Back To Top