Decodificador de tonos DTMF

60 Flares Twitter 52 Facebook 0 Google+ 8 Pin It Share 0 Email -- 60 Flares ×

El circuito integrado HT9170 de Holtek, es un completo sistema de detección de tonos DTMF (Dual-Tone Multi-Frequency) y se puede utilizar para muchas aplicaciones interesantes, divertidas y en ocasiones, de espionaje. Por ejemplo, los sistemas de alarma utilizan este tipo de circuitos para decodificar un código ingresado por teclado y procesarlo como notación binaria. Muchos equipos pueden ser activados o quitados de servicio con este tipo de información, transmitida secuencialmente vía radio. Otra aplicación que no deja de ser interesante es la del espionaje. Un decodificador de tonos DTMF conectado a la línea telefónica de una casa, puede ser tu aliado para estar informado de todas las llamadas que se realicen, al instante. ¿Tienes a alguien a quien controlar o aplicaciones para operar a distancia? Nunca imaginarás todo lo que puedes hacer con este circuito hasta que leas el artículo.

Como alternativa al popular 8870 (con cualquier prefijo), el HT9170 de Holtek nos permite, como mencionamos en el sumario, obtener los datos precisos de cada tono DTMF que ingresa como señal de audio en su entrada. Como tú sabes, estos tonos (dobles) son utilizados en una amplia variedad de equipos, no sólo en telefonía, pero si nos remitimos a ella, con una aplicación sencilla como veremos en este artículo, los teléfonos pueden estar controlados y vigilados en todo momento. Una secuencia de tonos DTMF se convierte en números de 4 bits que se pueden almacenar en una pequeña memoria, o la misma EEPROM de un microcontrolador y todos los teléfonos de una casa, o un gran establecimiento, pueden ser controlados, obteniendo los números marcados en el mismo momento en que la comunicación se inicia. El HT9170, posee una salida (DV) que indica cuando un tono recibido se decodifica como un dato válido y se puede utilizar para informar, al circuito específico, que avance en el almacenamiento de los datos recibidos dentro de la memoria.

Decodificador de tonos DTMF

En la imagen superior vemos los estados lógicos que tendremos a la salida de los pines de datos (D0 – D3), en función de la tecla pulsada, según el dígito y de la polarización que brindemos al pin OE (Output Enable) que se encarga de habilitar estas salidas para su tratamiento en cualquier tipo de circuitos. Como mencionamos antes, la variedad de posibilidades de aplicación es enorme y como verás luego en el video, con un simple teléfono inalámbrico podemos tener, por citar un ejemplo, un completo radiocontrol multicanal. Nuestro propósito en este artículo es demostrarte lo sencillo que puede ser realizar el comando de un motor, de un vehículo, de una máquina herramienta, del sistema electrónico o electro-mecánico que se te pueda ocurrir de forma remota y sin errores. El circuito que utilizamos es muy simple de comprender y emplea el HT9170 como corazón del desarrollo al que le hemos agregado dos circuitos integrados lógicos CMOS. Un 4511 para utilizarlo como visor del número de tecla pulsada y unas compuertas 4011 para lograr un arreglo específico que nos permita mostrar el “cero” en el display LED que utilizamos. Este es el circuito:

Decodificador de tonos DTMF

La fuente de 5Volts la puedes obtener de cualquier montaje previo que hayas construido o, como en el caso nuestro, quizás tengas y utilices la práctica fuente modular para protoboard que supimos construir hace un tiempo atrás. Luego, las conexiones del 4511 al display de cátodo común no merecen mayores comentarios ya que es un circuito muy simple de implementar, con resistencias de 330 Ohms para regular la corriente que circulará por cada diodo LED que forma el display. Las entradas A, B, C y D del 4511 se conectan a las salidas D0 – D3 del HT9170 y el punto decimal del pequeño display, es energizado por el pin DV del HT9170 que nos indica que una tecla ha sido pulsada. Si bien con este circuito de demostración elemental no tendremos acceso a almacenar los datos leídos, al menos podremos deducir con este punto decimal si una tecla ha sido presionada más de una vez. A cada acción, este LED encenderá brevemente y así sabremos, por ejemplo, si se ingresó un número repetido (4556-0028). Por otro lado, vemos en la tabla de verdad mostrada al principio, que el número cero es devuelto por el HT9170 (el 8870 también lo hace de este modo) como si se tratara de un número 10 (D0 – D3 = L – H – L – H) y los decodificadores de 4 bits a 7 segmentos tradicionales, ofrecen el cero cuando los cuatro bits están en estado bajo. Para el 10 no ofrecen indicación (CMOS 4511) o presentan un caracter que difiere mucho de ser un cero (TTL 7447).

Decodificador de tonos DTMF

