Programar una función periodica.. Que se active al cabo de un tiempo..

Hola soy nuevo en arduino..
Lo que quiero hacer es activar un rele por un tiempo determinado cuando se cumpla una cuenta regresiva. Pero esa cuaenta se va cumplindo parcialmente cada ves que se activa otro rele.. Asi este rele se activa en varios momentos acumulando el tiempo predestinado para la suspencion parcial.. una ves cumplida el tiempo de detenimiento.. se vuelve a ejecutar el rele como antes y se renueva la cuenta regresiva,, No se si se entiende.. muchas gracias

Mirate el concepto de TIMER que creo que es lo que necesitas para lo que quieres hacer, echale un vistazo dale una vuelta y consultanos las dudas que te surjan.

Un saludo!!!

Deberías usar contadores de tiempo con millis();
millis() es una función que se actualiza cada milisegundo desde que el arduino arranca.
Empieza en 0 y sigue asi hasta que llega a su limite a los 49 dias 17,X hs

Entonces estudia su uso.
Crea un contador que arranque segun tu criterio, pulsador o envento algo asi

unsigned long start;
#define pinBoton1   2        // pulsador, un pin a GND otro al PIN
#define pinBoton2   3

#define RELE1       4
#define RELE2       5
#define auxR2       6        // contacto auxiliar R2 para detectar su estado. NO a pin COM a GND

#define TIEMPORELE1 5000UL   // UL es Unsigned Long ayudo al compilador
                             // cambiar este valor al que te sea util

bool estado1, estado1Ant = false;
bool estado2, estado2Ant = false;
bool activoR2;
bool estadoR2, estadoR2Ant;

void setup() {
     pinMode(pinBoton1, INPUT_PULLUP);
     pinMode(pinBoton2, INPUT_PULLUP);
     pinMode(auxR2, INPUT_PULLUP)
     pinMode(RELE1, OUTPUT);
     pinMode(RELE2, OUTPUT);
}

void loop() {
    
    estado1Ant = estado1;
    estado1 = digitalRead(pinBoton1);

    estado2Ant = estado2;
    estado2 = digitalRead(pinBoton2);

    estadoR2Ant = estadoR2;
    estadoR2 = digitalRead(auxR2);

    if (estado1 && estado1Ant){             // boton1 activa inicio de cuenta de tiempo R1
        start = millis();
        digitalWrite(RELE1, HIGH);
    }
    
    if (estado2 && estado2Ant){             // con cada pulsación R2 se activa/desactiva
        activoR2 = !activoR2;               // solo detiene cuenta cuentado esta apagado
        if (activoR2)
            digitalWrite(RELE1, HIGH);
        else 
            digitalWrite(RELE1, LOW);
    }

    if (millis()-start > TIEMPORELE1 && !estadoR2 ) {  // esto funciona si R2 no esta activo
                                                       // pero no lleva los tiempos parciales.
        digitalWrite(RELE1, LOW);
    }
}

Esto sería una versión para comenzar a trabajar y que veas por donde debes arrancar.
El código es simple
boton1 un pulsador, presionas y comienza a funcionar el RELE1
boton2 acciona el RELE2, cada vez que lo hace apaga la cuenta del Rele1 pero no la parcializa que es otro tema.
Eso te lo dejo a ti.