rutina que siempre este monitorizando

buenas tardes
Resulta que tengo un problema, estoy haciendo un controlador de carga y quiero realizar una subrutina aparte, que monitorice el voltaje del panel solar y mediante un relé abra el circuito cuando sea mayor a un voltaje determinado, por ejemplo si el panel envia mas de 23 voltios debe abrirse el relé del circuito hasta que sea menor de 23 donde volvera a cerrar el circuito. El problema que tengo es no puedo usar la funcion delay debido a que este utiliza un control PID, entonces quisiera utilizar una subrutina aparte que este constante monitorizando el voltaje y que sea independiente. Utilice las interrupciones por software pero me daña el PID, entonces quisiera saber si hay otra posisbilidad.

Mejor lo haces por fuera de Arduino con un Amplificador Operacional (LM741 por ejemplo) como comparador.

Un amplificador operacional está diseñado para amplificar la diferencia entre los pines de entrada + (pin 3) y - (pin 2). Como el amplificador tiene una ganancia muy alta, en esta configuración su salida (pin 1) está totalmente activada (Vcc, pin 8 ) o totalmente desconectada (GND, pin 4), dependiendo de si la entrada + (pin 3) es mayor o menor que la tensión de referencia que ponemos en - (pin 2).

Supongo que estas cargando alguna bateria, quizas de 12V y podrias usar esto para alimentar el 741 con un potenciometro pones la tension de referencia en pin 2 y con un divisor de tension por ejemplo 2 resistencias iguales (Ej 10K) bajas la tension del panel a la mitad.

Si buscar un pequeño reed rele de 12V que requiera menos de 20 mA lo puedes manejar directamente. Sino debes poner un transistor entre el 741 y el rele.