Cómo tocar notas musicales en Arduino

Agregar sonido a Arduino es divertido y conectar los altavoces con Arduino es relativamente simple. Puede conectar un altavoz directamente al Arduino o conectar un altavoz a través de un circuito amplificador. En ambos casos, Arduino puede generar audio digital desde cualquier GPIO. La necesidad o no de un circuito amplificador depende completamente del altavoz seleccionado. No es necesario un circuito amplificador si el altavoz es lo suficientemente potente como para generar sonidos audibles.

Arduino no puede procesar archivos de audio de forma independiente; Incluso puede generar audio digital para muchas notas musicales. Se requiere un circuito decodificador de audio externo para reproducir archivos de audio desde una fuente como archivos WAV o MP3 en una tarjeta SD. No se requieren circuitos adicionales excepto un altavoz adecuado para reproducir tonos melódicos. En este proyecto, tocaremos notas musicales en Arduino y componeremos música para una canción en Arduino.

Componentes necesarios

  1. Arduino UNO x1
  2. Altavoz 4Ω 50W x1
  3. Cables de conexión/cables de puente

Conexiones de circuito
En este proyecto, estamos conectando un altavoz directamente al Arduino. El altavoz utilizado en este proyecto es un altavoz de 3 pulgadas, 4 ohmios y 50 vatios que produce suficientes sonidos audibles. El altavoz tiene dos terminales. Conecte un terminal al pin de tierra de Arduino y el otro terminal a cualquier GPIO. Aquí el otro terminal está conectado al pin D8 de Arduino UNO.

Función de tono
La función de tono se utiliza para reproducir tonos musicales en Arduino. La función genera una onda cuadrada de la frecuencia especificada en un pin con un ciclo de trabajo del 50 por ciento. La onda cuadrada de un GPIO se puede utilizar para reproducir tonos en un altavoz o timbre. La función le permite reproducir tonos en un solo pin a la vez. No es posible generar tonos inferiores a 31 Hz en Arduino. Se sabe que la función interfiere con la salida PWM en los pines D3 y D11, por lo que debe usarse con precaución cuando se usa junto con la salida PWM. La función tiene los siguientes prototipos.

tono (pin, frecuencia)
tono (pin, frecuencia, duración)

Si no se especifica la duración, el tono se reproducirá hasta que se realice una llamada a la función noTone. Si se establece la duración, el tono finalizará dentro del período especificado en milisegundos.

Tocando la escala de Do mayor en Arduino
Do mayor es una escala mayor basada en C. Comprende los tonos C, D, E, F, G, A y B. En la música vocal indostánica, estos tonos se conocen como Sa, Re, Ga, Ma, Pa, Da, Ni y Sá. Estos tonos tienen las siguientes frecuencias:

C4/Sa: 262
D4/Re: 294
E4/Ga: 330
F4/Ma: 349
G4/Pa: 392
A4/Da: 440
B4/Ni: 494
C5/Sa: 532

Realice las conexiones del circuito y cargue el siguiente boceto en el Arduino.

El esquema comienza con la definición de constantes para las notas en la escala de Do mayor. Los tonos se almacenan en una matriz. Las notas se generan llamando a la función de tono manteniendo medias notas para cada nota. La duración del tono se establece al mínimo para todos los tonos, es decir, 1000/2 = 500 milisegundos. En la función de configuración, el pin 8 se configura como una salida digital para generar ondas cuadradas para sintonización. Los tonos se finalizan llamando a la función noTone después de que se hayan reproducido todos los tonos. El siguiente video muestra la reproducción de tonos de Do mayor en Arduino.

Tocando más notas en Arduino
Puedes tocar muchas notas diferentes para el mismo tono cambiando la duración del tono. Todas las notas posibles, como nota entera, blanca, negra, octava, sexta, etc., se pueden tocar para cada tono simplemente cambiando la duración del tono. Todos los tonos se tocaron en blancas en el ejemplo anterior para la escala de Do mayor. Envíe el siguiente boceto al Arduino, que reproduce los mismos tonos que la escala de Do mayor pero en notas diferentes para producir música para el tema de la película Star Wars.

El boceto toca las mismas notas que la escala de Do mayor, pero con diferentes notas o duraciones de tono. De esta manera, el Arduino reprodujo música para el tema de la película Star Wars. El siguiente video muestra cómo tocar notas con variación de notas en Arduino.


Reproducción de frecuencias de audio continuas
Arduino no sólo toca notas musicales discretas. Puede reproducir frecuencias continuas como la de una sirena de policía. El siguiente boceto genera una onda de sonido que varía continuamente, en lugar de generar notas musicales discretas.

El boceto cambia continuamente la frecuencia de salida para generar el sonido de una sirena de policía. El siguiente video muestra cómo tocar una sirena de policía en Arduino.

Tocar notas musicales de una canción en Arduino
Tocar diferentes tonos en diferentes notas puede generar música para cualquier canción en Arduino. El siguiente boceto genera música para una canción en Arduino tocando diferentes tonos en diferentes notas.

El boceto anterior genera música para una canción tocando muchos tonos diferentes en diferentes notas, según la partitura de piano de la canción. De manera similar, la música de cualquier canción se puede sintetizar en Arduino tocando notas individuales. Sin embargo, no es posible tocar acordes de piano en Arduino. Los acordes de piano tienen más de una nota individual reproducida al mismo tiempo y la función de tono puede reproducir solo un tono o nota a la vez. El siguiente vídeo muestra la interpretación de una canción compuesta de notas individuales.

Conclusión
Es posible generar una variedad de tonos de melodía en Arduino tocando diferentes tonos en diferentes notas. De esta forma, Arduino puede sintetizar cualquier canción, siempre que contenga notas individuales.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.