Arduino wait for serial data from Python










1















I'm new to Arduino, and I'm trying to make a game. I'm sending the serial data with Python to the Arduino. I want to make the Arduino wait untill it recieves the serial data from Python.



My questions are:



  • Why isn't the Arduino program working with serial data from Python, but it works with data from Serial Monitor?

  • How can I make the program work with data from Python? (Wait untill serial data from Python, and then save the data.)

Arduino code:



int select;
void setup()
Serial.begin(9600);
Serial.flush();
while(!Serial.available())

if(Serial.available()>0)
select=Serial.read();


void loop()
Serial.println(select);
delay(500);




Python code:



import serial
ser=serial.Serial('COM4',9600)
ser.write(b'1235')
ser.close()



Solved the problem that I don't get the serial data, but a new problem occured:



The problem is that, if I get the serial data, my Arduino program jumps back to the while(!Serial.available()) loop, and not goes to the void loop().











share|improve this question




























    1















    I'm new to Arduino, and I'm trying to make a game. I'm sending the serial data with Python to the Arduino. I want to make the Arduino wait untill it recieves the serial data from Python.



    My questions are:



    • Why isn't the Arduino program working with serial data from Python, but it works with data from Serial Monitor?

    • How can I make the program work with data from Python? (Wait untill serial data from Python, and then save the data.)

    Arduino code:



    int select;
    void setup()
    Serial.begin(9600);
    Serial.flush();
    while(!Serial.available())

    if(Serial.available()>0)
    select=Serial.read();


    void loop()
    Serial.println(select);
    delay(500);




    Python code:



    import serial
    ser=serial.Serial('COM4',9600)
    ser.write(b'1235')
    ser.close()



    Solved the problem that I don't get the serial data, but a new problem occured:



    The problem is that, if I get the serial data, my Arduino program jumps back to the while(!Serial.available()) loop, and not goes to the void loop().











    share|improve this question


























      1












      1








      1








      I'm new to Arduino, and I'm trying to make a game. I'm sending the serial data with Python to the Arduino. I want to make the Arduino wait untill it recieves the serial data from Python.



      My questions are:



      • Why isn't the Arduino program working with serial data from Python, but it works with data from Serial Monitor?

      • How can I make the program work with data from Python? (Wait untill serial data from Python, and then save the data.)

      Arduino code:



      int select;
      void setup()
      Serial.begin(9600);
      Serial.flush();
      while(!Serial.available())

      if(Serial.available()>0)
      select=Serial.read();


      void loop()
      Serial.println(select);
      delay(500);




      Python code:



      import serial
      ser=serial.Serial('COM4',9600)
      ser.write(b'1235')
      ser.close()



      Solved the problem that I don't get the serial data, but a new problem occured:



      The problem is that, if I get the serial data, my Arduino program jumps back to the while(!Serial.available()) loop, and not goes to the void loop().











      share|improve this question
















      I'm new to Arduino, and I'm trying to make a game. I'm sending the serial data with Python to the Arduino. I want to make the Arduino wait untill it recieves the serial data from Python.



      My questions are:



      • Why isn't the Arduino program working with serial data from Python, but it works with data from Serial Monitor?

      • How can I make the program work with data from Python? (Wait untill serial data from Python, and then save the data.)

      Arduino code:



      int select;
      void setup()
      Serial.begin(9600);
      Serial.flush();
      while(!Serial.available())

      if(Serial.available()>0)
      select=Serial.read();


      void loop()
      Serial.println(select);
      delay(500);




      Python code:



      import serial
      ser=serial.Serial('COM4',9600)
      ser.write(b'1235')
      ser.close()



      Solved the problem that I don't get the serial data, but a new problem occured:



      The problem is that, if I get the serial data, my Arduino program jumps back to the while(!Serial.available()) loop, and not goes to the void loop().








      python arduino






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 12 '18 at 19:12







      K.Kovács

















      asked Nov 11 '18 at 8:48









      K.KovácsK.Kovács

      203




      203






















          2 Answers
          2






          active

          oldest

          votes


















          0














          A new USB connection with ser=serial.Serial('COM4',9600) resets the Arduino. The data sent right after connection are lost because the Arduino boots.






          share|improve this answer























          • Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

            – K.Kovács
            Nov 11 '18 at 9:41











          • every time you invoke serial.Serial('COM4',9600) the Arduino resets

            – Juraj
            Nov 11 '18 at 9:53


















          0














          Like Juraj says that resets the Arduino you should add code to wait for it to come back up



          import serial
          ser=serial.Serial('COM4',9600)
          sleep(.5)
          if arduino.is_open == 1:
          print("open")
          ser.write(b'1235')
          ser.close()





          share|improve this answer























          • I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

            – K.Kovács
            Nov 11 '18 at 9:29











          • But now I recieve the serial data with the Arduino!

            – K.Kovács
            Nov 11 '18 at 9:39










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53247136%2farduino-wait-for-serial-data-from-python%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          A new USB connection with ser=serial.Serial('COM4',9600) resets the Arduino. The data sent right after connection are lost because the Arduino boots.






          share|improve this answer























          • Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

            – K.Kovács
            Nov 11 '18 at 9:41











          • every time you invoke serial.Serial('COM4',9600) the Arduino resets

            – Juraj
            Nov 11 '18 at 9:53















          0














          A new USB connection with ser=serial.Serial('COM4',9600) resets the Arduino. The data sent right after connection are lost because the Arduino boots.






          share|improve this answer























          • Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

            – K.Kovács
            Nov 11 '18 at 9:41











          • every time you invoke serial.Serial('COM4',9600) the Arduino resets

            – Juraj
            Nov 11 '18 at 9:53













          0












          0








          0







          A new USB connection with ser=serial.Serial('COM4',9600) resets the Arduino. The data sent right after connection are lost because the Arduino boots.






          share|improve this answer













          A new USB connection with ser=serial.Serial('COM4',9600) resets the Arduino. The data sent right after connection are lost because the Arduino boots.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 '18 at 9:06









          JurajJuraj

          344310




          344310












          • Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

            – K.Kovács
            Nov 11 '18 at 9:41











          • every time you invoke serial.Serial('COM4',9600) the Arduino resets

            – Juraj
            Nov 11 '18 at 9:53

















          • Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

            – K.Kovács
            Nov 11 '18 at 9:41











          • every time you invoke serial.Serial('COM4',9600) the Arduino resets

            – Juraj
            Nov 11 '18 at 9:53
















          Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

          – K.Kovács
          Nov 11 '18 at 9:41





          Now I get the serial data with the Arduino, but there is one problem, when I get the data the arduino program jumps back this loop: while(!Serial.available()), and not to void loop().

          – K.Kovács
          Nov 11 '18 at 9:41













          every time you invoke serial.Serial('COM4',9600) the Arduino resets

          – Juraj
          Nov 11 '18 at 9:53





          every time you invoke serial.Serial('COM4',9600) the Arduino resets

          – Juraj
          Nov 11 '18 at 9:53













          0














          Like Juraj says that resets the Arduino you should add code to wait for it to come back up



          import serial
          ser=serial.Serial('COM4',9600)
          sleep(.5)
          if arduino.is_open == 1:
          print("open")
          ser.write(b'1235')
          ser.close()





          share|improve this answer























          • I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

            – K.Kovács
            Nov 11 '18 at 9:29











          • But now I recieve the serial data with the Arduino!

            – K.Kovács
            Nov 11 '18 at 9:39















          0














          Like Juraj says that resets the Arduino you should add code to wait for it to come back up



          import serial
          ser=serial.Serial('COM4',9600)
          sleep(.5)
          if arduino.is_open == 1:
          print("open")
          ser.write(b'1235')
          ser.close()





          share|improve this answer























          • I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

            – K.Kovács
            Nov 11 '18 at 9:29











          • But now I recieve the serial data with the Arduino!

            – K.Kovács
            Nov 11 '18 at 9:39













          0












          0








          0







          Like Juraj says that resets the Arduino you should add code to wait for it to come back up



          import serial
          ser=serial.Serial('COM4',9600)
          sleep(.5)
          if arduino.is_open == 1:
          print("open")
          ser.write(b'1235')
          ser.close()





          share|improve this answer













          Like Juraj says that resets the Arduino you should add code to wait for it to come back up



          import serial
          ser=serial.Serial('COM4',9600)
          sleep(.5)
          if arduino.is_open == 1:
          print("open")
          ser.write(b'1235')
          ser.close()






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 '18 at 9:12









          Bob RBob R

          1721516




          1721516












          • I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

            – K.Kovács
            Nov 11 '18 at 9:29











          • But now I recieve the serial data with the Arduino!

            – K.Kovács
            Nov 11 '18 at 9:39

















          • I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

            – K.Kovács
            Nov 11 '18 at 9:29











          • But now I recieve the serial data with the Arduino!

            – K.Kovács
            Nov 11 '18 at 9:39
















          I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

          – K.Kovács
          Nov 11 '18 at 9:29





          I have one more problem, if I get the serial data, my Arduino program jumps back to this loop: while(!Serial.available()) , and not to the void loop()

          – K.Kovács
          Nov 11 '18 at 9:29













          But now I recieve the serial data with the Arduino!

          – K.Kovács
          Nov 11 '18 at 9:39





          But now I recieve the serial data with the Arduino!

          – K.Kovács
          Nov 11 '18 at 9:39

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53247136%2farduino-wait-for-serial-data-from-python%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

          Edmonton

          Crossroads (UK TV series)