向raspberry pi项目添加按钮的两种方法

如何将按钮连接到覆盆子Pi?这里有两种入门方法,使用Python和LED演示。...

学习在你的树莓圆周率上使用GPIO引脚打开了一个充满可能性的世界。通过初学者项目学习的基本原理为DIY电子和编程的有用知识铺平了道路。

本教程将向您展示两种向Raspberry Pi项目添加按钮的方法。该按钮将用于控制LED。视频下方有书面说明。

你需要

要开始,请确保您具有以下组件:

  • 1个覆盆子Pi(任何型号都可以,本教程中使用型号3B)
  • 1个按钮
  • 1个LED
  • 1 x 220欧姆电阻器(值越高越好,您的LED只会越暗)
  • 1个试验板
  • 连接线

收集后,您应该有如下组件:

您还需要安装Raspbian操作系统的SD卡。最快的方法是使用NOOBS(新的开箱即用软件)映像。本视频中提供了有关如何执行此操作的说明:

设置电路

您将使用Pi的GPIO引脚来**电路,如果您不熟悉,我们的Raspberry Pi GPIO引脚指南将提供帮助。这里的电路几乎与我们之前的Raspberry Pi LED项目相同,添加了您今天将使用的按钮。

根据此图设置电路:

  • 5v和GND引脚连接至试验板的电源导轨。
  • 引脚12(GPIO 18)连接至LED的正极支脚。
  • 电阻器的一个支脚连接到LED的负极支脚,另一个支脚连接到试验板的接地导轨。
  • 引脚16(GPIO 23)连接到按钮的一侧,另一侧连接到试验板的接地导轨。

一旦设置好,下面是它的外观:

检查电路,确保其正确无误,然后接通覆盆子Pi电源。

方法1:rpi.gpio库

Pi启动后,进入菜单并选择编程>Thonny Python IDE。将打开一个新的Python脚本。如果您对Python完全陌生,那么它对于初学者来说是一种很棒的语言,在您完成本教程之后,有很多地方可以学习更多关于Python的知识!

首先导入RPi.GPIO库,并设置线路板模式。

import RPi.GPIO as GPIOGPIO.setmode(GPIO.BOARD)

现在声明LED和按钮管脚编号的变量。

ledPin = 12buttonPin = 16

请注意,由于我们已将board mode设置为board,因此我们使用的是管脚编号,而不是GPIO编号。如果这让你感到困惑,一个覆盆子圆周率皮诺图可以帮助你把它弄清楚。

设置按钮

是时候设置GPIO引脚了。使用上拉电阻器将LED引脚设置为输出,将按钮引脚设置为输入

GPIO.setup(ledPin, GPIO.OUT)GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.IN后的文字指树莓Pi的内部上拉电阻器。您需要启用此选项才能从按钮获得清晰的读数。由于按钮将连接到接地引脚,我们需要一个上拉电阻器将输入引脚保持在高位,直到您按下它。

在我们继续之前,让我们看看上拉电阻和下拉电阻。

间歇:上拉/下拉电阻器

当您将GPIO引脚配置为输入时,它将读取该引脚以确定其状态。在这个电路中,当按下按钮时,您需要读取引脚是高还是低来触发LED。如果这些是pin可以拥有的唯一状态,那么这将很简单,但不幸的是,还有第三种状态:浮动。

浮动引脚的值介于高和低之间,导致输入动作不可预测。上拉/下拉电阻器解决此问题。

上图是一个按钮和树莓圆周率的简化图。GPIO引脚通过按钮接地。内部上拉电阻器将GPIO引脚连接到内部Pi电源。该电流流动,引脚被安全地拉高至高位。

按下按钮时,GPIO引脚直接连接到接地引脚,按钮读数为低。

下拉电阻器用于开关连接到电源引脚时使用。这一次,内部电阻器将GPIO引脚接地,保持在低电平,直到按下按钮。

上拉和下拉电阻理论乍一看令人困惑,但在使用微控制器时需要掌握重要的知识。现在,如果你不太明白,别担心!

让我们继续我们结束的地方。

程序循环

接下来,设置程序循环:

while True: buttonState = GPIO.input(buttonPin) if buttonState == False: GPIO.output(ledPin, GPIO.HIGH) else: GPIO.output(ledPin, GPIO.LOW)

while-True循环持续运行其中的代码,直到程序结束。每次循环时,它都会通过读取buttonPin的输入来更新buttonState。当按钮未按下时,它将保持高位。

按下按钮后,按钮状态变低。这将触发if语句,因为False与LOW相同,并且LED亮起。只要按钮输入不为False,else语句就会关闭LED。

保存并运行脚本

单击“文件”保存脚本>另存为并选择文件名。可以通过单击Thonny工具栏中的绿色播放按钮来运行草图。

现在按下按钮,您的LED应该亮起!随时按下红色停止按钮以停止程序

如果遇到困难,请彻底检查代码和电路设置是否存在错误,然后重试。

方法2:gpio零库

RPi.GPIO库非常棒,但是有一个新成员。GPIO Zero库是由Raspberry Pi社区经理Ben Nuttall创建的,旨在使代码更简单、更易于阅读和编写。

要测试新库,请打开新的Thonny文件,然后导入库。

from gpiozero import LED, Buttonfrom signal import pause

您会注意到您没有导入整个库。由于您仅使用LED和按钮,因此脚本中只需要这些模块。我们还从signal库导入Pause,signal库是用于事件管理的Python库。

使用GPIO Zero设置引脚要容易得多:

led = LED(18)button = Button(23)

由于GPIO Zero库具有LED和按钮模块,因此不需要像以前那样设置输入和输出。你会注意到,虽然引脚没有改变,但这里的数字与上面的不同。这是因为GPIO Zero仅使用GPIO引脚编号(也称为Broadcom或BCM编号)。

脚本的其余部分只有三行:

button.when_pressed = led.onbutton.when_released = led.offpause()

这里的pause()调用只是在脚本到达底部时停止脚本退出。每当按下和释放按钮时,就会触发两个按钮事件。保存并运行脚本,您将看到与以前相同的结果!

向raspberry pi添加按钮的两种方法

在设置按钮的两种方法中,GPIO Zero方法似乎是最简单的。关于RPi.GPIO库仍然值得学习,因为大多数初学者Raspberry Pi项目都使用它。尽管这个项目很简单,但这些知识可以用于很多事情。

使用GPIO引脚是学习和发明您自己的设备的一个很好的方法,但它远不是Pi所能做的一切。我们的树莓皮的非官方指南充满了创造性的想法和教程,你可以自己尝试!对于其他类似的教程,请查看如何**Wi-Fi连接按钮。

Subscribe to our newsletter

Join our newsletter for tech tips, reviews, free ebooks, and exclusive deals!

Click here to subscribe

  • 发表于 2021-08-05 20:23
  • 阅读 ( 168 )
  • 分类:IT

你可能感兴趣的文章

树莓皮:非官方教程

This guide is available to download as a free PDF. Download this file now. Feel free to copy and share this with your friends and family. ...

  • 发布于 2021-03-13 15:59
  • 阅读 ( 289 )

在raspberry pi上安装软件的5种方法

让你的手在树莓皮打开了一个了不起的世界计算项目-从媒体中心和NAS盒的Android仿真,机器人,复古游戏和软件开发。 ...

  • 发布于 2021-03-15 00:30
  • 阅读 ( 436 )

如何用树莓皮打造自己的android平板电脑

想自己**四核平板电脑吗?发现商业选择过于昂贵而无法考虑?只需一个树莓皮,一些3D打印外壳,一个可充电电池,和一个触摸屏显示器,你就可以——这里是方法。 ...

  • 发布于 2021-03-18 17:31
  • 阅读 ( 313 )

适合初学者的11个最佳树莓圆周率项目

树莓圆周率是一个伟大的小机器-它的负担得起,高度便携,用户友好。但是,当你第一次得到一个,它可能是棘手的,以找出哪些项目,你应该首先承担。 ...

  • 发布于 2021-03-19 13:42
  • 阅读 ( 273 )

26种树莓皮的妙用

This guide is available to download as a free PDF. Download this file now. Feel free to copy and share this with your friends and family. ...

  • 发布于 2021-03-19 18:15
  • 阅读 ( 352 )

10款酷派raspberry pi+windows 10款物联网核心项目

Windows10IoT核心(物联网)并没有得到应有的认可,尤其是与Raspberry Pi一起使用时。但这并不意味着没有很多很酷的项目。 ...

  • 发布于 2021-03-24 08:01
  • 阅读 ( 215 )

如何用这10个diy项目为你的旧车添加智能功能

每一代新车都有越来越多的技术安装,但是如果你拥有一个旧的车型呢?即使是3-5年前生产的车型也缺少了很多你可能希望找到的技术。 ...

  • 发布于 2021-03-24 08:58
  • 阅读 ( 258 )

为什么树莓pi比odroid和其他sbc更成功

Raspberry Pi于2012年首次亮相,此后单板计算机(SBC)经历了一系列迭代,最终推出Raspberry Pi 3 B+。 ...

  • 发布于 2021-03-24 21:10
  • 阅读 ( 382 )

如何在raspberry pi上的raspbian中安装retropie作为应用程序

想安装RetroPie,但不想失去现有的Raspbian项目和环境?不热衷于双重启动的想法?答案是将RetroPie作为一个应用程序安装在Raspbian中。事实上,这很简单,你会想为什么你以前没有这样做。 ...

  • 发布于 2021-03-25 02:31
  • 阅读 ( 215 )

raspberry pi os在更新后加入microsoft repo后面临用户的回击

最近有消息称,开源操作系统Raspberry Pi OS在安装过程中安装了一个Microsoft存储库。包含微软众多存储库中的一个意味着每次Raspberry Pi操作系统更新时,它都会ping一个微软服务器,可能会泄露有关你设备的信息。 ...

  • 发布于 2021-03-26 18:46
  • 阅读 ( 126 )
好汉哥123
好汉哥123

0 篇文章

相关推荐