Arduino ждут последовательных данных от Python - PullRequest
0 голосов
/ 11 ноября 2018

Я новичок в Arduino и пытаюсь сделать игру. Я посылаю серийные данные с Python в Arduino. Я хочу заставить Arduino ждать, пока он не получит последовательные данные из Python.

Мои вопросы:

  • Почему программа Arduino не работает с последовательными данными из Python, но работает с данными из Serial Monitor?
  • Как мне заставить программу работать с данными из Python? (Подождите, пока последовательные данные из Python, а затем сохраните данные.)

Код Arduino:

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:

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

Решена проблема, связанная с тем, что я не получаю последовательные данные, но возникла новая проблема:

Проблема в том, что если я получаю последовательные данные, моя программа Arduino возвращается к циклу while (! Serial.available ()) {} и не переходит в цикл void () {}.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Как говорит Юрай, сбрасывающий Arduino, вы должны добавить код, чтобы дождаться его возвращения

import serial
ser=serial.Serial('COM4',9600)
sleep(.5)
if arduino.is_open == 1:
        print("open")
ser.write(b'1235')
ser.close()
0 голосов
/ 11 ноября 2018

Новое соединение USB с ser=serial.Serial('COM4',9600) сбрасывает Arduino. Данные, отправленные сразу после подключения, теряются из-за загрузки Arduino.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...