对从Python到Arduino的串行通信进行故障排除

时间:2019-04-21 23:28:42

标签: python arduino

我正在使用具有Python脚本功能的软件。我想用它来移动Clearpath伺服器并间歇运行内部软件命令。

使用Arduino,我可以控制伺服器,但是一旦开始使用串行通讯,它就会开始出错。阅读完其他文章后,我认为问题是由于串行通讯是8位的,并且我想发送大整数而引起的。

例如,Arduino代码的一部分显示:

void loop(){  
 if(Serial.available()){
 inByte = Serial.readStringUntil('\n');
 ser = inByte.toInt();
 X.move(ser);
 while(!X.commandDone()||!X.readHLFB())
 { }
 Serial.print (inByte);
 delay(1000);
 }
}

在开始使用串行通信之前,我会在X.move(ser)中使用整数并获得完美的结果。现在我正在使用串行端口,我可以告诉您此代码有问题。即使使用串行监视器似乎可以正常工作,但我尝试使用它的次数越多(尤其是使用更大的数字),我越意识到它可能没有使用串行监视器之前所做的事情。

然后将Python添加到组合中,甚至变得更糟。 为了让您了解我要做什么,下面是一个Python代码示例:

ser = serial.Serial('COM3', 9600, timeout=1)
ser.close()
ser.open()
while True:
    var = "1000"
    ser.write(var.encode())
    time.sleep(1)'

使用此代码,伺服系统会移动,但根本不正确。 我该如何通过串行方式将大整数(例如50502)从Python发送到Arduino,而又不会在串行通信期间被弄乱呢?

0 个答案:

没有答案