使用Raspberry Pi使用按钮开关

Using a Push Button Switch with the Raspberry Pi

 

按钮开关是一种简单而有效的输入设备,通常用于启动或停止过程,控制LED或触发事件等项目。本教程将带您通过将按钮开关连接到Raspberry Pi,设置接线并编写Python脚本以检测按钮按下。


你需要什么

  1. 覆盆子pi (任何具有GPIO支持的模型,例如PI 3,PI 4)
  2. 按钮开关
  3. 面包板和跳线电线
  4. 电阻 (10kΩ用于下拉)
  5. 安装了Python 在你的覆盆子pi上
  6. GPIO库 用于控制覆盆子Pi的GPIO引脚

步骤1:将按钮接线到Raspberry Pi

按下按钮开关可以通过将GPIO引脚连接到高(3.3V)状态时,或在不按下时将其拉到低(0V)。我们将使用下拉电阻器来确保当按钮不按下时GPIO引脚读取较低。

接线按钮

按钮销 覆盆子Pi Gpio Pin
一个别针 GPIO17(引脚11)
其他针 地面(引脚6)
一个别针 10kΩ电阻到地面

这是布线设置:

  • 将按钮的一个端子连接到 GPIO17 (引脚11)。
  • 将按钮的另一个终端连接到 地面 (引脚6)。
  • 在之间连接10kΩ电阻 GPIO17地面 充当下拉电阻。

这样可以确保按下按钮时,GPIO17读取高(3.3V),并且当不按下时,电阻器将GPIO17拉到低(0V)。


步骤2:在Python中启用GPIO引脚

  1. 首先,更新Raspberry Pi的包装列表:

    sudo apt update
    sudo apt upgrade -y
    
  2. 安装所需的Python GPIO库(如果尚未安装):

    sudo apt install python3-rpi.gpio
    
  3. 在您的Python脚本中导入库:

    import RPi.GPIO as GPIO
    import time
    

步骤3:编写Python代码

现在,让我们编写一个Python脚本以检测何时按下按钮并相应地采取行动。

Python代码示例

import RPi.GPIO as GPIO
import time

# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM)        # Use BCM numbering
button_pin = 17               # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)  # Set up pin with pull-down resistor

# Function to detect button press
def button_callback(channel):
    print("Button was pressed!")

# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)

try:
    print("Press the button...")
    while True:
        # Keep the program running to wait for button press
        time.sleep(0.1)
except KeyboardInterrupt:
    print("Program exited")
finally:
    GPIO.cleanup()  # Clean up GPIO to ensure a clean exit

代码说明:

  • gpio.setmode(gpio.bcm):将GPIO引脚编号设置为BCM(BroadCom)模式。
  • gpio.setup(button_pin,gpio.in,pull_up_down = gpio.pud_down):将按钮引脚配置为带有下拉电阻器的输入,这意味着当不按下时它将读取低。
  • gpio.add_event_detect():检测GPIO PIN的上升边(按钮按)并触发回调功能 button_callback 按下按钮时。
  • 时间。:保持脚本运行,允许其等待按钮按下。
  • gpio.cleanup():当脚本退出时清理GPIO设置。

步骤4:测试按钮

  1. 运行您的Python脚本:

    python3 button.py
    
  2. 按下按钮并观察消息“按下按钮!”在终端。


步骤5:应用程序

以下是使用项目中的按钮的一些想法:

  1. 控制LED:使用按钮打开和关闭LED。
  2. 触发事件:启动或停止进程(例如,启动电动机,打开风扇或启动脚本)。
  3. 聪明的门铃:使用按钮作为门铃将通知发送到手机。
  4. 用户输入:获取项目的简单用户输入(例如“是/否”答案)。

故障排除

  • 按钮未检测到:

    • 确保与下拉电阻正确连接到按钮。
    • 仔细检查代码中的GPIO PIN设置。
  • GPIO错误:

    • 确保正确安装了GPIO库,并且脚本中的PIN号是正确的。
  • 按钮弹跳:

    • 如果您注意到检测到多个按钮,则可以添加访问时间(bouncetime=300 在脚本中)避免错误检测。

结论

使用Raspberry Pi使用按钮开关是向您的项目添加输入功能的一种简单方法。无论是切换LED,触发事件还是与其他硬件进行交互,这种简单的设置都可以成为许多有趣的应用程序的基础。尝试不同的GPIO引脚并进行审核设置,以满足您的需求!

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.