Arduino等待来自Python的串行数据



我是Arduino的新手,我正在尝试制作一款游戏。我正在用Python将串行数据发送到Arduino。我想让Arduino等到它收到Python的串行数据。

我的问题是:

  • 为什么Arduino程序不能处理Python中的串行数据,但它可以处理串行监视器中的数据
  • 如何使程序使用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循环(({}。

ser=serial.Serial('COM4',9600)的新USB连接将重置Arduino。由于Arduino启动,连接后立即发送的数据丢失。

就像Juraj说的重置Arduino一样,你应该添加代码等待它返回

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

最新更新