Bonjour à tous,
Premier post, premier projet Arduino : un timer pour Reflex Canon (oui, encore un).
Thread de suivi de ma construction sur le forum de mon club d'astronomie préféréMon montage est composé comme suit
- Arduino UNO smd
- LCD HD44780 (rouge/noir - important pour l'astronomie)
- Sparkfun Protoshield
- deux 4N25V pour optocoupler le déclenchement du reflex
- quelques boutons poussoir et résistance pur faire un clavier d'entrée
Un shéma du montage (sans le clavier) :

Et son fichier
Fritzing :
AstroCom_Proto_0.0127.fzzLe source complet de la dernière version :
AstroCom 0.0501k (7k)
S'en viens enfin à mon problème

Dès que je veux rendre mon programme plus complexe (ajouter d'autre page de menu ou un mode de déclenchement secondaire par exemple), l'arduino "plante" très vite (mon affichage LCD n'est plus mis à jour et je ne reçois plus rien coté communication série).
- La taille du source compilé est inférieure à 20ko, a prioris ce n'est pas un problème de mémoire, j'ai testé le même Sketch sur un Mega 2560 avec le même résultat
- Mon montage sur le protoshield n'est "a prioris" pas la source du problème, j'arrive à reproduire les même plantages sur un
KeyPadShield de DFRobotPa exemple si, dans le source fourni, on décommente
#define DEBUGTEST l'arduino "reboot" après avoir affiché le deuxième écran (et donc être rentré dans la boucle principale). Sachant que ce #define se contente d'activer l'envois d'information sur le port série, c'est assez obscur.
J'arrive à déclencher d'autres bug en modifiant le source à des endroit à prioris sans importance (par exmple remplacer une lettre dans une chaine de caractère affichée sur le LCD).
Un sketch plus court ne pose pas de problème, donc il est difficile pour moi de mettre ce problème en évidence dans un source plus court, désolé.
Bref je doit louper quelque chose d'essentiel, mais je ne comprends vraiment pas quoi.
Toutes les idées sont les bienvenues