J'ai un régulateur de chauffage, sur la base d'une carte seeeduino mega 2560, je rencontre un problème qui m'a occupé de longues heures sans trouver d'explications.
Le système est alimenté par une alimentation USB 1A, il utilise une douzaine de capteurs DS18B20, une dizaine de relais, un écran LCD, des sorties PWM, et le watchdog, j'utilise l'ide platformio sous ubuntu.
L'exécution ne se fait correctement qu'après un reset manuel, ou un reset réalisé par le moniteur série de platformio.
Le fait de débrancher et rebrancher le câble USB (sur PC ou alim), génère un plantage du programme.
Je ne peux pas investiguer depuis le moniteur série, vu que dés que je lance ce dernier le programme fonctionne sans pb.
Mon seul moyen d'investigation est d'activer une sortie pour voir jusqu’où se déroule le code, seulement le comportement est sans aucune logique, si j'enlève l'appel de la fonction depuis laquelle je ne reviens pas, le problème persiste dans une autre fonction.
J'ai bien entendu vérifié tous mes accès à des tableaux et structures pour vérifier que je ne jardine pas dans la RAM, mais je n'ai rien trouvé.
Si vous avez des idées pour m'aider à avancer elles seront bienvenu
Quelles sont les différences qu'il peut y avoir entre un reset manuel et un power on reset ?
Un petit schéma de l'interconnexion permettrait peut-être d'y voir plus clair.
Ainsi qu'un peu plus d'information sur les relais utilisés.
Quand même, si ça marche carte alimentée par l'USB. On peut se demander s'il n'y aurait pas un problème, au moins au démarrage, avec l'alimentation que tu utilises. Ou dans la façon d'alimenter la 2560.
j'ai fait des essais avec une autre alimentation qui délivre plus de courant, et c'est mieux, mais il y a quand même de rares démarrages ratés, en tout cas ce n'est plus systématique.
Au passage avec cette nouvelle alim un capteur ds18b20 retourne un crc erroné de temps en temps.
Je ne connais pas le mega mais j'ai eu des problèmes similaires avec certains modules uno standalone que je fabrique, je les ai résolus en mettant un condensateur de 100nF entre la pin de reset (1) et la masse en plus de la résistance de 10kΩ au +Vcc, ainsi en retardant légèrement le reset à la mise sous tension je n'ai plus jamais de problème de démarrage.