当我的Arduino中的A0值发生变化时,我正在阅读。 Arduino中的代码似乎没问题,因为当我使用串行监视器时,值会按预期更改。但是,当我运行我的Python代码时,它只读取Arduino的初始值。如果值更改,它仍会显示初始值。下面是我的Python代码:
#!/usr/bin/python
import os
import sys
import serial
import time
import datetime
import ast
#--- open up the serial port to get data transmitted to arduino
ser = serial.Serial('COM3', \
baudrate = 9600, timeout = 1)
#main
while True :
ser.readline()
#--- Read in the data and split the line into words
data = ser.readline()
timestamp = datetime.datetime.now()
hora = timestamp.strftime("%Y-%m-%d %H:%M:%S")
#--- If at least nine fields exists then parse the data
if (ast.literal_eval(data) > 800) :
time.sleep(1)
print "Alarme!!!, %s" % ast.literal_eval(data)
time.sleep(150)
ser.readline()
else :
print "ok, %s" % (data)
time.sleep(1)
ser.readline()
答案 0 :(得分:0)
你的循环丢掉了很多行。它会[丢弃,读取,丢弃],重复。这是故意的吗?
答案 1 :(得分:0)
我通过将ser.flush()ser.flushInput()ser.flushOutput()添加到循环的末尾来解决了这个问题。 刷新输入和输出缓冲区。