Lários, como seria um código c (ccs) para um pisca led conforme o JPG em anexo ? No caso usaria só 3 dtmf´s (correspondente à tecla0, tecla1 e tecla5). 3 leds. Cada tom dtmf acende um led correspondente. Se fechar Ch1 somente 1 tom+1 led continuam funcionando. Vou usar aqui na bancada para avançar em outra montagem. Pode ser útil também como base para outros colegas que visitarem este post. Abçs.
Trabalhar com pulsos DTMF é mexer com rotinas do tipo DFT (famosas transformadas de Fourier). Isto exige muito processamento, coisa que o nosso amiguinho 12f675 não permite.
No entanto, me lembro de ter visto a algum tempo atrás uma Note Application da Microchip onde foi implementado um DFT simplificado (pasmem : trabalhando a um bit). Mesmo assim, consumia mais de 1800 bytes de flash. O 12f675 tem apenas 1024.
Quando tiver um tempo vou pesquisar para ver se encontro o artigo e se tem exemplos de uso.
Aqui neste site tem um (eu acho),
A maioria destes decoders para dtmf encontrados na internet tem bastante limitações. Alguns são instáveis, outros precisam que o tom fique por mais de 1 segundo, e coisas do gênero. Talvez você poderia montar em protoboard a montagem citada e testar se ela é realmente funcional para o que você pretende fazer antes de tentar fazer qualquer modificação. Eu encontrei outra no site RomanBlack. Mas o problema é o mesmo: será que é funcional para suas necessidades? Só se você testar.
Big Lários, tivemos a mesma idéia. Eu montei ontem a noite e funcionou bem, fiz muitos testes. Digo, funcionou conforme citado naquele site, com 12f675. Quando digo que funcionou bem quero dizer que todas as vezes que eu gerei os dtmfs o PIC reconheceu acionando a sua saída no pino 5 (coloquei um led). A minha necessidade descrita no primeiro PDF deste tópico é bem mais simples, porém só a sua boa vontade e motivação poderá alterar o ASM (quem sabe até transpôr para CCS). Vai ser uma mão na roda para demais projetos. Saudações.
Ops, PDF não, JPG
Problema é que eu preciso de 3 led´s e 1 chave e no 12f675 não tem pinos sobrando. Vou pensar em algo e posto aqui depois. Abçs.
Analisando o esquema do JPEG que você enviou, ele não trabalha com cristal. O cristal é importante para a rotina e sem ele não funciona. Então descarte este esquema. Talvez um 16F676 possa ser usado.
Mas qual foi a rotina que você testou e que funcionou? Poderia me passar o link?
Testei aquele mesmo do link da minha mensagem anterior, este: https://pe1grl.khds.nl/dtmf/dtmf.htm
Logo no começo tem um 12f675 com cristal e logo abaixo da imagem tem o código ASM. Na entrada ÁudioIN liguei na saída de áudio da placa de som onboard do meu PC. E gerei os DTMF´s neste link aqui: https://onlinetonegenerator.com/dtmf.html
Para gerar uma sequencia de DTMF para testar a montagem, usei este link: https://www.audiocheck.net/audiocheck_dtmf.php
Nele, mais abaixo em File Generator, basta digitar a sequencia desejada e fazer o download
Obrigado por sua resposta e os links.
Funcionou bem para você? Qual foi a senha que usou para ligar e desligar a saída? Foi a citada no artigo #346962#1* para ligar e #346962#0* para desligar?
O gerador de sequências DTMF on-line referenciado por você gera tons curtos e rápidos. Fico admirado que tenha funcionado bem usando ele! Geralmente neste tipo de montagem você tem que entrar lentamente com os tons e demorar um pouquinho mais no tempo tanto do tom como da pausa para funcionar (meio lerdo).
Funcionou sim Lários, gravei o .HEX e gerei naquele outro site as sequencias (senhas) que acendem e apagam o led (para apagar tem que esperar 10 segundos). Funcionou bem.
Assim que tiver um tempinho vou montar este circuito que você indicou para ver como se comporta.
Ah! Obrigado por ter retornado mais uma vez!
Boa Lários, se conseguir ao menos passar o código para CCS no PIC 16F676 já será bacana demais, mas não com aquela senha formada por sequencias. Apenas com 3 ou 4 dtmf´s (3 ou 4 teclas à livre escolha) acionando 3 a 4 leds com opção de modo pulso ou retenção. Abçs.
O código é imenso já usando uma linguagem eficiente como o asm. Programando com linguagem C tende a piorar o gasto com posição de memória flash. Mas achei interessante a metodologia usada. Assim que eu tiver um tempo irei estudar estes arquivos em asm. Quem sabe consiga alguma coisa. Mas isto vai demorar um pouco.