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 armadoEl 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
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
Publicar un comentario