Por este motivo, hemos colocado el arreglo de los dos diodos en los pines D1 y D4 que se colocan en estado alto al ingresar el tono correspondiente al 0 (D0 – D3 = L – H – L – H). Estos diodos, ingresan a un par de puertas NAND CMOS 4011 y de allí obtenemos un estado lógico que aplicamos al pin PWDN del HT9170. Al pasar de un estado bajo a otro alto, este pin reinicia el decodificador y nos ofrece la indicación del “cero” en el display, a la vez que nos devuelve el encendido del punto decimal y nos informa que ha ingresado un tono válido. Esta situación no resultará un problema si decides utilizar un microcontrolador para leer los datos, bastará con un evento condicional ante el ingreso del número 10 y los problemas se resolverán en microsegundos. Aquí, sólo con hardware, debemos apelar a otros recursos como el que vimos en el circuito. Imagínate un sistema para un juego donde el más rápido (y más listo) pulsa primero su botón para un concurso de preguntas y respuestas. O cualquier sencillo selector de opciones entre 10 posibles cajas de cobro en un banco o en un mercado. No dejes de observar la versatilidad de este sencillo sistema. Un decodificador de tonos DTMF quizás no te diga mucho, pero las opciones que vamos presentándote pueden despertar tu interés y disparar las ideas de aplicación que estabas buscando para, por ejemplo, encender o apagar luces de tu casa con un teléfono inalámbrico adaptado al control de luminarias en forma remota.

En el video, intentamos mostrarte (con las limitaciones de la cámara) el funcionamiento del sistema. Si en lugar de utilizar un teléfono, decides emplear otros transmisores que envíen tonos DTMF, encontrarás una nueva alternativa de expansión. Esto es, ¿alguna vez has prestado atención a los tonos DTMF que emiten algunos canales de TV, anunciando que termina el espacio de publicidad? De acuerdo, lo habías oído y nunca habías comprendido su significado; ahora ya lo sabes y puedes intentar decodificar el número o texto, procesarlo dentro de un microcontrolador y habilitar o des-habilitar un MUTE o un controlador dinámico de sonido para no tener que subir y bajar el volumen del TV a cada rato. El sistema lo hará por ti gracias a los tonos DTMF. ¿Más aplicaciones? Podría haber centenares y todas las que quieras desarrollar podrás compartirlas en el Foro de Electrónica de NeoTeo, donde te esperamos para distendernos, aprender juntos y divertirnos con el fascinante mundo de la electrónica (¡y sus tonos DTMF!) ¡Te esperamos!


Avatar de Mario
Autor: Mario
  • Anónimo

    es muy buena alternativa para no usar solo el cm8870, en mi caso yo tengo un ht9302g como discador de tonos y es mi TX y como receptor tengo el cm8870 y de hay controlo dispositivos electrónicos, lo que me parece curioso de este proyecto es su conexión a la linea telefonica, esta muy bueno, como siempre felicitaciones Mario.

  • Mark View Race

    Que buen integrado!… va para mi colección… :-)

  • sfdx

    el punto flotante es ideal para saber cuando se pulsa el mismo numero dos veces o mas, dado k el display no produce cambios al pulsar el mismo numero, esta muy bueno¡¡¡ saludo

  • Anónimo

    Muy Bueno.! Decodificaba estos tonos con una entrada analógica de un pic, con un circuito de acoplamiento con resistencias simple, la verdad que muy buen articulo, bien explicado.! Muchas gracias Mario y felicitaciones.!

  • Zerg

    Muchas gracias Mario por la clara y como siempre concisa explicación.
    Saludos

  • Pentaconto

    Mirando el esquema anterior, se puede sustituir la línea telefónica por una alimentación de 12 voltios de continua en serie con una resistencia de 150 a 300 ohmios, y así evitamos tener que usar una línea telefónica convencional para jugar con este integrado.

    Una aplicación que yo le daría: Como buen usuario de los 27 MHz de hace unos cuantos años realicé un invento con un teléfono inalámbrico para usar la emisora de 27 MHz a distancia controlada por un teléfono de estos, conectando la base del teléfono a la emisora a través de una emulación de línea telefónica con algunos detalles más. Pero por la tecnología de la época, funcionaba con marcación por pulsos. Ahora lo podría modernizar para marcación por DTMF. Me guardo esto para cuando tenga tiempo y ganas de hacerlo.

    Por cierto, eso de que se transmiten tonos DTMF en la programación de algunas cadenas de TV para indicar (supongo que) el inicio y final de las pausas publicitarias, supongo que será en Argentina, porque aquí en España nunca lo he oído.

    Saludos

    • Anónimo

      #6
      Muy buenas,

      Alguna idea, enlace o sugerencia para hacer una
      Alarma PIC+DTMF donde el armado y dasarmado de la alarma sea por línea
      telefónica

      "Hice" (retoqué subrutinas de internet) una hace
      tiempo colocando mi telefono de tonos en modo pulsos y capturando el
      protocolo de comunicación por pulsos con un osciloscopio consegui hacer una.

      Mi proposito ahora es hacerla por tonos (DTMF) y poder armar la alarma y desactivarla via movil y por supuesto cuando se active la alarma me llame al teléfono.

      Alguna alma caritativa que me ilumine?

      Gracias

  • gerard

    Muy buena y muy currado!!!
    Lo voy a hacer, pero creo que falta un detalle…
    Has de hacer que se acumule el numero completo y llegara a memorizar unos cuantos de ellos (siempre que este encendido claro).

    Un saludo

  • Pingback: Decodificador de tonos DTMF | Automatismos Mar del Plata