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

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

3天内不再提示

Raspberry Pi GPIO引脚介绍

从未拥有 来源:DevicePlus 作者:DevicePlus 2023-02-24 18:08 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。近年来,Raspberry Pi因其可以用作可用于媒体和复古视频游戏的廉价、兼容的Linux机器以及网络设备而备受喜爱。多年来,一些业余爱好者一直以这些方式来使用他们的Pi,但是有些人并不清楚设备侧面的引脚到底是做什么的。
其实,正是这些引脚发挥着Pi的真实功用。它们可以控制家居设备、机器、新的发明,甚至机器人。那么,为什么这么多人都对这些引脚不甚了解呢?
poYBAGPzHaiAP4AwAABElLQLcZM408.jpg

这些引脚的实际作用是什么?

这40个(或26个,取决于您的Pi型号)引脚是所谓的“GPIO接口”的一部分。在这些接口中,有四种主要的引脚:
电源: 提供3.3V和5V的直流电源
接地(GND): 连接到地端,以闭合电路
DNC: 代表“不连接”,所以可以忽略
GPIO: 可以设置为发送或接收控制电压
GPIO代表“通用输入/输出”,正是这些引脚让Raspberry Pi发挥了其功效。因为这些引脚没有特定的功能,所以可以设置为某个专用功能,例如控制信号
poYBAGPzHaqAcWtMAAA4-tn6FKE807.jpg
设置为输出的GPIO引脚可以提供3.3V(高电平信号)或0V(低电平信号)的电压。当设置为输入时,该引脚可以读取相同数值的电压。

GPIO引脚不能提供过多电源

需要谨记的很重要的一点是GPIO引脚(以及3.3V电源引脚)是用于控制其他组件并与之通信的。
您可以从组合的3.3V引脚中获取约51mA的电流,但是在连接的时候需要小心;如果您试图让电路从这些3.3V引脚获取过大的电流,这可能会烧坏整个电路板。
而5V电源引脚则可以为您获取电源提供的所有电流,其中要减去Raspberry Pi本身使用的电源。

将GPIO引脚连接到面包板

当您第一次使用这些GPIO引脚时,最好使用一个面包板。这样的话可以在不进行焊接的情况下构建电路并对其进行修改。
如果您以前从来没有使用过面包板,请通过以下视频了解其基础知识:

GPIO扩展板也会起到很大的作用,可以通过引线将其连接到GPIO接口,并将引脚直接放置在面包板上,这些引脚带有明确的标记。
不过这需要一些空间:面包板每侧需要20行。一个小的板子几乎就只有20行!有多余的40行左右的面包板可以为初学者提供充足的空间。

具有特殊用途的GPIO引脚

每个GPIO引脚都可以设置为用于发送和接收高电平和低电平信号。有些引脚也会有一些特殊用途。
我们不会在这里进行深入探究,只需要了解大概就好。

硬件 PWM

GPIO引脚输出3.3V或0V:一个高电平信号或低电平信号。脉宽调制或PWM,是一种通过快速打开和关闭引脚来模拟介于两者之间电压的方法。
这不是真正的模拟信号,但是可以用于调暗LED光线之类的功能。它的闪烁速度要大于您的视觉敏感频率,所以您看到的只是灯光变暗了而已。
您可以使用低通滤波器将PWM平滑为模拟信号。如果您对音质不是很挑剔的话,可将其用于模拟音频,比如用于门铃或者玩具就不错。
您可以使用软件通过任意GPIO引脚生成PWM信号,但是操作系统会将其与其他任务并行处理,所以该信号可能会发生振动。
GPIO引脚18和19上有可用的硬件PWM。硬件PWM和耳机插孔使用相同的电路,所以不能同时使用。

串行总线引脚

当您查看下面的图表时(被称作Raspberry Pi“引脚图”),您会看到一些引脚是I2C、 SPI以及UART串行。这些是可用于与其他组件之间进行数据发送和接收的串行总线协议。
pYYBAGPzHa6AEOwiAADLXdfKrGU345.png
您可以将这些与模拟转换器DAC结合使用,以输出模拟信号。如果想要高质量的音频或者想要控制许多组件,这种方式可能比使用PWM方式更可取。

上拉和下拉电阻

通常,您会希望Raspberry Pi GPIO引脚可以读取按钮或者开关的位置。这通过接线可以很容易实现,因为接线之后,被连接于控制电压以读取高电平信号或接地以读取低电平信号的电路将会闭合。
问题是当这个电路断路而没有任何信号连接到引脚时,它可能会返回任何值,这被称为“浮动”,是完全没有任何作用的。
您可以使用“上拉”或“下拉”电阻来防止浮动。
将一个上拉电阻连接到您的控制电压,当没有其他任何连接时,引脚将读取高电平信号。将一个下拉电阻接地,引脚将读取低电平信号。使用任何一个都会为您提供您的开关或按钮的相反值。
您不需要将这些电阻连接到电路中。它们已经内置在Raspberry Pi中,您可以通过软件控制它们。

