简单的Raspberry Pi 2 GPIO不起作用

时间:2017-03-27 04:28:13

标签: raspberry-pi

我尝试使用以下代码在Raspberry Pi 2上使用RPi.GPIO创建一个简单的按钮脚本。

import RPi.GPIO as GPIO
import time
import os

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN, pull_up_down = GPIO.PUD_UP)

while True:

  input_state=GPIO.input(25)
  if input_state==False:
    print("Open")
    time.sleep(0.1)

  GPIO.cleanup()

但是,上述代码似乎不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:2)

你的问题来自while循环中的GPIO.cleanup()

你必须把它移到循环之外。

否则,如果您在每次迭代时执行它,它将删除引脚配置,您的脚本将无法正常工作。

此外,您可能对仅在检测到边缘(下降或上升)时触发的GPIO.wait_for_edge感兴趣。

示例代码:

while True:
    GPIO.wait_for_edge(25, GPIO.RISING)
    print('Button 1 Pressed')
    GPIO.wait_for_edge(25, GPIO.FALLING)
    print('Button 1 Released')
GPIO.cleanup()