#define LED_PIN 3
#define button_PIN 2
static bool LED_State = false;
volatile bool flag = false;
unsigned long previousTime = 0;
unsigned long debounce = 50;
void setup() {
// put your setup code here, to run once:
pinMode(LED_PIN, OUTPUT);
pinMode(button_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(button_PIN),button_press,RISING);
Serial.begin(9600);
}
void button_press(){
flag = true;
}
void loop() {
// put your main code here, to run repeatedly:
//digitalWrite(LED_PIN, HIGH);
//int reading = digitalRead(button_PIN);
if(millis()-previousTime>debounce){
previousTime = millis();
if(digitalRead(button_PIN)&&flag){
Serial.println("1");
LED_State = !LED_State;
digitalWrite(LED_PIN,LED_State);
flag = false;
}
}
}