Page 1 of 1

Generatore toni DTMF

PostPosted: 26 Sep 2012, 17:09
by filosofo
ciao
per una applicazione telefonica avrei necessità di generare dei toni in DTMF per spedire dei comandi.
come potrei fare?

qualche consiglio?

Re: Generatore toni DTMF

PostPosted: 26 Sep 2012, 17:35
by flz47655
Devi generare le giuste frequenze sinusoidali e darle in pasto ad esempio ad un buzzer. Esistono IC appositi o puoi utilizzare un DDS o qualche altro metodo che conosci per generare le sinusoidi (se non ti serve grande S/N puoi filtrare un segnale PWM)

Ciao

Re: Generatore toni DTMF

PostPosted: 26 Sep 2012, 19:04
by deluca
Puoi generare i toni DTMF sfruttando le potenzialità del bascom.

c'è una istruzione "DTMFOUT" che ti risolve il problema.
la sintassi è:

Code: Select all
Dim Sdtmf As String * 20   'definisci una stringa
Sdtmf = "#1234567890*"   'inserisci numero telefonico
Dtmfout Sdtmf , 100         'genera i toni con durata 100mSec


se ti interessa puoi inoltre generare anche toni singoli.

NB. per usare questa istruzione devi abilitare tutti gli interrupts visto che si appoggia al Timer1 con "ENABLE INTERRUPTS"
prima del codice che ti ho mostrato,
l'uscita audio DTMF te la ritrovi sul pin OC1A

ciao e buona telefonata :)

ciao

Re: Generatore toni DTMF

PostPosted: 26 Sep 2012, 19:28
by flz47655
Si, il comando ti semplifica le cose, sotto le quinte viene generato un segnale PWM

Ciao

Re: Generatore toni DTMF

PostPosted: 26 Sep 2012, 20:11
by filosofo
grazie deluca e flz, adesso metto su il circuitino su millefori e cerco di scrivere il programma, appena possibile vi metto al corrente.

volevo sapere una cosa, ma questa istruzione va bene per tutti i micro avr? posso usarla anche per la serie at90s8515?

..... allora ciao, vado a telefonare :lol:

Re: Generatore toni DTMF

PostPosted: 27 Sep 2012, 14:08
by deluca
l'istruzione DTMFOUT la puoi usare su tutti i micro della serie AVR, dai Tiny agli xMega.
il compilatore in fase di compilazione ti avvertirà con una segnalazione se non potrà implementarla per quel dato micro da te scelto.

DTMFOUT sfrutta il timer1 e quindi è necessario che il micro sia dotato di questo timer.
PS. è evidente che se sfrutterai molto questa instruzione sarai impossibilitato nell'utilizzare il timer appena menzionato.

ciao