news 2026/4/24 21:28:41

树莓派5 GPIO引脚配置:手把手新手教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派5 GPIO引脚配置:手把手新手教程

树莓派5 GPIO从零开始:新手也能轻松上手的实战指南

你是不是也曾在拿到树莓派5后,盯着那40个密密麻麻的小针脚发愣?“哪个是电源?”、“GPIO18到底对应第几个孔?”、“接错了会不会烧板子?”——这些疑问几乎是每个初学者必经的坎。

别担心。本文不讲晦涩术语堆砌,也不搞复杂理论推导,而是带你一步一步、安全稳妥地掌握树莓派5的GPIO使用方法。无论你是学生、创客,还是刚转行嵌入式的新手工程师,只要跟着做,半小时内就能点亮第一颗LED,并理解背后的逻辑。


为什么GPIO是树莓派的灵魂?

树莓派再强大,如果不能和外部世界互动,它也只是台“迷你电脑”。而GPIO(通用输入输出)引脚,正是连接数字世界与物理世界的桥梁

你可以用它:
- 检测按钮是否被按下;
- 控制LED灯闪烁节奏;
- 驱动继电器开关家电;
- 读取温湿度传感器数据;
- 连接OLED屏幕显示信息。

在树莓派5上,这组接口不仅保留了前代兼容性,还优化了电源管理与信号稳定性,让控制更可靠。但对新手来说,真正的难点从来不是功能多强,而是——怎么安全又正确地用起来?

我们先来破除三个常见误解:

❌ “随便插一根线试试看” → 可能短路烧毁SoC
❌ “编号1就是GPIO1” → 实际是电源引脚!
❌ “5V和3.3V可以混接” → 直接接入5V可能永久损坏芯片

别急,接下来我们就把这些问题一个个拆开讲清楚。


看懂你的40个引脚:一张图胜过千言万语

树莓派5背面的40针排布遵循标准2×20布局,看起来很规整,但功能却五花八门。要安全使用,第一步就是分清哪些能编程、哪些是固定电源、哪些有特殊用途

先记住这几个关键位置(建议收藏)

引脚位置功能说明
第1针(左上角)3.3V电源(红色常用来标记)
第6针接地GND(最常用的地线之一)
第2/4针5V电源(最大输出约3A)
第3/5针I²C通信:SDA(数据)、SCL(时钟)
第8/10针UART串口:TXD(发送)、RXD(接收)
第19/21/23/24针SPI总线:MOSI、MISO、SCLK、CE0
第12/13/18/19针支持PWM输出(可用于调光、调速)

其中,真正可编程的GPIO共有28个(BCM0–BCM27),其余为专用或电源引脚。

🔍 小贴士:面对主板时,40针Header的“第1针”通常靠近SD卡槽一侧,且有一个白色圆点或缺口标识。


到底该用 BCM 还是 Board 编号?

这是新手最容易混淆的地方。树莓派有两种编号方式:

✅ 推荐使用:BCM编号

  • 基于Broadcom芯片内部通道命名;
  • Python库如RPi.GPIOgpiozero默认采用;
  • 跨项目一致性好,避免因物理位置变化出错。

例如:你想用的是物理第12脚,它的BCM编号是GPIO18

⚠️ 不推荐:Board编号

  • 按从1到40的物理顺序编号;
  • 看起来直观,但一旦换板子或查资料容易搞混;
  • 特别是在代码中混合使用时极易出错。

📌 所以记住一句话:写代码一律用BCM编号,接线时对照表格确认物理位置。


安全第一课:电压、电流与保护措施

再强大的功能,用错了也会变“事故”。以下是必须牢记的三大电气原则:

1. 所有GPIO都是3.3V逻辑电平

  • 输出高电平 ≈ 3.3V,低电平 = 0V;
  • 绝对不要直接接入5V信号!
  • 若需连接5V设备(如Arduino、某些传感器),必须加电平转换模块或光耦隔离。

2. 单个引脚驱动能力有限

  • 最大输出电流约16mA
  • 建议工作在8–12mA更安全;
  • 驱动普通LED需串联220Ω–330Ω限流电阻

3. 总电流不能超标

  • 所有GPIO合计不超过50mA(官方建议控制在30mA以内);
  • 多个LED同时亮起?最好外接电源驱动;
  • 控制电机、蜂鸣器等大功率负载?请通过三极管、MOSFET或继电器模块间接控制。

实战第一步:点亮一颗LED

