Ser.readline Python
Siouplaitrpondezmoi
-
Siouplaitrpondezmoi -
Siouplaitrpondezmoi -
Bonjour,
J'essaye de faire un programme Python, mon problème ? Je n'arrive pas à faire fonctionner ser.readline(). Lorsque je l'utilise et écrit via une variable, ça me marque b' '. Des solutions ?
J'essaye de faire un programme Python, mon problème ? Je n'arrive pas à faire fonctionner ser.readline(). Lorsque je l'utilise et écrit via une variable, ça me marque b' '. Des solutions ?
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, peut-être montrer ton programme?-
Oui pardon j'ai oublié :
import serial import time ser = serial.Serial('dev/ttyUSB0', baudrate = 9600, timeout = 1) x = 0 while x != 429: x = ser.readline() if x == 5 : break print("terminer") time.sleep(1)
Mais finalement, en changeant le ser.readline() par ser.readline().decode('utf-8'), je réussis à trouver mon 5 envoyé par la Arduino sur le port série de la Raspberry. Mais maintenant je suis confronté à un nouveau problème, le if de mon programme ne marche pas, si juste après avoir marqué ser.readline().decode('utf-8'), je mets print(x), comme ceci:
import serial import time ser = serial.Serial('dev/ttyUSB0', baudrate = 9600, timeout = 1) x = 0 while x != 429: x = ser.readline().decode('utf-8') print(x) if x == 5 : break print("terminer") time.sleep(1)
Le programme marque 5, pour le print(x), donc juste après il devrait aller dans la condition if vu que x == 5, et faire break donc arrêter while, or ça ne marche pas, des réponses ?
(J'ai aussi mis un print("casser") dès que le programme rentre dans la condition if, comme ça :
while x != 429: x = ser.readline().decode('utf-8') print(x) if x == 5 : print("casser") break
Mais jamais il y a eu de casser dans le Shield) -
-
-
-
-