使用软件控制GPIO引脚

控制GPIO引脚的最简单方法之一是使用Python中的GPIO Zero 库。如果您以前写过Python代码,这对您来说将会很容易上手。
如果这是您第一次使用Python,您可能需要先学习一些介绍性的教程。如果您不打算学习这些教程,也可以直接使用下面的指令,但是您可能会理解不了。“用Python将枯燥的工作自动化(utomate the Boring Stuff With Python)”的网络版本是个不错的选择,而且是免费的。
GPIO Zero是默认安装在Raspbia Desktop映像上的。如果您使用的是Raspbian Lite或其他操作系统,那么可能需要另行安装。

让我们使用它来开启灯光

现在,让我们来试试打开LED吧!这么简单的工作其实不需要使用计算机,但我们将在GPIO引脚中加入Raspberry Pi。
为此,您将需要:

一个带电源的Raspberry Pi以及一个安装了Raspbian的SD pYYBAGPzHTCAPeTzAAAZXrMS0tI642.jpg
一个面包板 poYBAGPy0t6AI3TuAAAWaY2q8tc733.jpg
一个GPIO扩展板(可选,但是推荐使用) poYBAGPzHXeARu3AAAApSEMweUA937.jpg
一个LED pYYBAGPzHbeAW1I7AAALTaOKUUs504.jpg

您还会需要一些通用设备,例如:
• 电阻值在220Ω~1000Ω之间的电阻
• 一个USB键盘,或者SSH连接:可以让您输入指令的设备
• 跨接电缆或电线
• 一个下推按钮

连接电源轨

如果您使用的是扩展板,请将其连接到Raspberry Pi和面包板上。然后将3.3V电源引脚连接到穿过面包板底部的正电源轨,并将接地引脚连接到负电源轨。

连接并测试按钮

现在将您的按钮添加到面包板的中间。将按钮的一个引脚连接到一个Raspberry Pi GPIO引脚。我用的是13,因为这是我的幸运数字。
然后,将按钮对角相对的引脚连接到负电源轨。当您按下此按钮时,电路将会闭合。
最后,我们需要让Pi注意这个引脚,所以我们需要打开Python解释器。在命令行中输入:
python3
然后在解释器中输入:
from gpiozero import Button
如果您收到一条消息说“ImportError”,就检查一下字母的大小写是否正确。如果显示“ModuleNotFoundError”,则需要安装GPIO Zero。
如果没有以上情况发生,那么就可以将引脚指定给按钮了:
button = Button(13)
这个Button类负责分配上拉电阻。现在让我们通过输入以下指令来测试其是否有效:
while True:
if button.is_pressed:
print(‘Sweet, the button works!’)
break
Python对缩进很敏感,所以一定要对空格严加控制。然后再次按下Enter键运行循环代码。
这个循环代码会一直运行,直到有人按下按钮。这时候按下按钮,应该会产生一条说明按钮有效的消息。这就意味着您已经成功构建了一个可以向您的Raspberry Pi发送消息的简单电路。太棒了!
如果没有产生这个结果,请检查所有连接是否正确,然后重试。

连接并测试LED

LED中的D代表“二极管”,也就是说LED只能往一个方向导通。
您会注意到LED有一个引脚稍长:这将会被连接到正极。在本项目中,正极就是GPIO引脚。我使用的是引脚26,没有什么特别的原因。
将LED放在面包板上,确保LED的引脚之间在水平方向有间隔,以避免短路。现在将正极引脚连接到您的GPIO引脚。
LED应与电阻串联,所以将电阻的一端连接到LED的短引脚上,另一端连接到负电源轨上。电阻没有方向性,可以与任意端连接。
poYBAGPzHbqAMAjRAAAwijXJVpw825.jpg
现在让我们告诉Raspberry Pi发生了什么。类型:镜像 Pi & Breadboard
from gpiozero import LED
led = LED(26)
如果一切连接正确,您将能够使用以下指令打开和关闭LED:
led.on()
led.off()

使用按钮控制LED

现在已经完成了连接,并且经检查一切正常,输入:
button.when_pressed = led.on
然后按下按钮。LED应亮起并保持亮起的状态。现在输入:
button.when_released = led.off
再次按下按钮。松开按钮后LED应关闭。

恭喜!您已经实现了GPIO引脚的使用!

虽然这些原理看起来很简单,但是它们可以作为基础来构建数千个现目,甚至可以构建您自己的项目。请注意安全,谨慎操作,但是最重要的一点是,一定要玩得开心!

