Aiuto per utilizzo libreria sleep ed Interrupt

Salve,
ho cercato online vari esempi per l'utilizzo di queste librerie ma utilizzano sempre un wakeup hardware mentre a me servirebbe uno software e spiego:
nel loop deve eseguire una serie di azioni della durata di X secondi, mettersi in modalità risparmio energetico per Y secondi e poi riprendere.
Mi potete dare una mano?

Sono andato un pò avanti ed ho visto la libreia LowPower.h

// **** INCLUDES *****
#include "LowPower.h"


const byte LED = 9;

void setup() {
  // put your setup code here, to run once:
  digitalWrite (LED, LOW);
  delay(500);
  digitalWrite (LED, HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite (LED, LOW);
  delay(1000);
  eseguioperazioni();
  sleep();
}

void sleep()
{
  for (int i = 0; i < 5; i++) { 
     // ATmega328P, ATmega168
      LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);  
  }
}

void eseguioperazioni()
{
 digitalWrite (LED, HIGH);
}

in pratica spegno il led, lo accendo prima del powerdown ed infatti rimane acceso per 40 secondi e poi si spegne.
Da quanto ho capito è normale che rimanga acceso il led perchè i pin rimangono nell'ultimo stato, ma anche l'esp8266 collegato al 3,3 dell'UNO quando và in modalità powerdonw nn si spegne e penso che continui a consumare o no?