Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Crear música con Arduino es sencillo, solo es cuestión de generar tonos a partir de ciertas
frecuencias y emitirlas a través de un buzzer o bocina. Tenemos un artículo, donde te
explicamos qué es un buzzer y cómo conectarlo,
Antes de iniciar, debemos conocer algunos conceptos musicales básicos . Cómo aclaración,
no somos músicos, la teoría que exponemos en este artículo la hemos obtenido buscando
información.
Las teclas blancas corresponden a las notas (o notas naturales) y las teclas negras
corresponden a los bemoles o sostenidos.
DO=523.25
DoS=554.37,
RE=587.33,
RES=622.25,
MI=659.26,
FA=698.46,
FAS=739.99,
SOL=783.99,
SOLS=830.61,
LA=880,
LAS=932.33,
SI=987.77,
RE2=1174.66,
FAS2=1479.98,
PAU=30000; //pausa
NOTA: para generar diferentes frecuencias de salida, el PIN donde debe estar conectado
el PIN positivo de buzzer o zumbador debe ser un PIN PWM del Arduino, marcado en la
placa con una tilde (~).
Así mismo, en música, en una partitura, dependiendo de la duración de cada nota se puede
leer con diferentes figuras:
Por ejemplo si establecemos que una negra sea 1 segundo nos quedaría lo siguiente:
Figura Tiempo(ms)
Redonda 4000
Blanca 2000
Negra 1000
Corchea 500
Semicorchea 250
Fusa 125
Semifusa 62
/*
* Conectar un Buzzer al PIN9
* el buzer sonar´500mseg se apagara otros
* 50mseg y el ciclo se repetirá
*/
void setup()
{
pinMode(3, OUTPUT); // Fija el pin 3 como salida.
}
void loop()
{
tone(3, 523.25, 250); // Lanza señal a 523.25Hz por el pin 3 durante 250ms.
}
Si la música con Arduino que queremos crear es una melodía relativamente larga lo mejor
es utilizar arrays para almacenar todas las notas (frecuencias) y todos los tiempos.
Como ejemplo, te dejamos un fragmento del tema principal de la pelpicula de Star Wars
así como el de la Marca del Imperio de la misma película.
Conexión:
Buzzer -> PIN9
LED -> PIN6
/*
/*
* www.ProveedoraCano.com
* Conectar un buzzer al PIN9
* se ejecutará de forma inmediata
* la melodía de Star Wars Marcha imperial
* y tema principal de la película
*/
#define c3 7634
#define d3 6803
#define e3 6061
#define f3 5714
#define g3 5102
#define a3 4545
#define b3 4049
#define c4 3816 // 261 Hz
#define d4 3401 // 294 Hz
#define e4 3030 // 329 Hz
#define f4 2865 // 349 Hz
#define g4 2551 // 392 Hz
#define a4 2272 // 440 Hz
#define a4s 2146
#define b4 2028 // 493 Hz
#define c5 1912 // 523 Hz
#define d5 1706
#define d5s 1608
#define e5 1517 // 659 Hz
#define f5 1433 // 698 Hz
#define g5 1276
#define a5 1136
#define a5s 1073
#define b5 1012
#define c6 955
int melody1[] = { a4, R, a4, R, a4, R, f4, R, c5, R, a4, R, f4, R, c5, R, a4, R, e5, R, e5, R,
e5, R, f5, R, c5, R, g5, R, f5, R, c5, R, a4, R};
int beats1[] = { 50, 20, 50, 20, 50, 20, 40, 5, 20, 5, 60, 10, 40, 5, 20, 5, 60, 80, 50, 20, 50, 20,
50, 20, 40, 5, 20, 5, 60, 10, 40, 5, 20, 5, 60, 40};
void setup() {
pinMode(speakerOut, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
void loop() {
// Melodía1
for (int i=0; i<="" max_count;="" void="" playtone()="" long=""
elapsed_time="0;" if="" (tonem="" style="box-sizing: border-
box;"> 0) {
digitalWrite(led,HIGH);
digitalWrite(led,LOW);
}
else {
for (int j = 0; j < rest_count; j++) {
delayMicroseconds(duration);
}