为何Adafruit官方MCP3008的Python3示例代码读取数值始终为0?
MCP3008读数始终为0的问题修复方案
核心错误原因
你代码中配置的片选引脚与实际接线不匹配:
你实际使用的MCP3008片选引脚是BCM 22,但代码里定义的cs引脚为board.D5,对应BCM编号为GPIO5,芯片无法接收到SPI指令,因此始终返回0值。
修复步骤
- 修改cs引脚定义,将对应代码替换为:
cs = digitalio.DigitalInOut(board.D22)
- 额外排查项:
- 确认树莓派SPI接口已经启用,可通过
sudo raspi-config进入「Interface Options」开启SPI,修改后重启设备生效 - 检查CS引脚接线是否牢固,避免接触不良导致的通信失败
- 若不确定board库的引脚对应关系,可运行
python3 -c "import board;help(board)"查看所有引脚常量的映射规则
- 确认树莓派SPI接口已经启用,可通过
内容的提问来源于stack exchange,提问作者Michael Efraimidis
相关产品推荐
相关产品推荐

