MATERIALES QUE SE USARON
- 1 Piezo (Buzzer)
// LA PANTERA ROSA
#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 c4s 3607 // 277,183 Hz
#define d4 3401 // 294 Hz
#define d4s 3214 // 311,127 Hz
#define e4 3030 // 329 Hz
#define f4 2865 // 349 Hz
#define f4s 2702 // 369 Hz
#define g4 2551 // 392 Hz
#define g4s 2407 // 405 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
#define f5 1433
#define g5 1276
#define a5 1136
#define a5s 1073
#define b5 1012
#define c6 955
#define R 0//defino el silencio
int salida = 2;//pin de salida
void setup() {
pinMode(salida, OUTPUT);
}
//declaro la cancion en melodia con las notas y el tiempo de duracion
//super mario
int melody[] = {R,c4s,d4,d4s,e4,R,c4s,d4,d4s,e4,R,e4,d4s,d4,c4s,R,c4s,d4,d4s,e4,R,R,d4s,e4,R,f4s,g4,R,d4s,e4,f4s,g4,c5,b5,d4,g4,b4,a4s,R,a4s,b4,f4s,e4,f4s,R};
int beats[] = {16,16,16,16,224,128,16,16,16,224,128,16,16,16,224,16,16,16,16,128,192,16,16,32,16,16,32,16,16,16,16,16,16,16,16,16,16,74,10,10,10,10,10,74,220};
int tamanoTotal = 45; //tamaño de la cancion
long tiempo = 30000;//defino el tiempo para cada toque
int pause = 1000; //el tiempo para volver a reproducir
int rest_count = 10; // declaro variables para la reproduccion
int toneM = 0;
int beat = 0;
long duration = 0;
//metodo que reproduce la cancion nota por nota
void playTone() {
long elapsed_time = 0;// el tiempo que va corriendo
if (toneM > 0) {
while (elapsed_time < duration) {//mientras que llegue al tiempo esperado
digitalWrite(salida,HIGH);
delayMicroseconds(toneM /5);
digitalWrite(salida, LOW);
delayMicroseconds(toneM /5);
elapsed_time += (toneM);//sumo el tono o su frecuencia para el tiempo
}
}
else {
for (int j = 0; j < rest_count; j++) {
delayMicroseconds(duration); //cuando termine de reproducir la cancion espero unos segundos
}
}
}
void loop() {
for (int i=0; i
toneM = melody[i];//saco cada nota con su respectivo tiempo
beat = beats[i];
duration = beat * tiempo; // Set up timing
playTone();
delayMicroseconds(pause);
}
}