pYYBAGPbhjqAbi1JAAAGd6_rQT0867.png

DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。


审核编辑黄宇

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

    关注

    16

    文章

    1045

    浏览量

    48973
  • GPIO
    +关注

    关注

    16

    文章

    1137

    浏览量

    50596
  • Raspberry Pi
    +关注

    关注

    1

    文章

    552

    浏览量

    22055
收藏 人收藏

    评论

    相关推荐

    Raspberry Pi GPIO的编号规范(转)

    本帖最后由 江口kk 于 2014-8-12 22:45 编辑 Raspberry Pi GPIO的编号规范(转)树莓派和普通电脑不一样的地方在于它还带了17个可编程的GPIO
    发表于 08-09 19:39

    基于Amazon Echo 和 Raspberry Pi 的自动窗帘控制

    的基极连接到 Raspberry Pi。我连接到物理引脚11,15和22号,映射到BCM格式的GPIO引脚17,22和25,更多关于物理和逻
    发表于 08-23 16:04

    Raspberry Pi Pico是什么

    Waveshare给您介绍一款树莓派家族的新成员,Raspberry Pi Pico 是一款低成本,高性能的微控制器开发板,具有灵活数字接口。硬件上,采用Raspberry
    发表于 07-14 07:02

    Raspberry Pi上的IO引脚编号有几种方法

    一. 导入RPI.GPIOimport RPi.GPIO as GPIO二. 指定引脚编号方式RPi.GPIO中的Raspberry
    发表于 02-17 06:33

    一个印有PINOUT的Raspberry Pi pico分线板

    描述Raspberry Pi Pico 分线板(GPIO 扩展)方面:60 毫米 x 60 毫米特征:紧凑型设计4x M2 螺丝安装座2.54mm间距焊盘2.54mm 间距排针兼容用于外围设备的额外
    发表于 07-27 06:33

    用于Raspberry Pi的DIN导轨安装

    设计允许 DINPi 板反向或倒置使用而不会出现问题。镜像引脚(见下文)允许使用直角接头和插座将多个板连接在一起,也可用于倒置安装 Raspberry Pi,同时保持正确的 GPIO
    发表于 08-26 07:55

    带超频冷却孔径的Raspberry Pi GPIO

    描述Raspberry Pi GPIO 帽,带超频冷却孔径这是一个 Raspberry Pi 帽子,它允许
    发表于 09-12 06:14

    用于40针Raspberry Pi型号的GPIO分线板

    描述Raspberry Pi 40 针 GPIO 扩展器,带 BCM 编号用于 40 针 Raspberry Pi 型号的
    发表于 09-13 07:40

    Raspberry Pi 3 官方套件入门指南

    Raspberry Pi 3套件介绍Raspberry Pi 3套件安装Raspberry
    发表于 10-09 07:53

    树莓派GPIO引脚的说明

    Raspberry Pi有多种使用SPI的设备和扩展HAT,它可以为您的项目提供比常规GPIO引脚所能承受的硬件更多的硬件。但是,它确实需要大量的布线才能运行。
    的头像 发表于 12-02 10:37 3w次阅读

    Raspberry Pi GPIO帽开源分享

    电子发烧友网站提供《Raspberry Pi GPIO帽开源分享.zip》资料免费下载
    发表于 08-18 11:01 2次下载
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b>帽开源分享

    用于40针Raspberry Pi型号的GPIO分线板

    电子发烧友网站提供《用于40针Raspberry Pi型号的GPIO分线板.zip》资料免费下载
    发表于 08-19 09:35 2次下载
    用于40针<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>型号的<b class='flag-5'>GPIO</b>分线板

    使用Adafruit IO作为MQTT控制Raspberry Pi GPIO的AC设备

    在本教程中,我们将使用 Adafruit IO 作为 MQTT 代理来控制连接到 Raspberry Pi GPIO 的 AC 设备。
    的头像 发表于 09-01 16:30 2180次阅读
    使用Adafruit IO作为MQTT控制<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b>的AC设备

    如何使用GPIO引脚将按钮连接到Raspberry Pi

    电子发烧友网站提供《如何使用GPIO引脚将按钮连接到Raspberry Pi.zip》资料免费下载
    发表于 12-23 17:04 0次下载
    如何使用<b class='flag-5'>GPIO</b><b class='flag-5'>引脚</b>将按钮连接到<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>

    通过RPi.GPIO Python库使用Raspberry Pi GPIO引脚

    在2016年推出GPIO Zero之前,新用户通常使用另一个Python模块(RPi.GPIO)来使用GPIO引脚
    的头像 发表于 02-25 17:36 1886次阅读
    通过RPi.<b class='flag-5'>GPIO</b> Python库使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b><b class='flag-5'>引脚</b>