#include "pitches.h" //se incluye una libreria que contiene las notas y frecuencias
const int pulsador= 7;
const int ALTAVOZ= 8;
//Nota de la melodia "night flower"
/*LA, SI, DO', MI', LA, SI, DO', MI', RE', DO', RE', LA,
LA, SI, DO', MI',LA, SI, DO', MI', RE', DO', LA', SOL', LA', MI'*/
const int melodia[]= { NOTE_A4, NOTE_B4, NOTE_CS5, NOTE_E5, NOTE_A4, 0, NOTE_B4,
NOTE_CS5, NOTE_E5, NOTE_DS5, NOTE_CS5, NOTE_DS5, NOTE_A4,
NOTE_A4, NOTE_B4, NOTE_CS5, NOTE_E5, NOTE_A4, NOTE_B4,
NOTE_CS5, NOTE_E5, NOTE_DS5, NOTE_CS5, NOTE_AS4, NOTE_GS4,
NOTE_AS4, NOTE_E5};
const int duraciones[] = { // array con la duracion de cada nota
25, 25, 25, 10, 25, 100, 25, 25, 25, 15, 25, 25, 6, 25, 25, 25, 10, 25, 25, 25, 30, 25, 25, 30, 25, 10, 7};
void setup() {
pinMode(pulsador, INPUT); // pin 2 como entrada
pinMode(ALTAVOZ, OUTPUT); // pin 8 como salida
}
void loop() {
if(digitalRead(pulsador)== LOW) { // si se presiona el pulsador
for (int i = 0; i < 27; i++) { // bucle se repite 13 veces por haber 13 notas en la melodía
int duracion =(5000) / duraciones[i]; // duracion de la nota en milisegundos
tone(ALTAVOZ, melodia[i], duracion); // ejecuta el tono con la duracion
int pausa = duracion * 1.50; // calcula pausa
delay(pausa); // demora con valor de pausa
noTone(ALTAVOZ); // detiene reproduccion de tono
}
}
}