【发布时间】:2019-05-28 10:57:15
【问题描述】:
我有以下脚本,每次按下按钮时都会增加计数器。当计数器达到某个数字(即 10)时,可以说我想要触发一个事件。
from RPi import GPIO
from time import sleep
clk = 25
dt = 8
GPIO.setmode(GPIO.BCM)
GPIO.setup(clk, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(dt, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
counter = 0
clkLastState = GPIO.input(clk)
try:
while True:
clkState = GPIO.input(clk)
dtState = GPIO.input(dt)
if clkState != clkLastState:
if dtState != clkState:
counter += 1
else:
counter -= 1
print counter
clkLastState = clkState
sleep(0.01)
finally:
GPIO.cleanup()
出于示例脚本的目的,最简单的方法是让它在达到所需数字时打印一些内容,即“达到目标”。
这个问题与我之前的帖子有关 - rotary encoder script for raspberry pi using python。我认为与其添加或修改该问题,不如分解问题以了解各个组成部分。
非常感谢
【问题讨论】:
-
没有内置的方法可以做到这一点 - 最简单的方法是在您修改
counter时检查新值是否为 10(使用简单的if)然后触发你的活动。另见,例如:stackoverflow.com/questions/6190468/… -
谢谢。我或许应该指出,我在这里找到了这个脚本 - link,虽然它在计数方面有效,但我真的不知道如何修改它以让它做我想做的事。也许我应该在那个网站上发帖,因为它可能更适合像我这样的初学者。
-
非常感谢!是的,非常贴切。
标签: python python-3.x variables raspberry-pi