Música con Arduino

Share this Post Share to Facebook Share to Twitter Email This Pin This

En este post les quiero compartir un ejemplo de como podemos unir la música con la programación 😆, pueden hacer su propia serie navideña o agregar las mañanitas o su canción favorita.

La música son frecuencias de sonido diferente y en cada nota musical tiene un valor diferente, encontré en Wikipedia una tabla con las frecuencias por ejemplo para afinar un piano y ahí están los valores de cada nota.


Hay toda una explicación matemática de como obtener el dato de frecuencia de cada nota musical, yo encontré la de Javier Montero


Él explica como obtener una razón entre las notas y como realizar la multiplicación para llegar a cada nota musical

432 x 1.0594623 = La#
432 x 1.0594623 x 1.0594623 = Si
432 x 1.0594623 x 1.0594623 x 1.0594623 = Do

Ahora teniendo esta información vamos hacer un programa en C++ vamos a utilizar:

  •  Placa de Arduino Uno
  •  Un buzzer (es una pequeña bocinita) encontré una liga donde explica bien que es luisllamas.es

Voy a utilizar como referencia de conexión el diagrama de mi kit de Elegoo

La foto ya armado

El programa de música con Arduino en C++

int buzzer = 12;//the pin of the active buzzer

const int notas[] = {261.63, 277.18, 293.96, 311.13, 329.63, 349.23, 369.99, 392, 415.30, 440, 466, 493.88};

const int man[]= {293.66,293.66,391.99,415.30,369.99,391.99,440,369.99,391.99,440,493.88,391.99,440,493.88,261.62,261.62,261.62,493.88,440,391.99,369.99,440,391.99,369.99,391.99,440,493.88,261.62,440,391.99,493.88,440,369.99,369.99,391.99,493.88,391.99,493.88,440,369.99,369.99,391.99,493.88,391.99,391.99,391.99,261.62,261.62,261.62,261.62,493.88,391.99,369.99,391.99,440,493.88,261.62,440,391.99,293.66,391.99,369.99,391.99,391.99,369.99,391.99,391.99,391.99,493.88,440,391.99,369.99,391.99,440,440,293.66,293.66,391.99,440,440,391.99,440,440,493.88,261.62,493.88,493.88,440,440,369.99,391.99,440,391.99,369.99,329.62,369.99,391.99,440,391.99,440,493.88,261.62,493.88,261.62,261.62,493.88,261.62,493.88,440,391.99,369.99,391.99,440,493.88,493.88,493.88,261.62,493.88,493.88,440,440,369.99,391.99};

char valor = 'B';

void setup()

{

 pinMode(buzzer,OUTPUT);//initialize the buzzer pin as an output

}

void loop()

{

  switch ( valor )

      {

         case 'A':

          /*notas*/

           for (int i = 0; i < 10 ; i++)

             //pasamos por todas las notas

           {

             tone(buzzer, notas[i],250);

             delay(1000);

           }

          noTone(buzzer);

          break;

         case 'B':

         /*mañanitas*/

          for (int i = 0; i < 123 ; i++)

             //pasamos por todas las notas

           {

             tone(buzzer, man[i],(60000/120)/2);

             delay((60000/120)+50);

           }

          noTone(buzzer);

         break;

      }   

Un vídeo de como lo escuchamos

Vídeo de las notas musicales

Vídeo de las mañanitas

Podemos hacer un programa uniendo el teclado Hexadecimal y que cada tecla sea una melodía diferente. Pueden intentarlo.

El programa del teclado Hexadecimal lo vimos en esta liga http://www.programacionparatodos.com/arduino-y-teclado.html

Espero les haya gustado la publicación, lo intente y nos compartan, recuerden pueden seguirnos en este blog o en Facebook.

No hay comentarios.:

Publicar un comentario