const byte debounce_delay = 200;  //Time between first and second check
const byte btn_pin = 2;
const byte ledPin = 15;
bool btn_state = HIGH;
bool btn_prev = HIGH;
bool stateLED = LOW;
unsigned long last_debounce_time = 0;  //Gets used as a timestamp
volatile byte state = LOW;

void setup() {
  Serial.begin(115200);
  pinMode(btn_pin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(btn_pin), ISRbtn, FALLING);
  last_debounce_time = 0;
 
}

void ISRbtn() {
  
  if (millis() > last_debounce_time + debounce_delay) {  
   last_debounce_time = millis();
   GreenLed();

  }
  //Remember the previous state for the next loop

}

void GreenLed() {
  stateLED = !stateLED;
}


void loop (){
   digitalWrite(ledPin, stateLED);

}
