Arduino wait for serial data from Python











up vote
1
down vote

favorite












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




























    up vote
    1
    down vote

    favorite












    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


























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      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 at 19:12

























      asked Nov 11 at 8:48









      K.Kovács

      143




      143
























          2 Answers
          2






          active

          oldest

          votes

















          up vote
          0
          down vote













          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 at 9:41










          • every time you invoke serial.Serial('COM4',9600) the Arduino resets
            – Juraj
            Nov 11 at 9:53


















          up vote
          0
          down vote













          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 at 9:29










          • But now I recieve the serial data with the Arduino!
            – K.Kovács
            Nov 11 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',
          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








          up vote
          0
          down vote













          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 at 9:41










          • every time you invoke serial.Serial('COM4',9600) the Arduino resets
            – Juraj
            Nov 11 at 9:53















          up vote
          0
          down vote













          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 at 9:41










          • every time you invoke serial.Serial('COM4',9600) the Arduino resets
            – Juraj
            Nov 11 at 9:53













          up vote
          0
          down vote










          up vote
          0
          down vote









          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 at 9:06









          Juraj

          343110




          343110












          • 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 at 9:41










          • every time you invoke serial.Serial('COM4',9600) the Arduino resets
            – Juraj
            Nov 11 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 at 9:41










          • every time you invoke serial.Serial('COM4',9600) the Arduino resets
            – Juraj
            Nov 11 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 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 at 9:41












          every time you invoke serial.Serial('COM4',9600) the Arduino resets
          – Juraj
          Nov 11 at 9:53




          every time you invoke serial.Serial('COM4',9600) the Arduino resets
          – Juraj
          Nov 11 at 9:53












          up vote
          0
          down vote













          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 at 9:29










          • But now I recieve the serial data with the Arduino!
            – K.Kovács
            Nov 11 at 9:39















          up vote
          0
          down vote













          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 at 9:29










          • But now I recieve the serial data with the Arduino!
            – K.Kovács
            Nov 11 at 9:39













          up vote
          0
          down vote










          up vote
          0
          down vote









          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 at 9:12









          Bob R

          1681516




          1681516












          • 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 at 9:29










          • But now I recieve the serial data with the Arduino!
            – K.Kovács
            Nov 11 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 at 9:29










          • But now I recieve the serial data with the Arduino!
            – K.Kovács
            Nov 11 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 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 at 9:29












          But now I recieve the serial data with the Arduino!
          – K.Kovács
          Nov 11 at 9:39




          But now I recieve the serial data with the Arduino!
          – K.Kovács
          Nov 11 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.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • 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

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python