我有一个简单的程序在uno中运行,使用ping传感器测量距离,现在我试图根据python中的距离控制一些伺服器,但条件的东西即使在像这样的简单代码中也不起作用< / p>
import serial
data = serial.Serial('COM7',9600)
while(1):
if(data.inWaiting()>0):
dist = data.readline()
if(dist>100):
print("dist is greater than 100")
else:
print("this shit does not work")
总是如果有效,我是一个菜鸟请帮助我!
答案 0 :(得分:1)
串口类型的数据为str
您正在尝试阅读数据并使用if .... > 100
这将无法正常工作。
您需要将数据读取到缓冲区然后进行检查。此外,您还需要一些同步框架才能知道您已获得所有数据(它不是必须的,但需要更多的数据)
例如,假设读取的数据为100!
而!
是您的同步帧。
import serial
my_serial = serial.Serial('COM7',9600)
my_data = ""
while(1):
if(my_serial.inWaiting()>0):
my_data = my_serial.readline()
if '!' in my_data:
break
my_data = [:my_data.find("!")]
if int(my_data) > 100:
print("dist is greater than 100")
else:
print("this shit does not work")