Io invece trovo che si risolverebbe ottimamente con la funzione millis() e variabili falg;
Sul forum o in rete, trovi esempi di come creare un contatore di tempo con la funzione millis().
E una variabile flag, è una variabile che assume due valori vero o falso, uno o zero.
Se tu metti la sequenza di impulsi dentro un if(flag), gli impulsi saranno eseguiti solo quando la variabile vale 1, e non eseguiti quando vale zero.
Poi crei un contatore di tempo con millis(), che ogni 15 minuti inverte il valore della variabile flag, quindi per 15 minuti esegue gli impulsi, per quindi minuti non esegue.
Poi un secondo contatore e una seconda variabile flag, che conta un ora, eseguo tutto dopo un ora cesso dei eseguire.
Ti posso aiutare, ma prima perché tu possa imparare, e perché tu possa avere soddisfazione del tuo lavoro, è meglio se provi a realizzarlo da solo ![]()