Suppose I have a typical setup/loop style sketch, such as this one which turns on an LED when a button is pressed.
How do I modify this so that it enters low power mode, awakes on the button press, and puts itself back into low power mode when its logic has finished?
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
// desired: enter low power mode here
}
void loop() {
int buttonState = digitalRead(buttonPin);
// desired: awake from low power mode here
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
}
// desired: back to low power mode here
}