NameError:名称'TRUE'未定义PIR传感器

时间:2016-05-23 04:07:26

标签: android raspberry-pi sensor gpio

当用户将双手放在PIR传感器上时,我无法编程2个PIR传感器的逻辑来在控制台中打印消息。我已经设法使用GPIO,GND和成功将PIR传感器连接到树莓派中。 5v端口。我当前拥有的代码会在控制台中打印出一条消息,只要有人在那里挥手,但是当有人在PIR传感器上挥手时,我很难修改代码以打印出错误信息。

enter image description here

我们可以使用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引脚允许我们使用引脚4作为输入;然后它可以检测PIR模块何时发送电力。该引脚不断检查是否有任何更改,使用一段时间的True循环。这是一个无限循环,所以程序将连续运行,除非我们用Ctrl + C手动停止它。然后使用两个布尔变量(True或False)作为引脚的先前和当前状态,前一个状态是当前状态是围绕循环的前一次

1 个答案:

答案 0 :(得分:1)

在Python中使用&#34; True&#34;而不是&#34; TRUE&#34;:

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: