Ser.readline Python

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 ?

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, peut-être montrer ton programme?
    0
    1. Siouplaitrpondezmoi
       
      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
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Siouplaitrpondezmoi
       
      et avec
      x = int(ser.readline().decode('utf-8'))
      ?
      0
    3. Siouplaitrpondezmoi
       
      Je vais essayer, merci pour l'aide !
      0
    4. Siouplaitrpondezmoi
       
      Bonjour, je me pose une question, pourquoi mettre x = int(... ect) ?
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Siouplaitrpondezmoi
       
      qu'a donné ton essai?
      0