inserimento subroutine

armandinok:
Ho letto un po' di informazioni sui millis praticamente (se considero che ogni fase del giorno dura 10000 ms)
Se il tempo è minore di 10000
Accendi le luci notte
....
E alla fine azzero il contatore millis

E' una possibilità. Ma normalmente il contatore millis non si azzera mai esplicitamente. Ci si annota il tempo attuale nel momento da cui cui si vuole misurare il tempo:

inizio = millis();

e si calcola il tempo trascorso da quel momento:

trascorso = millis() - inizio;

Quando è trascorso si fa quello che serve (ed eventualmente se c'è bisogno ci si annota di nuovo il tempo attuale).

Se serve tenere conto di più tempi indipendenti si usano diverse variabili "inizio".

NOTA: tutte le variabili che coinvolgono millis e i tempi calcolati sono normalmente di tipo unsigned long (o uint32_t), che permettono di gestire tempi fino a circa 1192 ore.