/**------------------Tercer circuito propuesto-----------------
Autor: Eduardo Luis Mamani Roque
Curso: E-Learning
Docente: Jhon Monrroy Barrios
**/
const int pinZumba = 13; //Pin de conexión al zumbador
const int pinBoton = 2; //Pin de conexión al Pulsador
const int pinLed = 9; //Pin de conexión al LED
/*Notas musicales tomadas de:
https://inputmakers.com/componentes/melodia-de-star-wars-con-arduino-y-zumbador
*/
//Creamos un array de enteros que representan las frecuencias de tone
int notas[] = {440, 440, 440, 349, 523, 440, 349, 523, 440, 659, 659, 659, 698,
523, 415, 349, 440, 440, 349, 261, 440, 523, 440, 880, 440, 440, 880, 830, 783,
740, 698, 740, 455, 622, 587, 554, 523, 466, 523, 349, 415, 349};
//Creamos un array de enteros que representan las duraciones de tone
int duraciones[] = {500, 500, 500, 350, 150, 500, 350, 150, 1000, 500, 500, 500,
350, 150, 500, 350, 150, 1000, 500, 375, 125, 375, 125, 1000, 500, 350, 150, 500,
250, 250, 125, 125, 250, 250, 500, 500, 250, 250, 250, 250, 125, 125, 250, 500,
375, 125};
void setup() {
pinMode(pinZumba, OUTPUT); //Pin del zumbador configurado como salida digital
pinMode(pinBoton, INPUT); //Pin del pulsador configurado como entrada digital
pinMode(pinLed, OUTPUT); //Pin del Led configurado como salida digital
}
void loop() {
if(digitalRead(pinBoton)==true){ //Testeamos el estado del pin del pulsador
delay(50); //Antirrebote para evitar falsas lectura
digitalWrite(pinLed, HIGH); //Encendemos el LED
starwars(); //Llamamos la función que emite los tonos
digitalWrite(pinLed,LOW); //Apagamos el LED
}
}
//Función que no retorna variables que permite leer los elementos de los arrays
void starwars(){
for (int i = 0; i < sizeof(notas) / sizeof(notas[0]); i++) {
tone(pinZumba, notas[i], duraciones[i]); //itera cada elemento de los arrays
delay(duraciones[i] + 50); //a cada iteración le adiciona 50 ms
}
}