BMS - Consulta sobre el codebase

Buenas,

Soy nuevo en el foro, pero no nuevo usando Arduino. Aunque reconozco que debe haber gente con mucha experiencia usandolo, como haciendo programas.

Actualmente me encuentro haciendo un BMS (battery management system), para celdas LiFePo4. Voy a empezar con bancos chicos 12V y 24V. Para luego escalar dependiendo de que tipo de aplicacion quiera.
Me encuentro en una etapa del proyecto en la cual necesitaría saber sobre la programacion propiamente dicha.

De momento, puedo medir los voltajes individuales de cada celda, relevar tambien la temperatura de las mismas y saber cuales necesitan ser balanceadas y cuales no (cuento con el circuito de balanceo).

Sin embargo me encuentro con falta de información/conocimiento sobre como ordenar las posibles rutinas de protección. Sobre-tensión de celda, sobre-tensión de pack, sobre-corriente de pack, sobre-temperatura.

Lei sobre interrupciones, pero no termina de convencerme como funciona la misma. Teniendo en cuenta que saltan del programa principal para realizar sub-rutinas. Luego retornan al programa base.
Ademas que tendría que hacer circuitos aparte para ver cambios en pines y disparar dichas interrupciones.

Me recomiendan trabajar con interrupciones o agregar mas condicionales luego de la adquisición de datos relevantes a voltaje, corriente y temperatura.
Acepto todo tipo de propuestas.

Saludos, desde ya muchas gracias.

Y porque hacerlo desde 0 y no usar chip dedicado a la tarea que tiene ventajas dificiles de lograr

son escalables
mide Resistencia de batería,
es multiquímica, no solo te sirve para LiFePo4

Busca en Linear, o Maxim en sus productos.

Se comunican por SPI y reciben multiplicidad de información.