#define LED1 7
#define LED2 8
#define PB_Switch 2
#define on 0
#define off 1
#define Blink_TIME 300
#define d_time 30
bool RUN_Flag = 0;
bool Last_RUN_Flag = 0;
bool PB_Status = 1;
bool PB_Last_status = 1;
//setup Function
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(PB_Switch, INPUT);
digitalWrite(LED1, off); //turn off when startup.
digitalWrite(LED2, off);
}
//end of setup
void loop() {
check_First_Push();
check_First_Release();
check_Second_Push();
check_Second_Release();
if (RUN_Flag == 1) {
blink_Led();
} else {
digitalWrite(LED1, off); //turn off led.
digitalWrite(LED2, off);
}
}
// check push Button.
void check_First_Push() {
PB_Status = digitalRead(PB_Switch);
static unsigned long PB_Millis = millis();
if ((PB_Status == 0) && (PB_Last_status == 1) && (Last_RUN_Flag == 0)) {
if (millis() - PB_Millis > d_time) {
RUN_Flag = 1;
PB_Last_status = 0;
digitalWrite(LED1, on); //turn on when startup.
PB_Millis = millis();
}
}
}
void check_First_Release() {
PB_Status = digitalRead(PB_Switch);
static unsigned long PB_Millis = millis();
if ((PB_Status == 1) && (PB_Last_status == 0) && (RUN_Flag == 1)) {
if (millis() - PB_Millis > d_time) {
Last_RUN_Flag = 1;
PB_Last_status = 1;
PB_Millis = millis();
}
}
}
void check_Second_Push() {
PB_Status = digitalRead(PB_Switch);
static unsigned long PB_Millis = millis();
if ((PB_Status == 0) && (PB_Last_status == 1) && (Last_RUN_Flag == 1)) {
if (millis() - PB_Millis > d_time) {
RUN_Flag = 0;
PB_Last_status = 0;
PB_Millis = millis();
}
}
}
void check_Second_Release() {
PB_Status = digitalRead(PB_Switch);
static unsigned long PB_Millis = millis();
if ((PB_Status == 1) && (PB_Last_status == 0) && (RUN_Flag == 0)) {
if (millis() - PB_Millis > d_time) {
PB_Last_status = 1;
Last_RUN_Flag = 0;
PB_Millis = millis();
}
}
}
//End of check PB.
//led Blink
void blink_Led() {
static unsigned long Led_Millis = millis();
if (millis() - Led_Millis > Blink_TIME) {
digitalWrite(LED1, !digitalRead(LED1));
digitalWrite(LED2, !digitalRead(LED1));
Led_Millis = millis();
}
}
//End of LED Blink.