现在我们来动手做一个最经典的入门实验——用Python控制LED闪烁

所需材料

  • 树莓派5 + 电源
  • 面包板 ×1
  • 杜邦线若干(公对母)
  • LED ×1
  • 220Ω电阻 ×1

接线步骤(务必断电操作!)

  1. 将LED长脚(阳极)接GPIO18(BCM编号)→ 物理第12针;
  2. 短脚(阴极)接220Ω电阻一端
  3. 电阻另一端接GND(建议选第6针)
  4. 检查无误后再通电。

✅ 提醒:接线前关闭树莓派电源,防止误短路!

编写控制程序

# blink.py - 控制LED闪烁 import RPi.GPIO as GPIO import time # 设置为BCM编号模式 GPIO.setmode(GPIO.BCM) # 定义使用的引脚 LED_PIN = 18 # 配置为输出模式 GPIO.setup(LED_PIN, GPIO.OUT) try: while True: GPIO.output(LED_PIN, GPIO.HIGH) # 亮 time.sleep(1) GPIO.output(LED_PIN, GPIO.LOW) # 灭 time.sleep(1) except KeyboardInterrupt: pass finally: GPIO.cleanup() # 释放资源,恢复默认状态

如何运行?

  1. 将文件保存为blink.py
  2. 打开终端,进入目录;
  3. 执行命令:
    bash python3 blink.py
  4. Ctrl+C停止程序。

💡 成功了吗?看到LED一秒一闪,恭喜你迈出了GPIO的第一步!

🛠️ 如果没反应,请检查:
- 是否以sudo运行?或者用户是否已加入gpio组;
- 引脚编号是否正确(BCM18 ≠ Board18);
- 接线是否松动或反接。


快速查看引脚状态:一个命令拯救小白

每次都要翻图表太麻烦?树莓派自带神器——pinout命令!

安装并使用

# 安装 gpiozero(包含 pinout 工具) sudo apt update sudo apt install python3-gpiozero # 查看当前引脚图 pinout

执行后你会看到一个彩色ASCII图示,清晰标注每个引脚的编号、功能、当前模式,甚至支持触摸屏旋转提示。

比如输入pinout 18,会直接告诉你物理第18针的信息:

Pin 18 GPIO: 24 Function: OUTPUT State: Low

这个工具简直是调试救星,强烈建议收藏。


加点挑战:按键控制LED

学会了输出,再来试试输入——让一个按钮控制LED开关。

硬件连接

  • 按键一脚接GPIO17(物理第11针)
  • 另一脚接GND(第9针)
  • 同时启用GPIO17的内置上拉电阻,确保未按下时为高电平。

💡 上拉电阻的作用:防止引脚浮空导致误读。树莓派多数GPIO都支持软件启用50kΩ上拉/下拉。

代码实现

# button_led.py - 按键控制LED import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) BUTTON_PIN = 17 LED_PIN = 18 # 按键设为输入,启用内部上拉 GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(LED_PIN, GPIO.OUT) try: while True: if GPIO.input(BUTTON_PIN) == GPIO.LOW: # 按下时接地,电平拉低 GPIO.output(LED_PIN, GPIO.HIGH) else: GPIO.output(LED_PIN, GPIO.LOW) except KeyboardInterrupt: pass finally: GPIO.cleanup()

运行后,按下按键,LED应立即点亮;松开即灭。


遇到问题怎么办?常见坑点与解决秘籍

❗ 问题1:程序报错 “Permission denied”

  • 原因:普通用户无权访问GPIO硬件。
  • 解决方案
    bash sudo usermod -aG gpio pi
    重启后生效,之后无需每次都用sudo运行脚本。

❗ 问题2:引脚没反应,但别人同样代码能用

  • 排查方向
  • 使用pinout查看该引脚是否已被其他服务占用(如摄像头启用会锁定部分引脚);
  • 检查是否启用了I²C/SPI等外设冲突;
  • /boot/config.txt中是否有禁用GPIO的设置。

❗ 问题3:多个I²C设备地址冲突

  • 使用命令扫描设备:
    bash i2cdetect -y 1
  • 若发现重复地址,尝试更换模块跳线或使用I²C多路复用器。

更进一步:选择合适的开发工具链

随着项目复杂度提升,你可以根据需求选择不同层级的库:

