通过串口发送和接收

时间:2014-08-10 12:16:56

标签: python serial-port arduino-uno

我有一个简单的程序在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")

总是如果有效,我是一个菜鸟请帮助我!

1 个答案:

答案 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")