0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:网络整理 作者:网络整理 2019-11-29 17:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

学习使用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连接按钮。
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 按钮
    +关注

    关注

    0

    文章

    134

    浏览量

    13394
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109709
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用树莓与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓和OpenCV的连载专题。使用树莓与OpenCV实现姿态估计和面部特征点追踪使用树莓
    的头像 发表于 08-14 17:45 961次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>与OpenCV实现面部和运动追踪的云台系统?

    树莓屏幕怎么选?

    树莓很多人都用过,但用屏幕的倒不是很多。不少都是直接远程操作,或者直接接身边的显示设备了。但我觉得给开发板配一个屏幕还是很能提升使用体验的。这次我就介绍一下树莓的屏幕怎么选择。
    的头像 发表于 08-08 14:59 1064次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>屏幕怎么选?

    20个任何人都能完成的树莓酷炫项目

    的教程。我们假设你使用的是树莓4,但大多数项目也适用于旧款机型,甚至树莓Zero和Zero2
    的头像 发表于 07-03 17:10 3021次阅读
    20个任何人都能完成的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>酷炫<b class='flag-5'>项目</b>!

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    树莓是一款小巧便携的USB供电计算机,可以隐藏起来用于小型项目,如网络服务器或家庭自动化。通常,设置树莓需要键盘和显示器来编辑和查看
    的头像 发表于 06-26 15:41 1044次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓部署 Kubernetes:通过 UDM Pro 实现 BGP 负载均衡!

    。使用Cloudfleet等允许远程本地节点的托管Kubernetes服务,可以卸载这一责任。这种方法树莓能够将其资源专门用于运行工作负载,而不是消耗CPU和内存来处理控制平面任务
    的头像 发表于 06-25 18:00 740次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>部署 Kubernetes:通过 UDM Pro 实现 BGP 负载均衡!

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 994次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓
    的头像 发表于 06-04 15:33 1145次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目

    完成的许多酷炫项目。这就引出了一个问题——你该如何将树莓的性能推向极限呢?历经13年的项目实践和树莓
    的头像 发表于 05-22 16:53 1199次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的<b class='flag-5'>项目</b>!

    树莓5 与 树莓4:深度对比与独特优势!

    随着技术的不断发展,推动创新与创造力的工具和设备也在不断升级。其中,树莓派系列凭借其多功能性和强大性能,在从简单的DIY项目到复杂的计算任务等众多应用场景中脱颖而出。随着树莓5的近期
    的头像 发表于 05-21 13:15 2070次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>5 与 <b class='flag-5'>树莓</b><b class='flag-5'>派</b>4:深度对比与独特优势!

    能够精准定位的树莓机器人!

    我为我的自制机器人BigRob(同样由树莓驱动)配备了基于树莓的精准GPS导航系统。本项目所用组件硬件组件NV08C-CSMx1NV08
    的头像 发表于 05-17 08:33 842次阅读
    能够精准定位的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>机器人!

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1
    的头像 发表于 05-13 16:39 870次阅读
    用 <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游车!

    用意念控制灯光亮度?这个树莓项目有点意思...

    和Muse2EEG头带。此项目通过根据情绪平静程度调节灯泡亮度来辅助冥想,帮助使用者凝神静气。在XDA网站上,我们已见识过各式各样的树莓项目
    的头像 发表于 04-30 18:42 415次阅读
    用意念控制灯光亮度?这个<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>项目</b>有点意思...

    五个树莓组团出击!打造动态立体图相机!

    在享受摄影乐趣的同时,还能沉浸于3D空间。有一种方法能让我们对树莓项目兴奋不已,那就是在一个项目中尽可能多地使用
    的头像 发表于 04-30 18:41 374次阅读
    五个<b class='flag-5'>树莓</b><b class='flag-5'>派</b>组团出击!打造动态立体图相机!

    超酷的树莓智能镜项目,快来了解!

    嘿,宝子们!今天给大家分享一些超厉害的树莓智能镜项目。这个链接里有8个目前为止我们见过的最好的树莓智能镜
    的头像 发表于 03-25 09:33 1257次阅读
    超酷的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>智能镜<b class='flag-5'>项目</b>,快来了解!

    GPIO在树莓中的应用

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的信用卡大小的单板计算机,它具有强大的功能和灵活性,可以用于各种项目和应用。通
    的头像 发表于 01-09 09:41 1250次阅读