aiuto compilazione sketch

Buongiorno ragazzi, dopo vari tentativi sono riuscito a compilare uno sketch che mi permette di attivare un relè ad una determinata ora del giorno, adesso però non riesco a capire come fare per far attivare lo stesso relè ad una altra ora dello stesso giorno. vi posto lo sketch.

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

#include <Wire.h>
#include <RTClib.h>
 
#define pinSettore1 2

 
int settore1[] = {11,38,11,42};

 
RTC_DS1307 RTC;
 
void setup() {
  Serial.begin(9600);
  Serial.println( "START" );
 
  Wire.begin();
  RTC.begin();
 
  pinMode( pinSettore1,OUTPUT );
   
   if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
 
  digitalWrite( pinSettore1,LOW );
  
 
}
 
void loop() {
  if ( RTC.isrunning()) {
    DateTime now = RTC.now();
 
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    delay(10000);
 
    int _hour   = now.hour();
    int _minute = now.minute();
 
    // Settore Uno
    if ( settore1[0] <= _hour && _hour <= settore1[2] && settore1[1] <= _minute && _minute <= settore1[3] ) {
      digitalWrite( pinSettore1,HIGH );
    } else { digitalWrite( pinSettore1,LOW ); }
 
    
 
  }
}

Non ho capito bene la domanda. mi pare settore contiene l'intervallo. Con un altro if farai la stessa cosa con un ulteriore array/vettore. Oppure non ho capito la domanda

io vorrei impostare un altro intervallo di tempo al primo settore

Perdona, ma non capisco. Se il settore ha un intervallo, o cambi quello oppure per avere un ALTRO intervallo per forza devi avere un ALTRO settore2 con i suoi parametri e un ulteriore if Ovvero duplichi quello che hai fatto, usando però un nuovo array/vettore con altro nome

Quindi tu dici che non posso aggiungere un secondo intervallo al settore uno? ma se aggiungo un secondo settore, posso assegnare a quest'ultimo lo stesso pin?

Beh, intanto suggerirei di fare gli intervalli moltiplicando le ore *100 e sommando i minuti, questo permette di scrivere l’ora/min in un colpo solo.

int settore1[] = {1138,1142};
...
int orario = now.hour() * 100 + now.minute();
...
if ( orario>=settore1[0]  && orario<=settore1[1] ) 
{ digitalWrite( pinSettore1,HIGH );
} else 
{ digitalWrite( pinSettore1,LOW ); 
}

Poi mi sembra ti stai fossilizzando su una idea di settore che non capisco bene.
Se settore ha più intervalli, ma c’e’ un limite ?
Usare stesso pin legato ad altro settore … è una scelta/analisi logica del programma che tu devi fare.
Vero è che se fai uso di un altro array settore2, in realtà è un altro orario, la logica dei “settori” non ha molto senso.

int settore1[] = {1138,1142};
int settore2[] = {1238,1242};
...
int orario = now.hour() * 100 + now.minute();
...
if ( orario>=settore1[0] && orario<=settore1[1] ) 
{ digitalWrite( pinSettore1,HIGH );
}
else if ( orario>=settore2[0] && orario<=settore2[1] ) 
{ digitalWrite( pinSettore1,HIGH );

} else 
{ digitalWrite( pinSettore1,LOW ); 
}

io ho provato a settare un secondo settore con lo steso pin ma mi sembra che arduino si blocca.....boh! non c'è nessun limite, devo solo far annaffiare una pianta tre volte al giorno ad esempio

Ma c'e' un numero NOTO a priori di questi intervalli ? Oggi sono 3 domandi saranno 4 ?

Se il settoreX può avere più intervalli si potrebbe ragionare sul numero di elementi del vettore. esempio

int settore1[] = {1138,1142,1238,1242};

Sapendo quanti elementi ha (diviso /2) sai quanti intervalli e mettere un ciclo for() che verifica i vari intervalli Non semplice però.

Oppure se è fisso il numero di 3 intervalli, usi 6 elementi del settore1 e 3 if sugli elementi da 0 a 5.
Più semplice del for proposto.

int settore1[] = { 1138,1142,    /* intervallo 1*/
                   1238,1242,    /* intervallo 2*/
                   1338,1350 };  /* intervallo 3*/
...
int orario = now.hour() * 100 + now.minute();
...
if ( orario >= settore1[0] && orario<=settore1[1] ) 
{ digitalWrite( pinSettore1,HIGH );
}
else if ( orario>=settore1[2] && orario<=settore1[3] )
{ digitalWrite( pinSettore1,HIGH );
}
else if ( orario>=settore1[4] && orario<=settore1[5] )
{ digitalWrite( pinSettore1,HIGH );
} else [/color]
{ digitalWrite( pinSettore1,LOW ); 
}

Però se cambi il numero di intervalli, devi cambiare il numero di if

Grazie, sei stato gentilissimo!

i settori saranno sempre due o tre al massimo