Música con Arduino

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.

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.



Si quieren comprar su tableta de Arduino les recomiendo comprarlo en la siguiente liga Tarjeta De Desarrollo Uno R3 Compatible Arduino + Cable Usb  y los sensores les recomiendo comprarlos en kit Súper Kit De Inicio Lafvin Uno Project Para Arduino Uno R3 Mega2560 Mega328 Nano Con Tutorial

Comentarios

Entradas más populares de este blog

Ejemplo Macro en Word

Macro de Excel para abrir archivo csv

Como ejecutar SQL desde Tareas Programadas de Windows