So I have a project and my buzzer needs to play music. When the button is pressed the first time, it will play, and the second time, the buzzer will stop. The problem is that my buzzer won't stop playing on the second button push or is delayed. Why is that?
int buz2 = 6;
int on = 7;
int ons;
int val = 0;
//tunes
int c = 262;
int d = 294;
int e = 330;
int f = 349;
int g = 392;
int a = 440;
int b = 494;
int C = 523;
void setup() {
pinMode(buz2, OUTPUT);
}
void loop() {
ons = digitalRead(on);
if(ons == LOW){
val++;
delay(50);
}
if (val == 1) {
buzzer();
delay(100);
}
else {
val = 0;
noTone(buz2);
digitalWrite(buz2, LOW);
}
}
void buzzer() {
tone(buz2, f, 120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, f, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, f, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, f, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, f, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, f, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
//new
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
//new
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, e, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, e, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, e, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, e, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, e, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, a, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, c, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, e, 120);
delay(120);
noTone(buz2);
delay(120);
//new
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, g, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, b, 120);
delay(120);
noTone(buz2);
delay(120);
tone(buz2, d, 120);
delay(120);
noTone(buz2);
delay(120);
}