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

使用Python+PyFirmata读取Arduino模拟引脚失败求助

问题解决方法

核心问题:模拟引脚索引错误

PyFirmata中,board.analog[]的索引对应Arduino模拟引脚的规则是:A0对应索引0,A1对应索引1,…,A5对应索引5。你代码里使用board.analog[11],超出了常规Arduino(如Uno)模拟引脚的索引范围,这是报错的根本原因。

如果你的按键接在A11引脚(仅部分型号如Arduino Mega支持A6-A15),请先确认开发板型号是否支持该引脚;如果是普通Uno类开发板,说明你接错了引脚。

修正后的代码示例

假设按键接在A0引脚,代码修改如下:

import pyfirmata
import time
from pyfirmata import util

port = "COM4" 
board = pyfirmata.Arduino(port)

it = util.Iterator(board)
it.start()

# 启用A0引脚的报告(对应analog[0])
board.analog[0].enable_reporting()

while True:
    # 读取A0引脚的值
    print(board.analog[0].read())
    time.sleep(1)

额外注意事项

  • 按键接线:一端接模拟引脚,另一端接GND并串联10kΩ下拉电阻;或接VCC并串联上拉电阻,避免引脚悬空导致读数波动。
  • 确保Arduino已烧录Standard Firmata固件:打开Arduino IDE,选择文件>示例>Firmata>StandardFirmata,上传到开发板。
  • 确认端口号COM4正确:可在Arduino IDE的工具>端口中查看实际端口。

内容的提问来源于stack exchange,提问作者Mustafa Kemal AKTAŞ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:31:02