Bonjour à tous
Je suis en train de réaliser(enfin, d'essayer, en tout cas) une gestion automatique de groupe électrogène, qui devra permettre un démarrage du moteur sur commande externe à contact sec, commande interne par poussoir, surveiller le moteur (charge batterie, pression d'huile, température) et le couper si nécessaire et surveiller le temps de fonctionnement pour afficher un témoin "maintenance" si le délai entre entretiens est dépassé.
Il y a un certain nombre d'entrées tout ou rien permettant de lire les capteurs du moteur (pression d'huile, charge batterie, etc) et de sorties commandant des relais pour l'alimentation générale, le contact, le démarreur et le préchauffage.
Le fonctionnement général est géré par une machine à états. Le programme se compose finalement d'une boucle infinie qui effectue :
-lecture entrées
-passage par la machine à états qui détermine les sorties
-écritures sorties
Pour le moment, le programme est le suivant : (voir fichier joint)
J'aurais concernant ce code quelques questions, en particulier sur le stockage de valeurs "word" en eeprom. J'utilise le code suivant, pour décomposer les word en deux bytes et les stocker/relire :
EEPROM.write(adr_tpstotLSB,(byte)tpstot);
EEPROM.write(adr_tpstotMSB,(byte)(tpstot>>8));
pour son écriture, est-ce que la conversion (byte)valeur_en_word retourne bien comme je l'espère le byte LSB ?
et pour la seconde partie, avec une variable de type unsigned int, il ne devrait pas y avoir de problème de "sign extension" lors de >>8 ? et même si le cast (byte) retourne le byte LSB, si il y a un problème de sign extension, ça ne devrait pas interférer ?
tpstot = EEPROM.read(adr_tpstotMSB)<<8; //temps fonctionnement total depuis installation
tpstot += EEPROM.read(adr_tpstotLSB);
ça, si j'ai bien compris le fonctionnement de <<, ça devrait marcher ?
le problème étant que pour le moment, le matériel n'est pas fabriqué, je peux donc difficilement tester le code en situation...
Concernant la machine à états, c'est la première fois que je me lance dans un codage de ce type, donc les remarques des gourous de la question (barbudor ? ) sont les bienvenues
Je donnerai bien sûr ici toutes les informations concernant les évolutions du projet, les schémas électriques, etc.
groupe.ino (9.01 KB)