// Ex 7
#include <avr/sleep.h> // Library for sleep modes
int buttonPin = 2; // Pin connected to the push button
int ledPin = 13; // Pin connected to the LED (built-in LED)
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(buttonPin) == HIGH) {
Serial.println("Entering Power-Down Mode...");
digitalWrite(ledPin, HIGH); // Turn on the LED before sleep
delay(500); // Short delay to see the LED on
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // Set the power-down mode
sleep_enable(); // Enable sleep mode
sleep_mode(); // Enter sleep mode
// The code will resume here after waking up from sleep
sleep_disable(); // Disable sleep mode after waking up
Serial.println("Exiting Power-Down Mode...");
digitalWrite(ledPin, LOW); // Turn off the LED after waking up
}
// Continue other operations
delay(1000); // Regular operation delay
}