Serial arduino avec plusieurs parametres

arduino

a marqué ce sujet comme résolu.

Bonjour,

voici mon petit problème. j'ai un petit robot (pendule inversé) avec une carte bluno (uno avec module ble). Je me suis fait une petite appli android avec un joystick qui peut envoyer les coordonnées en x et en y du joystick (dans une string). J'ai le choix dans la forme de la string.

Par contre du coté arduino, je n'arrive pas à récupérer ces valeurs.

Exemple, j'envoie la string 234a678, et je dois récupérer x=234 et y =678.

J'ai tenté du coté arduino

1
2
3
4
while (Serial.available() > 0) {
    x = Serial.parseInt();
    y = Serial.parseInt();
  }

Mais cela ne fonctionne pas. Quelque fois les valeurs sont bonnes, le plus souvent je récupère des valeurs du style

x = 23467

y = 82346

Merci de votre attention et de votre aide

Parce que ta lecture ne prend pas en compte le fait que la chaine soit terminee ou non, du coup tu peux reboucler sur la chaine suivant ou des truc comme ca…

Je m'explique… Admettons tu envoies en continu les valeurs 234a678. Dans le "flux serie" on aura donc 234a678234a678234a678234a678234a678… Tu me suis ? Maintenant si ton Arduino est synchro avec ton flux serie c'est cool (s'il y a une pause entre deux envoies, sinon ca se gate :

1
2
234a678234a678234a678234a678234a678
      ^

Imagine ton Arduino commence a lire a ce niveau la alors tu auras 8234… Et pire si tu lis un peu avant tu auras carrement 678234 ce qui depasse la valeur d'un int sur Arduino…

Une solution pourrait etre de separer les deux int en mettant un caractere comme ton 'a' avant chaque bloc de nombres.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte