向树莓派项目添加按钮的2种方法

学习使用raspberry pi上的gpio引脚将为您带来无限可能。通过初学者项目学习的基本原理为diy电子和编程的实用知识铺平了道路。
本教程将向您展示两种向raspberry pi项目添加按钮的方法。该按钮将用于控制led。视频下方提供了书面说明。
您将需要
要开始使用,请确保您具有以下组件:
1 x raspberry pi(可以的话,本教程中会使用3b型)
1 x按钮
1 x led
1 x 220欧姆电阻(更高的值没问题,您的led就会变暗)
1 x面包板
连接电线
一旦收集,您应该拥有外观美观的组件像这样的东西:
您还需要安装raspbian操作系统的sd卡。最快的方法是使用noobs(全新的开箱即用软件)映像。该视频中提供了有关如何执行此操作的说明:
设置电路
您将使用pi的gpio引脚来制作电路,如果您不熟悉,通过它们,我们的raspberry pi gpio引脚指南将有所帮助。此处的电路几乎与我们以前的raspberry pi led项目相同,只是增加了您今天要使用的按钮。
根据下图设置电路:
5v 和 gnd 引脚连接到面包板的电源轨。
引脚12(gpio 18)连接到led的正极。
电阻的一个引脚连接到led的负极。
pin 16(gpio 23)固定在按钮的一侧,另一侧固定在面包板的接地轨上。面包板的接地轨。
一旦设置好,它的外观应为:
检查
方法1:rpi.gpio库
一旦pi启动,请转到菜单,然后单击“确定”。选择编程》 t honny python ide 。一个新的python脚本将打开。如果您是python的新手,那么它对于初学者来说是一种很棒的语言,并且在完成本教程后,有很多不错的地方可以了解有关python的更多信息!
首先导入rpi.gpio库,然后设置板模式。
import rpi.gpio as gpio
gpio.setmode(gpio.board)
现在,声明led和按钮引脚号的变量。
ledpin = 12
buttonpin = 16
请注意,由于我们将板模式设置为 board ,因此我们使用的是引脚号而不是gpio号。如果让您感到困惑,raspberry pi引脚分布图可以帮助您清除它。
设置按钮
是时候设置gpio引脚了。使用上拉电阻将led引脚设置为输出,将按钮引脚设置为输入
gpio.setup(ledpin, gpio.out)
gpio.setup(buttonpin, gpio.in, pull_up_down=gpio.pud_up)
gpio.in之后的文本表示内部上拉电阻。 raspberry pi的上拉电阻器。您需要启用它才能从按钮上获得清晰的读数。由于该按钮将连接到接地引脚,因此我们需要一个上拉电阻将输入引脚保持为高电平,直到您按下它为止。
在继续操作之前,我们先来看一下上拉和下拉
中断:上拉/下拉电阻
在将gpio引脚配置为输入时,它将读取该引脚以确定其状态。在此电路中,您需要读取引脚是 high 还是 low 以便在按下按钮时触发led。如果这是引脚可以具有的唯一状态,那么这将很简单,但是不幸的是,还有第三种状态:浮动。
浮动引脚的值介于高电平和低电平之间,导致输入行为异常。上拉/下拉电阻器可以解决这个问题。
上图是按钮和raspberry pi的简化图。 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)
true 循环会不断在其中运行代码,直到结束程序。每次循环时,它都会通过读取 buttonpin 的输入来更新 buttonstate 。当未按下按钮时,它保持高。
按下按钮后, buttonstate 将变为 low 。这会触发 if语句,因为 false 与 low 相同,并且led点亮。 else 语句在buttonpin不为false时关闭led。
保存并运行脚本
通过单击文件》保存脚本另存为并选择文件名。您可以通过单击thonny工具栏中的绿色 play 按钮来运行草图。
现在按一下按钮,然后按led应该点亮!随时按红色的停止按钮以停止程序
如果遇到困难,请检查代码和电路
方法2:gpio零库
rpi.gpio库太棒了,但是有个新手正在尝试。 gpio零库是由raspberry pi社区经理ben nuttall创建的,其目的是使代码更简单,更易于读写。
要测试新库,请打开一个新的thonny文件,然后导入
from gpiozero import led, button
from signal import pause
您会注意到您没有导入整个库。由于仅使用led和按钮,因此脚本中仅需要这些模块。我们还从信号库(用于事件管理的python库)导入暂停。
使用gpio零设置引脚容易得多:
led = led(18)
button = button(23)
由于gpio零库具有用于led和按钮的模块,因此您无需像以前那样设置输入和输出。您会注意到,尽管引脚没有改变,但此处的数字与上面的数字有所不同。这是因为gpio零仅使用gpio引脚号(也称为broadcom或bcm编号)。
脚本的其余部分只有三行:
button.when_pressed = led.on
button.when_released = led.off
pause()
此处的 pause()调用只是在脚本到达底部时停止退出脚本。只要按下并释放按钮,就会触发两个按钮事件。保存并运行脚本,您将看到与以前相同的结果!
向raspberry pi添加按钮的两种方法
在设置按钮的两种方法中, gpio zero方法似乎是最简单的。由于大多数初学者raspberry pi项目都使用rpi.gpio库,因此仍然值得学习。就像这个项目一样简单,这些知识可以用于很多事情。
使用gpio引脚是学习和发明自己的设备的好方法,但是它远远超出了您可以做的一切。 pi。我们的raspberry pi非官方指南充满了创意和教程,您可以自己尝试一下!有关另一个类似的教程,请查看如何制作wi-fi连接按钮。


MAX8660/MAX8661电源管理IC (PMIC)
苹果计划推进电动汽车生产计划 股价最新上涨2.9%
全球多家央行正在探索和使用区块链项目
德承DS-1202加速工厂自主移动机器人布署
运动控制器以模拟量信号控制伺服电机的步骤
向树莓派项目添加按钮的2种方法
目标硅谷!贸泽电子联合举办FPGA万人大赛
音频边缘处理器提供上下文感知音频体验
微电网的结构 微电网的主要特点
SIMATIC S7-1500 PLC循环中断组织块及其案例分享
杨宇欣:“如何看待特斯拉的造芯”?
ALIO-Hybrid Hexapod六轴位移台的优势及参数
IN2163CP+IN60R12,IN2164CP+IN2164CP 20W PD充电器方案的简介
怎样才能降低PCB电路板的噪声
要买一起买!Alienware台式机+Rift捆绑套餐
高压电容器放电方法
MWCSH 2023 | 《SPN/MTN使能5G切片网络》新书发布,开创自主创新新纪元
换向阀的操纵方式
什么是PWM PWM控制小车速度方法
重磅!芯片热潮下的前瞻思考