Commande automatique de groupe électrogène - machine à états et autres questions

Alors ici, j'ai de disponible sur la carte V3 un port I2C et un port 1-Wire, avec pour but de rajouter des capteurs de températures (1-Wire) pour déterminer si il y a besoin ou pas de préchauffage, et pour adapter les temps de chauffage/refroidissement du moteur.
Et via i2c pour rajouter un afficheur, une horloge pour permettre de programmer des horaires, un datalogger sur carte SD (par exemple un openlog trafiqué pour logger en i2c), etc etc

J'ai aussi une autre entrée interruption inutilisée pour le moment prévue pour mettre une jauge capacitive dans le réservoir.

mais avec 32k de dispo, et un environnement de devel pas spécialement optimisé, c'est un peu tendu. Pour le moment mon code qui ne fait pas grand chose utilise déjà 19k.

pas de port SPI sur ma carte qui permettrait de faire du vrai debug, car l'ai eu besoin des bits pour commander les relais.

pour résumer, la carte V3 a donc :
-port série
-port I2C
-port 1-Wire
-2entrées interruption (une pour le compte-tours, une pour la jauge)
-3entrées logiques (contact de démarrage local, externe, et pression d'huile)
-1entrées analogique (mesure de la tension batterie)
-3sorties relais 25A (contact, préchauffage, démarreur)
-1sortie relais ou PWM avec un PMOS (pour piloter un solénoide de controle du régime)
-3sorties collecteur ouvert NPN (2 pour les leds d'état, 1 pour le relais qui coupe la sortie de la génératrice)
-1relais interne qui assure l'auto-maintien de l'alim de la carte

L'objectif ici est pour le moment d'assurer uniquement la gestion du moteur de la manière la plus automatique possible pour que l'utilisateur n'ait rien à faire. C'est l'onduleur du système solaire qui lui détermine si il y a besoin de recharger les batteries avec le groupe ou non et demande le démarrage (contact sec).
Il peut également demander le soutien du groupe en cas de surcharge ou de surchauffe.
Mais je songe à faire une seconde carte qui s'occupera de la gestion de la charge des batteries, car les possibilités de paramétrage offertes par l'onduleur sont assez limitées.

voila voila