工具适用人群特点
gpiozero新手首选语法简洁,一行代码控LED,内置常用组件抽象
RPi.GPIO中级开发者控制精细,支持中断、PWM等高级功能
libgpiod高阶应用更底层、线程安全,适合工业级实时控制

例如,用gpiozero实现相同功能只需两行:

from gpiozero import LED, Button from signal import pause led = LED(18) btn = Button(17) btn.when_pressed = led.on btn.when_released = led.off pause() # 保持运行

简洁到令人发指,特别适合教学和快速原型验证。


让它开机自动运行:systemd来帮忙

想让你的灯光系统、监控脚本随系统启动自动运行?可以用systemd注册服务。

创建文件/etc/systemd/system/gpio-led.service

[Unit] Description=LED Control via GPIO After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/python3 /home/pi/button_led.py User=pi [Install] WantedBy=multi-user.target

然后启用服务:

sudo systemctl enable gpio-led.service sudo systemctl start gpio-led.service

下次开机,你的程序就会默默运行,像一个真正的嵌入式系统。


写在最后:从点亮LED到创造无限可能

当你第一次亲手让一颗小小的LED按你设定的节奏闪烁时,那种成就感是无可替代的。而这只是开始。

掌握了树莓派5引脚定义和基本配置方法后,你可以继续探索:
- 用PWM调节LED亮度;
- 接DHT11读取温湿度;
- 驱动SG90舵机做机械臂;
- 搭建智能家居节点,联动WiFi远程控制。

每一个复杂的项目,都是由这样简单的一步起步的。

正如一位资深创客所说:“所有伟大的发明,最初都不过是一块面包板上的两个元件。”

所以,别再犹豫了——插上电源,打开终端,写下你的第一行GPIO代码吧。

如果你在实践中遇到任何问题,欢迎留言交流。我们一起把想法变成现实。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 18:09:08

C#调用DirectX加速IndexTTS2 GPU运算性能调优

C#调用DirectX加速IndexTTS2 GPU运算性能调优 在语音交互日益普及的今天,用户对“机器声音”的要求早已从“能听清”跃迁到“像真人”。尤其是在虚拟主播、智能客服和无障碍阅读等场景中,情感丰富、语调自然的中文语音合成(TTS)成…

作者头像 李华
网站建设 2026/4/23 17:32:05

PingFangSC字体解决方案:打造跨平台完美视觉体验的专业选择

还在为网站字体显示效果参差不齐而困扰吗?PingFangSC字体包为您提供了一站式解决方案,彻底告别传统字体在不同设备和系统上的显示差异。这款基于苹果平方字体开发的专业字体包,让您的网站在Windows、macOS、iOS等主流平台上都能呈现一致的视觉…

作者头像 李华
网站建设 2026/4/22 17:40:33

PyMAVLink终极指南:5步快速掌握无人机通信编程

PyMAVLink终极指南:5步快速掌握无人机通信编程 【免费下载链接】pymavlink python MAVLink interface and utilities 项目地址: https://gitcode.com/gh_mirrors/py/pymavlink 想要轻松实现与无人机的无缝通信吗?PyMAVLink作为完整的Python MAVLi…

作者头像 李华
网站建设 2026/4/23 16:17:09

5步掌握OpenWrt深度定制:从编译小白到路由大师

5步掌握OpenWrt深度定制:从编译小白到路由大师 【免费下载链接】OpenWrt_x86-r2s-r4s-r5s-N1 一分钟在线定制编译 X86/64, NanoPi R2S R4S R5S R6S, 斐讯 Phicomm N1 K2P, 树莓派 Raspberry Pi, 香橙派 Orange Pi, 红米AX6, 小米AX3600, 小米AX9000, 红米AX6S 小米A…

作者头像 李华
网站建设 2026/4/19 18:56:38

模组管理真的那么难吗?Vortex带你轻松应对

模组管理真的那么难吗?Vortex带你轻松应对 【免费下载链接】Vortex Vortex: Nexus-Mods开发的游戏模组管理器,用于简化模组的安装和管理过程。 项目地址: https://gitcode.com/gh_mirrors/vor/Vortex 每次安装新模组时,你是否都担心游…

作者头像 李华
网站建设 2026/4/23 14:14:27

WindiskWriter:Mac系统制作Windows启动盘的终极技术方案

WindiskWriter:Mac系统制作Windows启动盘的终极技术方案 【免费下载链接】windiskwriter 🖥 A macOS app that creates bootable USB drives for Windows. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 项目地址: h…

作者头像 李华