You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
注册

为何树莓派Pico由电池供电时无法读取引脚状态?

问题分析与解决办法

你的问题核心是不同供电方式下的接地电位差异导致的:

  • 电脑USB供电时,电脑的地和Pico的地是共地的,引脚接GND后能被正确识别为低电平;
  • 廉价5V电源块的Micro-USB接口可能存在地悬浮的情况,也就是电源的GND和Pico的GND之间没有可靠导通,导致引脚接GND时,电平无法降到Pico识别低电平的阈值(通常≤0.8V),所以始终被判定为高电平。

下面是具体的排查和解决步骤:

1. 检查电源的接地可靠性

用万用表测试:

  • 先测电源块Micro-USB输出的GND引脚(Micro-USB第4针)和Pico的GND引脚之间的电阻,正常应接近0Ω,说明导通良好;
  • 再测引脚接GND时的引脚电压,正常情况应≤0.8V,如果电压远高于这个值,说明电源的地和Pico的地没有共地。

2. 更换正规电源块

换成品牌手机的5V充电头(比如小米、华为的普通充电头),这类电源的接地设计更规范,不会出现地悬浮问题。避免使用无品牌的廉价电源,很多这类电源为了省成本会省略接地相关电路。

3. 优化引脚配置(可选)

如果暂时找不到合适的电源,可以尝试改用外部上拉电阻替代内部上拉:

  • 取一个10kΩ电阻,一端接Pico的3.3V引脚,另一端接GPIO3;
  • 代码里把引脚初始化改成En = Pin(3, Pin.IN)(去掉内部上拉配置);
  • 这样当引脚接GND时,电平会被强制拉到0V,不受电源地悬浮的影响。

4. 检查接线可靠性

确认GPIO3和Pico GND的连接没有虚焊、接触不良:

  • 如果用杜邦线,换一根质量好的线试试;
  • 如果是面包板连接,确保引脚插紧,没有松动。

你的代码本身没有问题,核心问题出在电源的接地设计上,按上面的步骤排查应该能解决。

内容的提问来源于stack exchange,提问作者C382

火山引擎 最新活动