Raspberry Pi 通用输入输出接头简单指南

23

Raspberry标头是其与现实世界交互能力的关键。根据型号的不同,Pi可以使用40引脚或26引脚,因此了解这些引脚的排列方式和标记方式非常重要。

通用输入输出头提供以下电源和接口选项:

  • 3.3V(2脚)
  • 5V(2脚)
  • 接地(8针)
  • 通用输入输出
  • PWM(脉冲宽度调制)
  • I2C
  • I2S
  • SPI
  • 序列号

这些允许将大量的传感器,电机,LED和附件连接到Pi。

Raspberry Pi 40引脚GPIO接头连接器

The majority of Raspberry Pi models 采用 the same 40-pin header :

Raspberry Pi 40引脚GPIO布局
Raspberry Pi 40引脚GPIO布局

如果要阅读印刷在PCB上的Raspberry Pi版权声明,则引脚1位于左下方,而引脚40位于右上方。

Raspberry Pi 40引脚GPIO接头对齐

The models that 采用 this configuration are :

  • Pi 4 B型
  • Pi 3 B +型
  • Pi 3 B型
  • Pi 3 A +型
  • Pi 2 B型
  • Pi模型 B+
  • Pi模型A +
  • 皮零
  • Pi零W

Pi 1模型A / B(修订版2.0)

修订版2.0对引脚3,引脚5和引脚11进行了一些细微更改。这些更改将延续到新的40引脚设计中,因此在修订版2.0模型上可用的所有内容都应在较新的模型上运行。

Raspberry Pi 通用输入输出布局- Revision 2
Raspberry Pi 通用输入输出布局–Pi 1 A / B模型修订2

Pi 1 B型(修订版1.0)

这就是一切的开始。原始的26针GPIO接头:

它由两排十三针组成。针脚1在板上明确标记为“P1”。您必须以正确的方式查看标题,这一点至关重要。定位“P1”并将标题与下图进行比较:

Raspberry Pi 通用输入输出布局- Revision 1
Raspberry Pi 通用输入输出布局–Pi 1 B型修订1

标记为Pin“P1”是引脚1,并提供3.3V(最大50mA)。您可以从那里计算所有其他引脚。请注意编号的工作方式。最上面一行的偶数和最下面一行的奇数。

白色的针以前是“DNC”(请勿连接),因为它们保留供将来使用。最终确认它们的功能不会改变,因此上图显示了它们的永久分配。


要了解您对董事会进行了哪些修订,请查看我的 找出您的PCB版本号的指南.

引脚标签– Clear as Mud

上面的标签是物理连接该引脚的Broadcom系统芯片上的引脚的名称。 通用输入输出周围的大部分混乱归因于这些标签, 它们与Broadcom标签的关系以及它们在程序中的引用方式。更令人困惑的是,GPIO引脚有时会用另一组数字重命名。为了避免损坏您的Pi,您需要确定连接到其他硬件的引脚是什么,并且程序引用的是正确的引脚。

通用输入输出接头连接器电源引脚

该插头在引脚2上提供5V,在引脚1上提供3.3V。3.3V电源限制为50mA。 5V电源直接从您的microUSB电源汲取电流,因此可以使用板子分担份额后剩下的任何东西。电路板汲取700mA电流后,1A电源可以提供高达300mA的电流。每次硬件迭代都会改善电源管理。

基本GPIO

该接头连接器提供了17个可配置为输入和输出的引脚。默认情况下,它们都被配置为输入(GPIO 14除外)& 15.

为了使用这些 引脚,您必须告诉系统它们是输入还是输出。这可以通过多种方式实现,这取决于您打算如何控制它们。

蟒蛇中的GPIO

控制GPIO引脚的最简单方法是使用 RPi.GPIO 蟒蛇库。如果遵循我的要求,则安装库很容易 RPi.GPIO安装指南。使用销钉安装后,操作非常简单:

import RPi.GPIO as 通用输入输出

# Use 通用输入输出 numbers not pin numbers
GPIO.setmode(GPIO.BCM)

# set up the 通用输入输出 channels - 上e input and 上e output
GPIO.setup(7, 通用输入输出.IN)
GPIO.setup(8, 通用输入输出.OUT)

# input from 通用输入输出7
input_value = 通用输入输出.input(7)

# output to 通用输入输出8
GPIO.output(8, True)

In this example we 采用 通用输入输出7 (pin 26) and 通用输入输出8 (pin 24). 蟒蛇 scripts that 采用 the 通用输入输出 library must be run using sudo. i.e.

sudo 蟒蛇 yourscript.py

引脚保护

接头连接器中的大多数引脚直接连接到Broadcom芯片。仔细设计要附加到其上的组件非常重要,因为这可能会永久损坏Pi。短路和接线错误也可能会破坏您的一天,因此请仔细检查所有内容。万用表在这里可能会有所帮助,因为您可以在连接到Pi之前仔细检查接线。

电路

