Necesito que la canción o melodia suene cuando se pulsa un número de veces el pulsador en el mismo led.. en mi caso 8 veces el led Verde... y que suene una melodia o canción, como puedo programar eso?
Mi código es el siguiente:
int leds []={5,6,7,8,9};
int n=0;
int tiempo=400;
int zumbador=10;
int pulsador=11;
int boton=0;
int melodia[] = {660,660,660,510,660,770,380,510,380,320,440,480,450,430,380,660,760,860,700,760,660,520,580,480,510,380,320,440,480,450,430,380,660,760,860,700,760,660,520,580,480,500,760,720,680,620,650,380,430,500,430,500,570,500,760,720,680,620,650,1020,1020,1020,380,500,760,720,680,620,650,380,430,500,430,500,570,585,550,500,380,500,500,500,500,760,720,680,620,650,380,430,500,430,500,570,500,760,720,680,620,650,1020,1020,1020,380,500,760,720,680,620,650,380,430,500,430,500,570,585,550,500,380,500,500,500,500,500,500,500,580,660,500,430,380,500,500,500,500,580,660,870,760,500,500,500,500,580,660,500,430,380,660,660,660,510,660,770,380};
int duracaodasnotas[] = {100,100,100,100,100,100,100,100,100,100,100,80,100,100,100,80,50,100,80,50,80,80,80,80,100,100,100,100,80,100,100,100,80,50,100,80,50,80,80,80,80,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,150,200,80,80,80,100,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,150,200,80,80,80,100,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,100,100,100,60,80,60,80,80,80,80,80,80,60,80,60,80,80,80,80,80,60,80,60,80,80,80,80,80,80,100,100,100,100,100,100,100};
void setup()
{ for (n=0; n<5; n++) {
pinMode(leds[n], OUTPUT);
};
pinMode(zumbador, OUTPUT);
pinMode(pulsador, INPUT);
}
void compruebaacierto()
{ boton = digitalRead(pulsador);
if(boton==HIGH && n==2) {
digitalWrite (zumbador, HIGH);
for (int nota = 0; nota < 156; nota++) {
int duracaodanota = duracaodasnotas[nota];
tone(zumbador, melodia[nota],duracaodanota);
int pausadepoisdasnotas[] ={150,300,300,100,300,550,575,450,400,500,300,330,150,300,200,200,150,300,150,350,300,150,150,500,450,400,500,300,330,150,300,200,200,150,300,150,350,300,150,150,500,300,100,150,150,300,300,150,150,300,150,100,220,300,100,150,150,300,300,300,150,300,300,300,100,150,150,300,300,150,150,300,150,100,420,450,420,360,300,300,150,300,300,100,150,150,300,300,150,150,300,150,100,220,300,100,150,150,300,300,300,150,300,300,300,100,150,150,300,300,150,150,300,150,100,420,450,420,360,300,300,150,300,150,300,350,150,350,150,300,150,600,150,300,350,150,150,550,325,600,150,300,350,150,350,150,300,150,600,150,300,300,100,300,550,575};
delay(pausadepoisdasnotas[nota]);}
noTone(zumbador);
digitalWrite (zumbador, LOW);
tiempo=tiempo-50;
if (tiempo<1){ tiempo=400;}
}
}
void compruebaacierto0() {
if(digitalRead(pulsador)==HIGH &&n==0){
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador,HIGH);
delay (300);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
tiempo=tiempo-199;
if(tiempo<1){ tiempo=400;}
}
}
void compruebaacierto1() {
if(digitalRead(pulsador)==HIGH &&n==1){
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador,HIGH);
delay (300);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
tiempo=tiempo-199;
if(tiempo<1){ tiempo=400;}
}
}
void compruebaacierto3() {
if(digitalRead(pulsador)==HIGH &&n==3){
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador,HIGH);
delay (300);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
tiempo=tiempo-199;
if(tiempo<1){ tiempo=400;}
}
}
void compruebaacierto4() {
if(digitalRead(pulsador)==HIGH &&n==4){
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador,HIGH);
delay (300);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
delay (100);
digitalWrite(zumbador, HIGH);
delay (100);
digitalWrite(zumbador, LOW);
tiempo=tiempo-199;
if(tiempo<1){ tiempo=400;}
}
}
void loop(){
for(n=0; n<5; n++) {
digitalWrite (leds[n], HIGH);
delay(tiempo); compruebaacierto();
compruebaacierto0();compruebaacierto1();compruebaacierto3();compruebaacierto4();
digitalWrite(leds [n], LOW);
delay(tiempo);
}
}
Lo que pasa es que suena la melodía... cuando pulso la 1 vez en el led... y así sucesivamente.. y me gustaría que sonase cuando llege a 8 pulsaciones.