#include <avr/sleep.h>
#define BUTTON_PIN 2
#define LED_PIN 13
volatile bool wakeup = false;
void wakeUp()
{
wakeup = true;
}
void setup()
{
Serial.begin(96000);
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
digitalWrite(LED_PIN, HIGH);
Serial.println("ACTIVE MODE");
delay(5000);
Serial.println("ENTERING SLEEP MODE");
digitalWrite(LED_PIN, LOW);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN),
wakeUp,
FALLING);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_mode();
sleep_disable();
Serial.println("WOKE UP");
digitalWrite(LED_PIN, HIGH);
}
void loop()
{
}