Par ailleurs, je doute qu'on observe des différences de vitesse de traitement entre if/else ou switch/case; Si tu penses que tu as ce problème, tu peux utiliser millis() et calculer le temps passé à exécuter la condition.
Si tu veux simplifier le code, tu peux utiilser une multimap (qui fait en gros ce que tu fais là mais avec une fonction déjà implémentée.
Par ailleurs, un encodage plus efficace de ta comm serait d'avoir un seul encodage de ta valeur de vitesse (de 0 à 32, avec 0==0, 1=60, 32=255, ou de lire directement la valeur x et de calculer vitesse = 0.159 * x + 60) et d'envoyer un code pour le signe et le moteur (peut-être tout directement en binaire pour combiner les infos). La fonction que tu mappes est simplifiable (si la comm du RPi le permet).
- thermo_nono aime ceci