Ser.readline Python

Fermé
Siouplaitrpondezmoi - 16 mars 2019 à 11:06
 Siouplaitrpondezmoi - 8 avril 2019 à 21:39
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 ?

1 réponse

yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
16 mars 2019 à 12:29
bonjour, peut-être montrer ton programme?
0
Siouplaitrpondezmoi
Modifié le 16 mars 2019 à 12:46
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)
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Siouplaitrpondezmoi
16 mars 2019 à 13:21
et avec
x = int(ser.readline().decode('utf-8'))
?
0
Siouplaitrpondezmoi
16 mars 2019 à 13:27
Je vais essayer, merci pour l'aide !
0
Siouplaitrpondezmoi
27 mars 2019 à 14:08
Bonjour, je me pose une question, pourquoi mettre x = int(... ect) ?
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Siouplaitrpondezmoi
28 mars 2019 à 15:56
qu'a donné ton essai?
0