0

我对 Python 很陌生,目前正在编写一个 Photobooth。我想在投掷硬币之前停用 Buttonpress,并希望在保存照片时停用它。我只是不明白我怎么能编码它动作 ButtonPress 工作直到发生某些事情。

我知道我的代码非常混乱,但总体上运行良好。我在 Raspberry pi 上对其进行编程,并在 GPIO 18 上安装了硬币接收器。我得到 10 个脉冲,因为它是一个硬币接收器,仅适用于 1 欧元硬币。

github中的代码

这是我正在使用的代码。

如果有人能照亮我的黑暗,那就太棒了!提前致谢!

4

1 回答 1

1

如果硬币已插入,请尝试存储一个变量:

#Default is not inserted (start of script)
coin_inserted = 0

然后当插入硬币并获得十个脉冲时:

#Change the var to 1
coin_inserted = 1

在您检测到按钮按下的代码位上:

def button_press_func(coin_inserted):
    if coin_inserted = 1:
        #Take Picture
        take_picture_function(coin_inserted)
    else:
        #Error
        print("You have not inserted a coin")

在拍摄照片的代码上,完成并保存照片后,将变量设置回 0

#Change the var to 0
coin_inserted = 0

此外:

在评论中,用户强调他们不知道如何检测硬币计数器。忽略上面的代码并执行以下操作。

#Set up GPIO18 as input, this goes at the top of code
GPIO.setup(18, GPIO.in, pull_up_down=GPIO.PUD_DOWN)

然后,在您的代码末尾,永远循环,直到插入硬币。

#Will loop until ctrl+c
while True:
    if GPIO.input(18):
        take_picture_function()
        sleep(0.1)
于 2018-01-02T14:56:38.147 回答