J'ai vérifié ce que j'obtenais avec le moniteur série en envoyant un exemple de trame à la main.
- La première trame n'est pas prise en compte, la deuxième est bien lu comme il faut, les suivantes sont dans le désordres. -> C'est solutionné en retirant ">19" de "if ( Serial.available>19)".
J'obtiens maintenant les bonnes valeurs. J'ai lu mes variables dans le moniteur avec un delay de 500ms entre chaque serie.
-Quand le logiciel envoie ces trames rien ne se passe. -> si je laisse un delay, le système fonction.
J'observe dans le moniteur serie ce que valent mes variables quand il n'y a pas de delay: elles ne sont quasiment jamais lus, mises à part quelques fois où l'une des variables a sa valeur correctement attribuée.
Est ce que le ReadStringUntil() ne résoudrait pas ce problème? Serial.readString(!) par exemple avec "!" à la fin de la trame.