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

Arduino连接Pixhawk读取PWM信号始终为0的问题咨询

问题背景

尝试将Pixhawk连接至Arduino读取其输出的PWM信号,当前Pixhawk已正常连接FrSky X8R接收机,但Arduino端读取到的PWM数值始终为0。
使用的Arduino读取代码如下:

#define RCPin 4
int RCValue;

void setup() {
  Serial.begin(9600);
  pinMode(RCPin, INPUT);
}

void loop() {
  RCValue = pulseIn(RCPin, HIGH,25000);
  Serial.println(RCValue);
}

接线情况参考下图:
接线示意图

排查及解决步骤

按优先级从高到低排查:

  • 优先确认共地连接:这是该类问题最高发的原因,必须将Pixhawk的GND引脚与Arduino的GND引脚直接相连,两套设备没有共地的话电平参考基准不统一,pulseIn函数完全识别不到正确的高电平跳变,自然一直返回0。
  • 检查Pixhawk端口输出配置:Pixhawk的MAIN/AUX输出口默认不会直接透传接收机PWM信号,需要先在Mission Planner或者QGroundControl地面站中,把接线对应的输出端口功能设置为遥控器通道透传/舵机PWM输出,确认对应通道输出的是1000~2000us区间的标准50Hz PWM信号。
  • 修正代码参数:当前pulseIn设置的超时时间为25000微秒(25ms),刚好等于标准50Hz PWM的完整周期,很容易因为时序偏移错过高电平脉冲,将超时参数调整为30000(30ms)即可覆盖完整周期,避免漏读。
  • 接线与电平校验:Pixhawk输出高电平为3.3V,常规Arduino(Uno/Nano等)数字口可正常识别,但如果接线过长存在压降会导致高电平达不到识别阈值,接线长度尽量控制在20cm以内;同时确认接到的是Arduino的数字引脚4,不要误接到模拟口或者其他功能复用引脚上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:12:35