[Résolu] Problème port série

Bonjour à tous

Je suis actuellement en train de réaliser un projet : commander un axe d’imprimante avec une arduino.

Pour faire court j'envoie un entier compris entre 0 et 2000 et l'axe se déplace vers la bonne valeur.

Pour ce projet j'ai besoin de changer ces valeurs via le port série avec un temps de réponse assez court en utilisant python. Mon problème est le buffer du port série : si je lui envoie par exemple 1000 puis 2000 (je fais une conversion ascii) le programme interprète cela comme une coordonnée de 10002000 et pas 2000 (et je ne peux pas faire de réinitialisation à 0 car l'axe se déplacerait)

Voilà mes codes

Python :

from serial import Serial
serial_port = Serial(port='/dev/ttyACM0', baudrate=115200) #je prend 115200 bauds pour avoir le meilleur tps de réponse


while True:
    nombre = input('Entrez un entier : ')
    serial_port.write(nombre.encode('ascii'))

et arduino

void loop() {

while ( Serial.available()) {
     byte_read = Serial.read();
     recieved_integer = ascii2int(recieved_integer, byte_read); //fonction définie avant qui transforme l'ascii en entier
   }

   
target=recieved_integer;
driveTo(target); //fonction qui commande le moteur pour aller au bon endroit
Serial.println(target);
delay(100);

}

Merci beaucoup pour votre aide

il faut envoyer un marqueur de fin de chiffre... genre un retour chariot

Si vous voulez comprendre comment bien écouter le port série (ou gérer un flux asynchrone genre keypad) vous pouvez jeter un oeil à mon petit tuto sur le sujet

Merci beaucoup mais en rajoutant un retour chariot cela ne fonctionnait pas.

Finalement j'ai utilisé le programme de ce post sur le forum anglais, il fallait définir des bornes pour chaque entier

http://forum.arduino.cc/index.php/topic,99225.0.html

Ce qu'explique Nick Gammon dans le lien que tu donnes c'est exactement ce qu'avait suggéré J-M-L

Oui c'est vrai mais je pensais qu'avec un retour chariot seul cela réinitialiserait le port série.
Je n'avais pas bien compris la méthode de jml...mais bon je débute avec le port série.