Tutto quello che vuoi eseguire ogni x tempo lo devi mettere dentro le linee tratteggiate
non dimenticare di dichiarare:
long previousMillis = 0;
const long interval = 1000;
if(millis()- previousMillis > interval)
{
previousMillis = millis();
//------------------------------------------------
// esegui il codice qui dentro ogni tot ms (che sarebbe la variabile long interval = 1000 = 1 secondo)
//-------------------------------------------------
}
Non ho capito cosa intendi per mettere un timer di spegnimento al sensore, i sensori non si spengono mai, al massimo smetti di eseguire i controlli su di esso.
Se ti servono 2 delay differenti o crei un altro ciclo millis() oppure ci metti un contatore dentro a quello che hai.
Usi la base di intervallo 1000, se ti servono 5 secondi conti fino a 5 dentro al delay fatto con il millis() e poi esegui l'altra funzione.
Con un solo ciclo WithoutDelay ne ottieni 2 senza interruzioni del loop che avresti con delay(1000) o (5000), volendo ne puoi annidiare anche altri, ma poi devi stare attento quando azzeri il conta_cicli, poichè se fai male i calcoli comprometti tutti i ritardi
es:
byte n_cicli; //<<<<< questa non va dentro al void loop()
if(millis()- previousMillis > interval)
{
previousMillis = millis();
//------------------------------------------------inizio delay base 1000
n_cicli++; // incremento il contatore ad ogni secondo
// metti qui il codice da eseguire ogni secondo
// -------------------------------------inizio secondo delay
if(n_cicli == 5 || n_cicli == 10) // se i cicli passati sono 5 quindi 5*1000=5 sec o multipli
{
// metti qui il codice da eseguire ogni 5 secondi
}
// -------------------------------------fine secondo delay
// -------------------------------------inizio terzo delay
if(n_cicli == 10) // se i cicli passati sono 10 quindi 10*1000=10 sec
{
// metti qui il codice da eseguire ogni 10 secondi
n_cicli=0; //quando ho finito di eseguire il codice azzero e ricomincio a contare
}
// -------------------------------------fine terzo delay
//-------------------------------------------------fine delay base 1000
}
ciao