树莓派Pico供电完全指南:从USB到GPIO,一文搞定电源那些事儿
一、树莓派Pico的”吃饭”方式
树莓派Pico这款小小的开发板,想要正常工作,就必须给它”喂电”。就像我们人每天要吃早饭一样,没有电,Pico就什么都做不了。好消息是,Pico的供电方式很灵活,给你留了好几条路可选。
让我先给你画个简单的供电路线图:
┌─────────────────────────────────────────────────────────────┐
│ 树莓派Pico 供电系统 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 供电方式一:USB接口供电 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 5V USB │───▶│ USB接口 │───▶│ 板载稳压 │───▶ 3.3V │
│ │ 电源 │ │ (Micro) │ │ VP2960 │ 主控芯片 │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ 供电方式二:GPIO36引脚供电 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 3.3~5V │───▶│ GPIO36 │───▶│ 板载稳压 │───▶ 3.3V │
│ │ 外部电源│ │ 引脚 │ │ VP2960 │ 主控芯片 │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ⚠️ 两种方式不能同时使用! │
│ │
└─────────────────────────────────────────────────────────────┘
看到了吗?Pico有两种主要的供电方式,但最终都会通过板载的稳压芯片,把电压降到3.3V供给主控芯片使用。RP2040这颗主控芯片的工作电压就是3.3V,电压太高会烧掉,太低又跑不动,所以稳压芯片的作用就非常重要了。
二、第一种方式:USB接口供电(最常用)
2.1 怎么接?
树莓派Pico的USB接口是Micro USB(注意:不是Type-C哦,这点很重要)。你只需要准备一根Micro USB数据线,一头插在Pico上,另一头插在任何能供电的USB设备上:
- 电脑USB接口
- 手机充电头(适配器)
- 充电宝
- USB插排
- 甚至是可以供电的电视USB口
接上之后,Pico上那枚小小的红色LED灯就会亮起,告诉你:”嘿,我吃饱了,开始干活!”
2.2 供电原理是什么?
让我用一个生活化的比喻来解释:
想象一下,你家住在山顶,而水库的水在几百米下的山谷里。水库的水压很大(相当于5V电压),但你家水龙头只需要温和的水流(相当于3.3V电压)。怎么办?需要在半山腰建一个”减压站”(稳压芯片),把高压水变成适合你家使用的低压水。
Pico板上的稳压芯片型号是VP2960(或者类似的型号,不同批次可能略有差异),它的作用就是这个”减压站”。它接收5V电压,然后稳定地输出3.3V给RP2040主控芯片使用。
2.3 USB供电要注意什么?
电流需求:
RP2040主控芯片本身功耗不高,典型工作电流大约是100~200mA(具体取决于你在跑什么程序、LED亮几个、外设接了多少)。但是!如果你给Pico接了额外的外设,比如:
- 多个WS2812 LED灯带(每个LED最多需要60mA)
- OLED显示屏
- 各种传感器模块
- 电机驱动
- 蓝牙/WiFi模块
那么总电流需求可能会飙升到500mA甚至1A以上。
所以,官方推荐使用5V 2A以上的电源适配器或充电头,就是为了给这些外设预留足够的电流余量。如果电流不够,就会出现:
- 供电不稳,程序跑着跑着就死机了
- 某些外设工作异常,数据读不出来
- 严重时会导致稳压芯片过热甚至损坏
一个真实的案例:
我有一个朋友,他给Pico接了48颗WS2812 LED灯珠,每颗全白亮度时最大电流约60mA,48颗就是48 × 60mA = 2880mA ≈ 2.9A。他只用了电脑的一个USB口供电,结果LED灯闪烁不定,颜色乱跳,有时候还会复位。后来换了5V 3A的电源适配器,问题就消失了。
2.4 代码示例:监测电压和电流
如果你想在你的Pico项目中监测供电状态,可以配合ADC(模拟数字转换)来实现:
"""
树莓派Pico - 外部供电电压监测示例
通过GPIO26(ADC0)监测外部供电电压
注意:实际电压需要乘以分压系数
"""
import time
from machine import ADC, Pin
# 创建ADC对象,使用GPIO26(ADC0)
adc = ADC(Pin(26))
# 假设使用电阻分压电路,分压比为2:1
# 实际电压 = ADC读数 * 3.3 / 4095 * 2
DIVISION_RATIO = 2.0
REFERENCE_VOLTAGE = 3.3
ADC_RESOLUTION = 4095 # 12位ADC,0-4095
def read_voltage():
"""读取并计算实际电压"""
raw_value = adc.read_u16() # 读取0-65535的值(部分固件)
# 或者使用 adc.read() 读取0-4095的值
# 计算电压
voltage = (raw_value / ADC_RESOLUTION) * REFERENCE_VOLTAGE * DIVISION_RATIO
return voltage
def main():
print("树莓派Pico 供电电压监测")
print("=" * 40)
while True:
voltage = read_voltage()
# 判断供电状态
if voltage >= 4.8 and voltage <= 5.3:
status = "✅ 电压正常(5V供电)"
elif voltage >= 3.3 and voltage < 4.8:
status = "⚠️ 电压偏低,检查电源"
elif voltage < 3.3:
status = "❌ 电压过低,可能即将复位"
elif voltage > 5.3:
status = "❌ 电压过高,立即检查!"
else:
status = "🔍 电压异常"
print(f"检测电压: {voltage:.2f}V | 状态: {status}")
time.sleep(1)
if __name__ == "__main__":
main()
三、第二种方式:GPIO36引脚供电
3.1 为什么会有这种方式?
你可能会问:”不是有USB接口了吗,为什么还要从GPIO引脚供电?”
这是一个非常好的问题!让我给你解释几个常见的使用场景:
场景一:电池供电项目
你想做一个户外项目,用电池给Pico供电,但手上只有3.7V的锂电池,没有5V的USB电源。这时候就可以直接从GPIO36引脚输入3.3V~5V的电压,让板载稳压芯片帮你搞定剩下的事。
场景二:集中供电的系统
你做了一个复杂的项目,有多个模块都需要5V供电。与其每个模块都用独立的USB线,不如用一个5V电源同时给所有模块供电,其中一路接到Pico的GPIO36引脚。
场景三:没有USB口的设备
有些嵌入式设备只有GPIO引脚,没有USB接口。你可以从这些设备的5V电源轨直接取电,接到Pico的GPIO36上。
场景四:便携式项目
你想做一个手持设备,外壳上不想留USB接口(为了防水或美观),那就直接从内部电池接到GPIO36上。
3.2 GPIO36引脚的电气特性
GPIO36在Pico上的标识是VBUS或5V_IN(不同版本的丝印可能略有不同)。这个引脚直连到板载稳压芯片的输入端。
关键参数:
┌─────────────────────────────────────────────┐
│ GPIO36 引脚供电参数 │
├─────────────────────────────────────────────┤
│ 输入电压范围: 3.3V ~ 5.5V │
│ 推荐电压: 5.0V(与USB供电相同) │
│ 最大输入电流: 取决于稳压芯片和散热 │
│ 稳压芯片型号: VP2960(或类似LDO) │
│ 输出电压: 稳定的3.3V │
│ 输出电流: 最大约1.5A(取决于散热) │
├─────────────────────────────────────────────┤
│ ⚠️ 注意:输入电压不能超过5.5V! │
│ ⚠️ 禁止同时使用USB和GPIO36供电! │
└─────────────────────────────────────────────┘
3.3 实际接线方法
如果你要从外部电源通过GPIO36给Pico供电,接线非常简单:
外部5V电源 (+) ──────────────▶ GPIO36 (VBUS)
外部5V电源 (-) ──────────────▶ GND (任意GND引脚)
让我用一个具体的例子来说明:
例子:用18650锂电池给Pico供电
18650锂电池的标称电压是3.7V,充满电时可以达到4.2V。这个电压在Pico GPIO36的接受范围内(3.3V~5.5V)。
接线图:
┌─────────────────────────────────────────────────────┐
│ 18650锂电池 │
│ (3.7V~4.2V) │
│ │
│ ┌──────┐ │
│ │ + │─────────────────┐ │
│ │ │ │ │
│ │ - │─────────────────┤ │
│ └──────┘ │ │
│ │ │
│ ┌────────────────▼─────────────┐ │
│ │ 树莓派Pico │ │
│ │ │ │
│ │ GPIO36 ◀───────────────────┤ │
│ │ GND ◀────────────────────┤ │
│ │ │ │
│ │ [稳压芯片 VP2960] │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ 3.3V → RP2040主控 │ │
│ └──────────────────────────────┘ │
│ │
│ 💡 提示:如果电压接近下限3.3V,建议串联一个 │
│ 肖特基二极管(压降约0.3V)来提高输入电压 │
└─────────────────────────────────────────────────────┘
但是,等等!这里有个问题需要注意。当锂电池电量耗尽,电压降到3.3V以下时,稳压芯片可能无法稳定输出3.3V,Pico就会工作不正常。为了解决这个问题,很多项目会使用带有升压功能的电池管理模块(boost converter),把3.7V升压到稳定的5V,然后再接到GPIO36。
3.4 用代码检测GPIO36供电状态
下面这个例子展示了如何通过ADC监测GPIO36上的输入电压:
"""
树莓派Pico - GPIO36供电电压监测
通过ADC读取GPIO36上的实际输入电压
"""
import time
from machine import ADC, Pin
import utime
# GPIO36是ADC0,但注意:
# GPIO36本身就是VBUS引脚,我们无法直接ADC读取它
# 我们需要用一个分压电路连接到另一个ADC引脚来监测
# 假设我们使用GPIO26(ADC0)配合电阻分压来监测外部电压
# 分压电路:两个10K电阻串联,中间点接GPIO26
# 实际电压 = ADC读数 * 3.3 / 4095 * 2
adc_pin = ADC(Pin(26))
VREF = 3.3 # 参考电压
DIVIDER_RATIO = 2.0 # 分压比
def read_external_voltage():
"""读取外部供电电压"""
raw = adc_pin.read_u16()
voltage = (raw / 65535) * VREF * DIVIDER_RATIO
return voltage
def check_power_status(voltage):
"""检查供电状态"""
if voltage < 3.0:
return "🔴 严重低压!立即关机!", "critical"
elif voltage < 3.8:
return "🟠 电压偏低,电量不足", "warning"
elif voltage < 4.2:
return "🟡 电压正常偏低", "normal"
elif voltage <= 5.5:
return "🟢 电压正常", "good"
else:
return "🔴 电压过高!检查电源!", "danger"
def main():
print("树莓派Pico GPIO36 供电监测系统")
print("=" * 50)
print("监测频率: 每2秒一次")
print("按Ctrl+C退出\n")
while True:
voltage = read_external_voltage()
status_msg, status_level = check_power_status(voltage)
# 根据不同的状态输出不同样式
print(f"\r检测电压: {voltage:.2f}V | {status_msg}", end="", flush=True)
# 根据状态闪烁LED(可选)
led = Pin("LED", Pin.OUT)
if status_level == "good":
led.on()
elif status_level == "warning":
led.toggle()
elif status_level in ("critical", "danger"):
# 快速闪烁表示危险
for _ in range(3):
led.on()
utime.sleep_ms(100)
led.off()
utime.sleep_ms(100)
utime.sleep(2)
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("\n监测结束")
四、重要警告:两种供电方式不能同时使用!
这是我最想强调的一点,也是很多新手容易犯的错误。
绝对不要同时通过USB接口和GPIO36引脚给Pico供电!
为什么?让我用一个比喻来解释:
想象两条水管同时往同一个水箱里灌水,一条来自自来水公司(USB 5V),另一条来自你家自备的水泵(GPIO36 5V)。如果两条管路的压力不完全一样,水就会从压力低的那条管路倒流回压力高的那条管路。轻则浪费电,重则烧毁你的电源设备!
更严重的情况是:
USB 5V ──────┐
├──▶ [稳压芯片输入端]
GPIO36 5V ───┘
如果两个5V源有微小差异(比如USB是4.95V,GPIO36是5.05V),
电流会从高的那个电源"倒灌"进低的那个电源!
这会导致:
- USB接口电流倒灌:通过USB线流回电脑或其他USB设备,可能损坏电脑USB端口
- GPIO36电流倒灌:如果GPIO36接的是电池,电流可能流回电池,造成危险
- 稳压芯片过热:两个电源互相”打架”,稳压芯片承受异常电流
- 元件损坏:严重时可能烧毁Pico上的元件
如何避免这个错误?
最简单的方法就是:在设计和接线时,就想清楚用哪种方式供电,然后只选一种。
如果你需要一个灵活的项目,可以设计一个电源选择电路:
┌──────────────────────────────────────────────────────┐
│ 电源自动选择电路 │
│ │
│ USB 5V ──┬──[二极管D1]──┐ │
│ │ │ │
│ GPIO36 ──┴──[二极管D2]──┤──▶ VBUS_IN(到稳压芯片) │
│ │ │ │
│ │ [电容C1] │ │
│ │ │ │
│ └──────┬───────┘ │
│ │ │
│ GND │
│ │
│ 💡 二极管的作用是"单向阀",只允许电流从一个方向流动 │
│ 当USB供电时,D1导通,D2截止 │
│ 当GPIO36供电时,D2导通,D1截止 │
│ 自动选择电压较高的那个电源供电 │
│ │
│ 推荐使用肖特基二极管(压降小,约0.3V) │
│ 例如:SS14、1N5819等 │
└──────────────────────────────────────────────────────┘
对应的电路代码注释(供参考,非运行代码):
"""
树莓派Pico - 电源选择电路说明
硬件连接:
USB 5V ── 阳极(D1) | 阴极(D1) ──┐
│
GPIO36 ── 阳极(D2) | 阴极(D2) ──┤──▶ VBUS_IN
│
GND
元件清单:
- 肖特基二极管 SS14 × 2 (或 1N5819)
- 100nF 陶瓷电容 × 1 (滤波)
- 10uF 电解电容 × 1 (储能,可选)
原理:
肖特基二极管的正向压降约0.3V
USB 5V → 二极管 → VBUS_IN = 约4.7V
GPIO36 5V → 二极管 → VBUS_IN = 约4.7V
当USB供电时,USB路径压降略低,自动选USB
当只有GPIO36供电时,D1反向截止,自动选GPIO36
"""
五、电源适配器/充电头的选择建议
5.1 为什么推荐5V 2A以上?
你可能会想:”我的Pico才用多少电,为什么要2A的充电头?”
让我给你算一笔账:
┌─────────────────────────────────────────────────────┐
│ Pico典型应用场景电流计算 │
├─────────────────────────────────────────────────────┤
│ │
│ RP2040主控芯片(典型): 100~200 mA │
│ 板上LED: 10~20 mA │
│ │
│ ───────────────────────────────────── │
│ 基本配置小计: 110~220 mA │
│ │
│ + OLED显示屏(0.96寸): 20~50 mA │
│ + DHT22温湿度传感器: 1~2 mA │
│ + WS2812 LED × 10颗(全白): 600 mA │
│ + HC-SR04超声波模块: 15~20 mA │
│ + Bluetooth模块(BLE): 20~50 mA │
│ │
│ ───────────────────────────────────── │
│ 常见外设组合总计: 800~1200 mA │
│ │
│ ✅ 5V 1A电源适配器: 勉强够用,余量很小 │
│ ✅ 5V 2A电源适配器: 宽裕,推荐配置 │
│ ✅ 5V 3A电源适配器: 非常宽裕,适合复杂项目 │
│ ❌ 5V 0.5A电源适配器: 不够用,容易出问题 │
│ │
└─────────────────────────────────────────────────────┘
5.2 不同场景的推荐电源
场景一:基础学习项目
- 只用Pico + 少量LED + 简单传感器
- 推荐:5V 1A手机充电头即可
- 成本:约10~20元
场景二:中型项目
- Pico + OLED屏幕 + 几个传感器 + 少量LED灯
- 推荐:5V 2A充电头
- 成本:约20~40元
场景三:大型/复杂项目
- Pico + 大量WS2812灯带 + 显示屏 + 电机 + 无线模块
- 推荐:5V 3A~5A电源适配器
- 成本:约40~100元
场景四:便携式/户外项目
- 使用18650锂电池 + 升压模块
- 推荐:5V 2A输出能力的升压模块
- 成本:约30~60元(不含电池)
5.3 电源质量的重要性
这里我要特别强调一下电源质量的问题。很多人觉得”能用就行”,随便拿个旧的充电头就用上了,但实际上电源质量对Pico的稳定运行影响非常大。
劣质电源的问题:
┌──────────────────────────────────────────────────────┐
│ 劣质电源适配器的问题 │
├──────────────────────────────────────────────────────┤
│ │
│ 1. 输出电压不稳 │
│ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │
│ │ │ │ │ │ │ │ │ │
│ ──┘ └────┘ └────┘ └────┘ └─── 时间 │
│ 5.0V波动在4.5V~5.5V之间 │
│ 稳压芯片可能跟不上这种快速波动 │
│ │
│ 2. 纹波噪声大 │
│ 电源输出的不是干净的直流,而是带着"毛刺"的波形 │
│ 这些毛刺会干扰Pico的模拟量读取,导致数据不准 │
│ │
│ 3. 带载能力差 │
│ 空载时电压正常,一旦接上负载,电压就往下掉 │
│ Pico检测到电压不足就会自动复位 │
│ │
│ 4. 安全隐患 │
│ 劣质电源可能没有过流保护、过压保护 │
│ 一旦出问题,可能把Pico连同外设一起烧掉 │
│ │
└──────────────────────────────────────────────────────┘
如何辨别电源质量:
- 看品牌和认证:选择有正规品牌、有3C认证的产品
- 看重量:同样功率的电源,优质的更重(变压器铜线更多)
- 摸温度:优质电源在满载时温度可控,劣质电源容易发烫
- 用万用表测:如果条件允许,用万用表测一下空载和带载时的电压变化
六、供电相关的常见故障排查
6.1 问题:Pico上电后LED亮但程序不运行
可能原因:
- 电源电压偏低,稳压芯片输出不够稳定
- USB线质量问题,电阻过大导致压降
- 电源电流不足,带载后电压塌陷
排查步骤:
"""
树莓派Pico - 供电故障诊断程序
运行此程序可以帮助判断是否是供电问题
"""
import time
from machine import Pin, ADC
import ubinascii
def diagnose_power():
print("🔧 树莓派Pico 供电诊断程序")
print("=" * 50)
# 测试1: 检查板上LED是否能正常闪烁
print("\n[测试1] LED闪烁测试...")
led = Pin("LED", Pin.OUT)
for i in range(5):
led.on()
time.sleep(0.1)
led.off()
time.sleep(0.1)
print(" ✅ LED测试完成")
# 测试2: 读取内部温度传感器(反映芯片工作状态)
print("\n[测试2] 读取内部状态...")
sensor = ADC(Pin(4)) # 内部温度传感器
conversion = 3.3 / (65535)
temperature = 27 - ((sensor.read_u16() * conversion) - 0.706) / 0.001721
print(f" 内部温度: {temperature:.1f}°C")
# 测试3: 检查GPIO功能(判断是否稳定)
print("\n[测试3] GPIO稳定性测试...")
test_pins = [Pin(i, Pin.OUT) for i in range(2, 5)]
for pin in test_pins:
for _ in range(3):
pin.toggle()
time.sleep_ms(10)
print(" ✅ GPIO测试完成")
# 测试4: 模拟负载测试
print("\n[测试4] 模拟负载测试(LED全亮3秒)...")
all_leds = [Pin(i, Pin.OUT) for i in range(25)]
for p in all_leds:
p.on()
time.sleep(3)
for p in all_leds:
p.off()
print(" ✅ 负载测试完成")
print("\n" + "=" * 50)
print("诊断完成!如果以上测试全部通过,")
print("供电问题可能性较低。如果测试中断或异常,")
print("请检查电源适配器和连接线。")
if __name__ == "__main__":
try:
diagnose_power()
except Exception as e:
print(f"❌ 诊断过程中出错: {e}")
print("💡 这很可能是供电不足导致的!")
6.2 问题:程序运行中随机复位
可能原因:
- 电压不稳,触发看门狗或Brown-out复位
- 电流峰值超出电源能力,导致电压骤降
- 热稳定性差,电源温度升高后性能下降
解决方案:
┌─────────────────────────────────────────────────────┐
│ 解决随机复位问题的方案 │
├─────────────────────────────────────────────────────┤
│ │
│ 方案一:更换更高质量的电源适配器 │
│ → 选择知名品牌,带过流保护的 │
│ │
│ 方案二:增加滤波电容 │
│ → 在Pico的VBUS和GND之间并联一个10uF电解电容 │
│ → 可以吸收瞬态电流峰值,稳定电压 │
│ │
│ 方案三:缩短USB线长度 │
│ → USB线越长,电阻越大,压降越大 │
│ → 使用短于1米的优质USB线 │
│ │
│ 方案四:降低外设功耗 │
│ → 减少同时工作的外设数量 │
│ → 降低LED亮度( PWM占空比) │
│ → 关闭不用的外设电源 │
│ │
│ 方案五:增加电源储能电容 │
│ → 如果用电瓶/电池供电,增加大容量电容 │
│ → 可以应对瞬态大电流需求 │
│ │
└─────────────────────────────────────────────────────┘
电容加装示意图:
10uF电解电容
(正极朝外)
│
VBUS(GPIO36) ───────┼──────────────┐
│ │
│ ┌────┴────┐
│ │ Pico │
USB 5V ──────┬──────┤ │ │
│ │ │ VP2960 │──▶ 3.3V
│ │ │ │
│ │ └────┬────┘
│ │ │
│ └──────────────┤
│ │
GND ◀─────────────────┴── GND
💡 电容正极接VBUS,负极接GND
注意极性,不要接反!
6.3 问题:外接外设后电压下降明显
这是一个非常常见的问题,特别是在使用USB线供电时。
┌─────────────────────────────────────────────────────┐
│ USB线电阻导致的压降问题 │
├─────────────────────────────────────────────────────┤
│ │
│ 普通的USB线内部有导线,导线有电阻 │
│ 劣质USB线电阻可能达到 0.5~1欧姆 │
│ │
│ 根据欧姆定律:压降 = 电流 × 电阻 │
│ │
│ 当电流为500mA时: │
│ 压降 = 0.5A × 0.5Ω = 0.25V │
│ Pico实际得到: 5V - 0.25V = 4.75V │
│ 稳压后输出: 约3.23V(勉强够用) │
│ │
│ 当电流为1A时: │
│ 压降 = 1A × 0.5Ω = 0.5V │
│ Pico实际得到: 5V - 0.5V = 4.5V │
│ 稳压后输出: 约3.09V(可能不够用了!) │
│ │
│ 解决方案: │
│ 1. 使用优质短USB线(电阻<0.1Ω) │
│ 2. 直接用充电头+杜邦线连接GPIO36 │
│ 3. 使用带功率增强的USB hub │
│ │
└─────────────────────────────────────────────────────┘
七、不同供电方式的优缺点对比
为了让你更好地选择适合自己项目的供电方式,我做了一个详细的对比表:
┌──────────┬──────────────┬──────────────┬──────────────┐
│ 对比项 │ USB接口供电 │ GPIO36引脚 │ 最佳适用场景 │
│ │ │ 供电 │ │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 接plug │ 简单,插 │ 需要焊接 │ USB适合快速 │
│ 便利性 │ 即用 │ 杜邦线 │ 开发调试 │
│ │ │ 连接 │ GPIO36适合 │
│ │ │ │ 嵌入式集成 │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 电源 │ 需要5V USB │ 可以是 │ 灵活供电 │
│ 灵活性 │ 适配器/口 │ 3.3~5V │ 可用电池 │
│ │ │ 各种来源 │ 直接供电 │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 体积/ │ USB线占用 │ 不需要USB │ 便携设备 │
│ 外观 │ 空间 │ 线,更紧凑 │ 用GPIO36 │
│ │ │ │ USB接口用 │
│ │ │ │ 于调试 │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 成本 │ 需要USB │ 需要额外 │ 成本差异不│
│ │ 适配器/口 │ 接线 │ 大 │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 可靠性 │ 高,标准 │ 需要确保 │ USB供电更 │
│ │ 接口 │ 极性正确 │ 可靠 │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 电流 │ 受USB口 │ 受限于 │ 大电流项 │
│ 限制 │ 能力限制 │ 导线和 │ 目用GPIO36│
│ │ (电脑口 │ 电源适配器 │ 配合大电流│
│ │ 通常500mA- │ 能力 │ 电源 │
│ │ 900mA) │ │ │
├──────────┼──────────────┼──────────────┼──────────────┤
│ 推荐 │ 初学者/ │ 有经验的 │ 建议两者 │
│ 用户 │ 快速原型 │ 开发者/ │ 配合使用 │
│ │ 开发 │ 嵌入式集成 │ (电源选择 │
│ │ │ │ 电路) │
└──────────┴──────────────┴──────────────┴──────────────┘
八、给小朋友也能听懂的供电小故事
好吧,如果你是想教小朋友理解这个问题,让我用一个更简单的故事来解释:
小Pico的吃饭故事
小Pico是一个小小工程师,他每天需要”吃饭”(通电)才能工作。
小Pico的胃(内部电路)只能吃”3.3V这个大小的饭”。但是市场上的”食物”(电源)大多是5V的大块头,直接吃会把小Pico撑坏的!
所以小Pico的口袋里有一个”小嚼嚼器”(稳压芯片VP2960),它会把5V的大块头食物嚼碎,变成小Pico能消化的3.3V软软的食物。
小Pico有两个吃饭的嘴巴:
- 嘴巴A(USB接口):可以用数据线连接到各种”食物配送车”(电脑、充电头)
- 嘴巴B(GPIO36):可以直接从旁边的”食物桶”里舀饭吃
但是!小Pico不能同时用两张嘴巴吃饭,因为两张嘴巴可能会打架,把食物洒得到处都是!
另外,小Pico的”嚼嚼器”工作需要足够的食物。如果送来的食物不够(电流不足),嚼嚼器就会累得转不动,小Pico就会饿得头晕眼花,甚至晕过去(复位)。
所以,给小Pico送食物时,要选靠谱的食物配送车(好的电源适配器),而且要送足够多的食物(2A以上电流),这样小Pico才能精神满满地帮你完成各种任务!
九、总结与最佳实践建议
经过前面的详细介绍,我来给你一份简洁的供电最佳实践清单:
┌──────────────────────────────────────────────────────┐
│ 树莓派Pico 供电最佳实践 │
├──────────────────────────────────────────────────────┤
│ │
│ ✅ 推荐做法: │
│ │
│ 1. 优先使用USB接口供电进行开发和调试 │
│ → 方便、简单、可靠 │
│ │
│ 2. 选择质量可靠的5V 2A以上电源适配器 │
│ → 推荐品牌:小米、华为、Anker、绿联等 │
│ → 避免使用无品牌、价格异常的充电头 │
│ │
│ 3. 使用短而优质的USB线(<1米) │
│ → 减少线路压降 │
│ │
│ 4. 大功率外设(如LED灯带)使用独立5V电源 │
│ → 通过共地连接 │
│ → 避免Pico电源过载 │
│ │
│ 5. 电池供电项目建议增加升压模块 │
│ → 保持稳定的5V输入 │
│ → 延长电池使用时间 │
│ │
│ ❌ 避免做法: │
│ │
│ 1. 绝对不要同时使用USB和GPIO36供电 │
│ → 可能导致元件损坏 │
│ │
│ 2. 不要使用输出电压超过5.5V的电源 │
│ → 会损坏板载稳压芯片 │
│ │
│ 3. 不要使用电流严重不足的电源 │
│ → 会导致工作不稳定 │
│ │
│ 4. 不要使用损坏的USB线 │
│ → 内部分段可能导致接触不良 │
│ │
│ 5. 不要在通电状态下插拔GPIO36的电源线 │
│ → 可能产生电火花损坏引脚 │
│ │
└──────────────────────────────────────────────────────┘
最后,如果你在实际项目中遇到供电相关的问题,不妨按照这个思路来排查:
- 确认电源类型:是用USB还是GPIO36?
- 测量实际电压:用万用表测量Pico的VBUS引脚电压
- 检查电流余量:计算所有外设的总电流需求
- 排除干涉因素:确保没有同时使用两种供电方式
- 逐步增加负载:观察负载增加时电压是否稳定
希望这篇指南能帮助你更好地理解和使用树莓派Pico的供电系统!记住,良好的供电是项目稳定运行的基础,值得花一些时间来仔细选择和配置。