幸运的是,您可以使用一些基本电路 use 保护针脚和 实施它们的成本是最小的。这是我建立的电路的一些链接:

使用GPIO引脚控制LED

分享。

23条留言

  1. 迈克·库克

    这不是真的:-
    但是,其中只有8个是开箱即用的GPIO引脚。另外9个可以扮演更复杂的角色,但我只对基础知识感兴趣。

    通用输入输出 14以外的所有引脚& 15 come up initialised as inputs. If you want to 采用 them as inputs there is nothing further you have to do to them.

    通用输入输出 14&15初始化为串行数据线TX&RX,因此您可以连接串行终端以允许您登录。

  2. 西蒙·沃尔特斯

    在网上所有信息中–我发现您是最需要我才能开始工作的。

    如果您在当前默认的RaspberryPi Debian下载上尝试此操作,则代码不会’由于存在权限限制,阻止了标准用户使用GPIO,因此可以正常工作(在您发出GPIO.setup(11,GPIO.IN)然后发出炸弹-的情况下,这种限制会起作用)

    我不’我不知道这是否是该发行版特有的,但是由于它可能是人们第一次使用它,因此,如果您可以添加它以便使用有时必须首先使用sudo 蟒蛇运行Python的代码,那就太好了。

    我认为您的文章到那时就很完美了-

    • 当你’ve noticed 蟒蛇 scripts that 采用 the 通用输入输出 library need to be run as sudo. I’ve更新了文章以提及它。

  3. 漂亮的图表。我从RPi.GPIO库的文档开始,但是关于如何将这些数字映射到实际板卡针脚的文章很少。我也有一本书‘邪恶天才的Raspberry Pi项目’其中有一些图表和表格。但到目前为止,您的最好/最清晰。尤其是引脚3和5,它们在修订版1和2之间有所不同。在您的图表向我清楚说明为什么我的程序不存在之前,那些引脚让我难过’t driving those pins…我一直在看的图表是Rev 1,而我的Pi是Rev 2。‘Evil Genius’本书完全没有指出这一点,并且只有Rev 1图表。

    感谢您与我们分享您的图表-

  4. pingback: 带有Erlang的Raspberry PI马修(菲尔)偏航

  5. 上图中的轻微错误/不一致:
    对于1.0版,GPIO1应该标记为I2C0_SCL

    对于2.0版,GPIO2应该标记为I2C1_SDA,而GPIO3应该标记为I2C1_SCL

    • 否。最初将白色针脚指定为“do not connect”但是Pi基金会后来表示他们没有’t going to change so their 采用 became fixed.

  6. 你好,

    很棒的文章和图表。我希望将TX 通用输入输出14设置为常规GPIO输入引脚。对于某些背景,我使用的是Wolfson声卡,它占用了大多数gpio引脚。它具有通过串行引脚(GPIO14&15)。我必须连接到Pi的唯一其他设备是Adafruit Ultimate GPS。我不需要与GPS通话,因此只需要Pi上的Rx(GPIO15)。我可以,但是需要从GPS连接PPS定时输入信号。我想我在这里可能感到有点运气,因为Wolfson音频卡通过了两个串行引脚,如果我可以将TX(GPIO14)用作新用途,那么我只需要一个(防止我不得不焊接和破坏引脚) 通用输入输出输入。

    我的问题是,您在这里看到我的方法有问题吗,我可以按照您的示例Python脚本重新配置引脚吗?

    感谢您的帮助和宝贵的时间

    亚当

  7. pingback: 通用输入输出引脚编号的BOARD和BCM有什么区别? | DL-UAT

  8. 泰勒·梅迪(Tyler Maydew)

    嗨!我想知道是否还有其他人在让其GPIO通讯时遇到问题?我写了一小段代码,非常简单,可以控制GPIO的开和关。我一直只是用万用表来测量电压的变化。该代码通常可以正常工作,但是在启用并一直使用我的I2C和SPI引脚(它们都表现出色)后,我不再能够与GPIO通信。我什至尝试将I2C和SPI重新列入黑名单,以查看是否可以解决此问题,但无济于事。

    • 这实际上取决于您使用什么代码以及使用什么库访问GPIO引脚。它’最好将其发布在Raspberry Pi官方论坛上,因为使用这些选项会更容易。

  9. “P1”不代表Pin 1—其连接器名称:如您所见,连接器“P2” and “P3”也存在于董事会中。针脚1用方形垫子(而不是圆形)或白色的类似按钮的标记表示,有时用白色的点表示(如S5)。

    • 您是对的,但是在原始的Pi上,P1标签位于Pin 1旁边,因此是向人们解释最终目标的好方法。它为N’对于较新的型号,我将在某些时候修订文本。

  10. 哦,这是一个非常好的职位。寻找时间和实际努力
    制作出非常好的文章……但是我能说什么……我
    犹豫了很多,不要’似乎几乎什么都不会得到
    完成。

发表评论

This site 采用s Akismet to reduce spam. 了解如何处理您的评论数据.