#define RED_PIN 2
#define GREEN_PIN 3
#define BUT_PIN 4
#define reset_PIN 5
#define PZ_PIN 6
uint32_t btnTimer = 0;
bool flag = false;
bool btnStateFlag = false;
bool resetFlag = false;
void setup() {
Serial.begin(9600);
pinMode(BUT_PIN, INPUT);
pinMode(reset_PIN, INPUT);
pinMode(PZ_PIN, OUTPUT);
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
}
void loop () {
if (millis()-btnTimer<500)
tone (PZ_PIN, 500);
if (millis() - btnTimer >= 500 && millis()- btnTimer < 3500)
{
noTone(PZ_PIN);
bool btnState = digitalRead(BUT_PIN);
if (btnState && !flag)
{
flag = true;
btnStateFlag = true;}
}
if (millis()-btnTimer > 3500 && millis()- btnTimer <= 4500)
tone (PZ_PIN, 500);
if (millis()-btnTimer > 4500)
{
noTone(PZ_PIN);
if (btnStateFlag)
{
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(RED_PIN, LOW);
}
else
{
digitalWrite(GREEN_PIN, LOW);
digitalWrite(RED_PIN, HIGH);
}
}
bool resetState = digitalRead(reset_PIN);
if (resetState && !resetFlag)
{
resetFlag=true;
flag=false;
btnStateFlag=false;
digitalWrite(GREEN_PIN, LOW);
digitalWrite(RED_PIN, LOW);
btnTimer = millis();
}
if (resetState && resetFlag)
{
resetFlag=false;
}
}