Nunca Termina :/

Bueno como dice el titulo tengo un problema con un circuito

Cuando presiono el boton

Mi Circuito jamas termina creo que es un error en la condicion.

void regar_manual(){
DateTime now = RTC.now();
if ( digitalRead(riegomanual)){
riegom = 1;
riego_manual = now.unixtime();
}
if (riegom == 1){
if (riego_manual+5 >= now.unixtime()){
digitalWrite(ledriegomanual, HIGH);
} else {
riego_manual = 0;
digitalWrite(ledriegomanual, LOW);
riegom = 0;

}
}
}

regar_manual() lo llamas en cada iteración del loop o cuando se cumple una condición?

Si es por una condición. ¿Que condición es?

Entiendo que el riego manual debe estar activado mientras el pin riegomanual esté a nivel alto y desactivado mientras esté a nivel bajo. Si es así, para empezar cambiaría el código por esto:

void regar_manual(){

  DateTime now = RTC.now();

  if ( digitalRead(riegomanual)){
    if (riegom==0){
      riegom = 1;                          
      riego_manual = now.unixtime();       
      digitalWrite(ledriegomanual, HIGH);
    }
  } else {
  
    riego_manual = 0;                    
    digitalWrite(ledriegomanual, LOW);   
    riegom = 0;                         
  }
}

¿La variable riego_manual la has definido como unsigned long?