Raspberry Pi 模拟读取

Raspberry Pi analog read

试图从 Arduino 模拟引脚 0 获取值以在 Tkinter 中显示为实时值,但我是 Python 的新手。

from Tkinter import *
import RPi.GPIO as GPIO
import time
from pyfirmata import Arduino, util
from time import sleep

board = Arduino ('/dev/ttyUSB0')
GPIO.setwarnings(False)

 ------------------------BOTTOM of the code----------------------------------
 root = Tk()
 frame = Frame(root,height=500,width=500)
 frame.pack()
 root.title("Relay Controle")
 # Raspsberry output pin 11 / relay
 relayButton = Button(root, text="Turn RELAY On", command=relay)
 relayButton.place(x=10,y=2,)
 # Arduino maga: led button
 ledButton = Button(root, text="Turn LED pin 13 On", command=led )
 ledButton.place(x=130,y=2,)
 # value print out
 # Quit Button
 quitButton = Button(root, text="Quit", command=func1 )
 quitButton.place(x=444,y=470,)
 root.mainloop()
root = Tk()
frame = Frame(root,height=500,width=500)
frame.pack()
my_label = StringVariable()
label = Label(frame,textvariable=my_label)
label.pack()
def updateLabel():
    my_label.set("%0.2f"%board.analog[0].read()))
    root.after(100,updateLabel)
root.after(100,updateLabel)
root.title("Relay Controle")

这只是每 100 毫秒调用一次 updateLabel ... updateLabel 然后用模拟读取的新值刷新字符串变量 ...

根据文档读取模拟引脚

#setup to recieve analog data
it = util.iterator(board)
it.start()
board.analog[0].enable_reporting()
# later to read
board.analog[0].read()

或者你早点获得模拟引脚的实例

analog_0 = board.get_pin(’a:0:i’)
#then later you can read it
analog_0.read()

所以我猜你可能没有做那个设置部分