Inicio » Electronica » Arduino » Módulo de sonido (zumbador)

Módulo de sonido (zumbador)

Aprende a utilizar el módulo de sonido (zumbador pasivo). El robot DYOR utiliza este módulo para generar sonidos, crear partituras musicales o reproducir algunas ya existentes, así como poder reproducir voz. Principio de funcionamiento, diagramas de conexión y ejemplos de programación con Facilino y Arduino.

¿Cómo funciona?

Para el sonido se utiliza un zumbador pasivo que se basa en el principio de electricidad piezoeléctrica de forma que una corriente eléctrica es capaz de generar una presión mecánica sobre una membrana que puede vibrar a diferentes frecuencias produciendo sonido. El módulo zumbador del robot DYOR incorpora internamente una resistencia que hace falta para limitar la corriente con lo que su conexión a Arduino es directa.

Por ejemplo, para crear notas musicales, debemos tener en consideración la frecuencia de cada una de ellas, tal y como se muestra a continuación:

Nota Frecuencia (Hz)
DO 261,6
DO#/REb 277,1
RE 293,6
RE#/MIb 311,1
MI 329,6
FA 349,2
FA#/SOLb 369,9
SOL 391,9
SOL#/LAb 415,3
LA 440
LA#/SIb 466,1
SI 493,8

Aquí podéis ampliar la información al respecto de la frecuencia de las notas musicales del resto de notas musicales.

La duración de las notas musicales no tiene una asignación pre-fijada en milisegundos ya que esta depende del compás de la partitura. No obstante, se deben respetar las relaciones de duración de las diferentes figuras musicales. Así pues, lógicamente una redonda dura cuatro veces más que una negra.

Conexión

Para crear notas musicales, la conexión del módulo de zumbador requiere de una salida digital (podemos conectar a cualquiera de los pines disponibles en Arduino para este propósito), además de la alimentación y la masa:

  • VCC: Alimentación. Conectar a los pines de +5V.
  • GND: Masa. Conectar a los pines 0V (GND).
  • S: Salida digital. Conectar a los pines digitales de Arduino.

A continuación se muestra un ejemplo de conexión a Arduino Nano v3.0 con placa de expansión. La señal S se ha conectado al pin 8 de Arduino. Los pines VCC y GND se pueden conectar a cualquiera de las filas de alimentación y masa del módulo de expansión de entradas de Arduino Nano v3.0:

Aquí podéis descargar el fichero Fritzing:

De forma todavía experimental, se puede reproducir voz a través del zumbador, si bien existen limitaciones, ya que sólo funciona utilizando el pin 3, ya que se requiere de una señal PWM generada desde este pin.Por tanto, la conexión, en el caso de querer reproducir voz tendría que ser al pin 3, en vez del pin 8.

Programación

Se ha desarrollado un conjunto de funcionalidades que permiten generar notas musicales de forma sencilla, melodías e incluso seleccionar entre algunas melodías predefinidas. Para evitar estar reproduciendo los sonidos de forma continuada en el bucle principal, las llamadas para generar sonidos en el zumbador se han hecho en la parte del inicio, si bien lógicamente puede utilizarse en cualquier parte del código.

En el primer ejemplo se generan notas musicales de forma individual, seleccionando el tipo de nota, su duración y si tiene ligadura (conectando con la siguiente nota musical). El pin de conexión del zumbador es el pin 8 de Arduino.

Aquí podéis descargar el fichero Facilino:

Como se puede observar, la forma de programación es sencilla pero poco intuitiva para diseñar melodías más complejas. Por este motivo se ha diseñado un bloque que permite introducir melodías. La melodía no es más que una cadena de texto con la lista de notas musicales que queremos reproducir. Para cada nota musical debemos especificar, separado por comas, la frecuencia de la nota y su duración en milisegundos. Se proporcionan un conjunto de bloques que permiten concatenar una nota tras otra dando el aspecto de partitura (simple). El siguiente código genera las mismas notas musicales (a excepción del Do agudo) que en el ejemplo anterior, pero como una melodía:

Aquí podéis descargar el fichero Facilino:

La principal limitación, por el momento, es que la cantidad de notas musicales está todavía algo limitada, pero se espera poder ampliar este aspecto en breve.

Finalmente, otra opción que resulta bastante interesante es poder utilizar alguna melodía predefinida (en breve también se espera ampliar el abanico de melodías y sonidos disponibles). En el siguiente ejemplo el altavoz reproduce una parte de la 5ª sinfonía de Beethoven:

Aquí podéis descargar el fichero Facilino:

De forma todavía experimental, se puede reproducir voz a través del zumbador a partir de un conjunto de palabras predefinidas. Una de las consideraciones importantes es que en este caso, el pin de conexión del zumbador debe ser necesariamente el pin 3 de Arduino, a través del cual que generará una señal PWM con las frecuencias especificadas. Se preveé en un futuro poder grabar tus propios sonidos y reproducirlos posteriormente. La siguiente figura muestra el diagrama de conexión:

Aquí podéis descargar el fichero Fritzing:

El siguiente código de Facilino reproduce el sonido «Danger, motor is on Fire!»:

Aquí podéis descargar el fichero Facilino: