Uso de funcion Timer1, interrupciones

Hola amigos necesito de su colaboracion, estoy desarrollando una UPS con Arduino, ahora estoy con la parte del software y control de la carga de bateria y cooler de refrigeracion.
El problema que tengo es que mi codigo no se ejecuta en el LOOP, para no usar delay quiero usar la libreria Timer1.
Adjunto el codigo que estoy subiendo al arduino.

Saludos y espero que puedan darme una mano con este asunto.

Core_UPS_v2.ino (8.56 KB)

debes poner el codigo entre tags,

que quede así

Seguramente es superior a 9000 caracteres.

Si, me decía que era mas de 9000 caracteres, por lo que adjunte en archivo .ino
Puse todo para que puedan ver todo en detalle y entender para que me digan como debo proceder. Porque si pongo una parte del sketch lo mas seguro es que me digan que me explaye mas para poder entender.

Saludos.

El tema es que en un código como el tuyo resolverlo lleva mucho tiempo asi que acá va mi respueta:
usa millis() y crea un máquina de estados. Ve a Documentación y lee el topico de máquinas de estado y luego de entender la teoría al final yo publico un pequeño ejemplo en el que hago lo mismo que en tu caso a alguien que tenía el mismo problema.