Dormir y despertar arduino mediante DS3231

Buenas, no logro ver el error para lograr que se ejecute el codigo a mi gusto, la idea es tener despierto a arduino durante unos x segundos, minutos o horas y dormirlo durante otros x segundos, minutos, horas …, he encontrado este codigo en un enlace de youtube, he echo varias pruebas mediante las instrucciones de la libreria, pero, no lo logro entender. Gracias.

#include <DS3231.h>
//#include <DS3231.h>
#include <Wire.h>
#include <avr/sleep.h>

int wakePin = 2; // pin used for waking up
int led=13;

DS3231 clock;
RTCDateTime dt;

void setup()
{
Serial.begin(9600);
Serial.println(“Initialize DS3231”);
delay(100);
clock.begin();
pinMode(wakePin, INPUT_PULLUP);
pinMode(led, OUTPUT);

clock.armAlarm1(false);
clock.armAlarm2(false);
clock.clearAlarm1();
clock.clearAlarm2();

//clock.setAlarm1(0, 0, 0, 5, DS3231_EVERY_SECOND);
//clock.setAlarm2(0, 0, 1, DS3231_EVERY_MINUTE);
//clock.setAlarm1(0, 0, 0, 50, DS3231_MATCH_S);
//clock.setAlarm2(0, 0, 1, DS3231_EVERY_MINUTE);
attachInterrupt(0,wakeUpNow, LOW);

checkAlarms();
}

void checkAlarms()
{
RTCAlarmTime a1;
RTCAlarmTime a2;

if (clock.isArmed1())
{
a1 = clock.getAlarm1();

Serial.print("Alarm1 is triggered ");
switch (clock.getAlarmType1())
{
case DS3231_MATCH_S:
Serial.print(“when seconds match: “);
Serial.println(clock.dateFormat(”__ ::s”, a1));
delay(100);
break;
default:
Serial.println(“UNKNOWN RULE”);
break;
}
}
}

void wakeUpNow()
{
Serial.println(“Woke up”);
delay(100);
}

void sleepNow()
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
attachInterrupt(0,wakeUpNow, FALLING);
sleep_mode();

sleep_disable();
detachInterrupt(0);
}

void loop()
{
dt = clock.getDateTime();
Serial.println(clock.dateFormat(“d-m-Y H:i:s - l”, dt));
delay(100);
if (clock.isAlarm1())
{
Serial.println(“ALARM 1 TRIGGERED!”);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
Serial.println(“Entering sleep”);
delay(100); // sleep function called here
sleepNow();
}
delay(900);
}