/* On / Off buzzer Turns on an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at https://www.arduino.cc/en/Main/Products This example code is in the public domain. */ #define BUZZER_PIN 9 #define BUTTON_PIN 12 // why do we define these variables here and not insode the loop() function? int cnt=0; int baseFrequency = 440; int buttonState = 0; bool soundOn = false; // the setup function runs once when you press reset or power the board void setup() { Serial.begin(9600); // initialize digital pin for buzzer as an output, and button as an input. pinMode(LED_BUILTIN , OUTPUT); pinMode(BUZZER_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT); } // the loop function runs over and over again forever void loop() { int buttonNewState; buttonNewState = digitalRead(BUTTON_PIN); // this code detects the change in the state of the button if (buttonNewState != buttonState && buttonNewState == 1) { cnt = cnt + 1; Serial.println(cnt); soundOn = ! soundOn; digitalWrite(LED_BUILTIN , soundOn); } buttonState = buttonNewState; Serial.println(soundOn); if ( soundOn ) { // output signal that to the buzzer. tone(BUZZER_PIN, baseFrequency, 200); } delay(500); // wait for a short while } // End!