You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Node.js扩展Raspberry Pi GPIO,MCP23017选onoff还是pigpio?

MCP23017 GPIO扩展实现方案(Node.js环境)

现有onoff模块适配说明

onoff模块的能力仅限于控制树莓派板载的原生GPIO引脚,没有内置I2C设备的控制逻辑,所以无法直接用它操作MCP23017扩展出来的引脚,你可以按以下步骤实现扩展:

  • 先开启树莓派的I2C功能:运行sudo raspi-config,在「Interface Options」中找到I2C选项选择开启,重启设备后执行i2cdetect -y 1,如果能输出I2C设备列表就说明总线正常
  • 安装MCP23017专属的Node.js驱动:直接npm安装mcp23017模块即可,该模块支持多芯片同时挂载,你可以通过调整每块MCP23017的A0、A1、A2引脚的电平来设置不同的I2C地址,最多可同时接8块芯片,合计扩展128个GPIO引脚,完全满足你的需求
  • 驱动的使用逻辑和onoff非常接近:先按芯片地址初始化实例,再把对应扩展引脚设置为输入/输出模式,之后就可以正常读写电平,原有onoff的使用经验可以直接复用,不需要额外学习成本

是否需要切换到pigpio模块

不需要为了这个扩展需求特意切换pigpio,你可以根据实际项目需求判断:

  • pigpio的核心优势是支持高精度时序控制、硬件PWM输出、硬件级中断监听,更适合驱动舵机、步进电机、读取高频传感器这类对时序要求高的场景,但它和onoff一样,本身不直接支持MCP23017的扩展引脚,切换之后还是需要搭配MCP23017驱动使用
  • 如果你已经用onoff写完了原生GPIO的控制逻辑,继续保留onoff控制原生引脚、用mcp23017模块控制扩展引脚是成本最低的方案,完全不需要调整现有代码
  • 如果你后续需要用到扩展引脚的中断触发功能,只需要额外对接I2C总线的中断监听逻辑即可,也不需要整体切换到pigpio

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:39:00