【发布时间】:2013-09-19 08:52:26
【问题描述】:
当 gpio.input(i) = true 时,我试图让“p”触发/触发器 0 和 1
谁能告诉我这段代码有什么问题 - 它不起作用!
import RPi.GPIO as gpio
import time as time
gpio.setmode(gpio.BOARD)
i = 15
o = 11
t = 0.3
p = 0
gpio.setup(i, gpio.IN)
gpio.setup(o, gpio.OUT)
gpio.output(o, True)
while True:
if gpio.input(i) and p == 0:
print("P = 1")
p = 1
time.sleep(2)
else:
if (gpio.input(i)) and p == 1:
p = 0
while True:
if p == 1:
gpio.output(o, False)
time.sleep(t)
gpio.output(o, True)
time.sleep(t)
【问题讨论】:
-
你看到了什么输出做?
-
请注意,第二个循环将永远执行,因为您的第一个循环永远不会结束。
-
@MartijnPieters:这可能表明翻转不是真正的问题。
-
另外,因为您在 else 子句中有第二次调用 gpio.input(),所以每个循环会调用一次或两次,具体取决于 p 的值。我怀疑这就是你想要的。
标签: python variables if-statement set