当用户将双手放在PIR传感器上时,我很难编程两个PIR传感器在控制台中打印消息的逻辑。我已经成功地使用GPIO、GND和5v端口将PIR传感器连接到raspberry pi上。我目前拥有的代码确实会在控制台中打印出一条消息,每当有人在控制台上挥手时,我就会碰到一个消息,但是当有人在两个PIR传感器上挥手时,我很难修改代码以打印出错误消息。

我们可以使用GP4和GP17从传感器读取输入。
这是运行代码时收到的错误消息。
Traceback (most recent call last):
File "peter.py", line 22, in <module>
if current_state2(TRUE) and current_state(TRUE) != previous_state2(FALSE) and previous_state(FALSE):
NameError: name 'TRUE' is not defined这是密码
import RPi.GPIO as GPIO
import time
sensor = 4
sensor2 = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(sensor, GPIO.IN, GPIO.PUD_DOWN)
GPIO.setup(sensor2, GPIO.IN, GPIO.PUD_DOWN)
previous_state = False
current_state = False
previous_state2 = False
current_state2 = False
while True:
time.sleep(0.1)
previous_state = current_state
previous_state2 = current_state2
current_state = GPIO.input(sensor)
current_state2 = GPIO.input(sensor2)
if current_state2(TRUE) and current_state(TRUE) != previous_state2(FALSE) and previous_state(FALSE):
new_state = "HIGH" if current_state else "LOW"
new_state2 = "HIGH" if current_state2 else "LOW"
print("GPIO pin %s is %s" % (sensor, new_state, sensor2, new_state2))这个程序很简单。Raspberry Pi GPIO引脚允许我们使用pin 4作为输入,然后它可以检测PIR模块何时发送电源。引脚不断地检查是否有任何更改,为此使用了一个while True循环。这是一个无限循环,所以程序将持续运行,除非我们用Ctrl + C手动停止它,然后对引脚的前一状态和当前状态使用两个布尔变量(真或假),前一状态是当前状态在循环中的前一次状态。
发布于 2016-05-23 05:26:36
在Python中使用"True",而不是"TRUE":
if True:
print("True")
else:
print("False")也改变:
if current_state2(TRUE) and current_state(TRUE) != previous_state2(FALSE) and previous_state(FALSE):至:
if current_state2==True and current_state != previous_state2 and previous_state==False:https://stackoverflow.com/questions/37382525
复制相似问题