constexpr byte LED1 = 3;
constexpr byte Level1 = A0;
constexpr byte Buzzer = 2;
constexpr byte Button = 9;
int buttonState = 0;
boolean BuzzerState = false;
unsigned long startMillis;
unsigned long currentMillis;
unsigned long period = 0;
const unsigned long wantedPeriod = 4000;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(Level1, INPUT);
pinMode(Button, INPUT);
pinMode(Buzzer, OUTPUT);
Serial.begin(115200);
startMillis = millis();
}
void loop() {
buttonState = digitalRead(Button);
BuzzerState = false;
if (digitalRead(Level1) == HIGH) {
digitalWrite(LED1, HIGH);
BuzzerState = true;
} else {
digitalWrite(LED1, LOW);
}
if (digitalRead(Button) == HIGH) {
startMillis = millis();
// This makes sure that the delay will become valid
// after the first button press!
period = wantedPeriod;
}
if (millis() - startMillis < period) {
BuzzerState = false;
}
if (BuzzerState == true) {
digitalWrite(Buzzer, HIGH);
} else {
digitalWrite(Buzzer, LOW);
}
}