Bonjour,
Pour le bug "aléatoire" à mon avis tu as trop de chose en RAM (chaine de caractères + variables + librairie).
Utilise Arduino Playground - AvailableMemory pour voir ce qu'il te reste de RAM disponible.
A mon avis tu va être surpris par le résultat.
Quelques conseils d'optimisation :
- les variables du style t1, t2, t3 ... -> tableau t[3] (par exemple)
- les chaines de char constantes "blabla" -> F("blabla")
- les lignes de code redondante (ex: la série de pinMode()) -> boucles (for, while, ...)
- les valeurs constantes -> const + nom en majuscule
- adapter les types de variables, int (-32767, +32767) pour stocker un n° de broche (0, 13) c'est un peu beaucoup, byte (0, 255) suffit
- les fonctions appelaient depuis un seul endroit dans le code -> inline
- ...