0

当我的 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()
4

2 回答 2

0

您的循环丢弃了许多行。它去[丢弃,阅读,丢弃],重复。这是故意的吗?

于 2013-07-02T00:26:11.467 回答
0

我通过在循环末尾添加 ser.flush() ser.flushInput() ser.flushOutput() 解决了这个问题。刷新输入和输出缓冲区。

于 2013-07-12T19:18:38.033 回答