3、电调入门:电调(ESC)的工作原理,PWM信号如何控制电调,油门行程校准
好,咱们今天聊聊电调。说白了,电调就是无人机动力系统的“变速箱”加“油门踏板”。没有它,你的电机要么不转,要么全速转,根本没法飞。
我记得刚入行那会儿,第一次炸机就是因为电调没校准。那感觉,就像你踩油门车却猛蹿出去,完全失控。所以这一节,咱们把电调彻底搞明白。
3.1 电调到底在干什么?
电调的全称是电子调速器(Electronic Speed Controller)。它的核心任务就一个:把飞控发来的PWM信号,转换成驱动无刷电机旋转的电流。
你想想看,飞控是个大脑,它只会发弱小的信号。电机是个大力士,需要几十安培的电流才能转。电调就是中间的“放大器”和“翻译官”。
具体来说,电调内部干了三件事:
- 接收信号:读取飞控发来的PWM脉宽(比如1000us到2000us)。
- 生成换相时序:无刷电机需要三相电交替通电,电调里的MOS管负责高速开关,产生旋转磁场。
- 调节转速:通过改变通电的占空比,控制电机转速。
核心概念:电调输出的不是直流电压,而是一串高频脉冲。电机转速取决于脉冲的“有效值”,而不是峰值电压。
3.2 PWM信号如何控制电调?
这里有个关键点:电调只认PWM的脉宽,不认频率。当然,频率得在合理范围内(通常50Hz-500Hz)。
标准的油门信号是这样的:
| PWM脉宽 | 含义 | 实际效果 |
|---|---|---|
| 1000us(1ms) | 最低油门 | 电机停止或怠速 |
| 1500us(1.5ms) | 中位点 | 约50%转速 |
| 2000us(2ms) | 最高油门 | 全速旋转 |
我在项目中遇到过一个问题:飞控输出的是1000-2000us,但电调默认的接收范围是1100-1900us。结果就是,油门推到顶,电机才转了一半。嗯,这就是典型的“行程不匹配”。
为什么会这样?因为不同品牌的电调,对PWM信号的“理解”有细微差别。有的电调把1000us当停转,有的把1100us当停转。所以我们需要做一件事——油门行程校准。
3.3 油门行程校准,避坑指南
油门行程校准,说白了就是让电调“记住”你的遥控器或飞控的油门范围。这一步做不好,飞机要么推油门没反应,要么一推就蹿。
我曾经有一次,在野外飞一台四轴,换了个新电调没校准。结果解锁后,轻轻推油门,飞机直接翻了个跟头。后来检查发现,电调把1000us当成了全速,把2000us当成了停转——完全反了。
标准校准流程如下:
- 断开电机:安全第一,先别接螺旋桨。
- 上电前推满油门:把遥控器油门推到最高,或者飞控输出最高值。
- 给电调上电:此时电调会进入校准模式,通常会有“哔哔”提示音。
- 等待确认音:听到两声短促的“哔哔”后,迅速把油门拉到最低。
- 完成校准:电调会再响一声,表示校准成功。
警告:校准过程中,电调可能会突然输出最大电流。务必确保电机没有负载,最好把电机拆下来。否则,电机突然全速旋转,可能伤到你。
我个人习惯,校准完成后会做一次“油门行程验证”:
- 推油门到最低,电机应该停转或极慢速转动。
- 推油门到50%,电机转速应该平稳。
- 推油门到最高,电机应该全速且无抖动。
如果发现电机在某个点突然抖动或卡顿,说明电调的换相时序有问题,或者PWM信号有干扰。这时候,我建议检查一下信号线的屏蔽,或者换一个电调试试。
3.4 代码层面:如何用PWM控制电调?
在飞控代码里,控制电调其实就是输出PWM。以STM32为例,用定时器的PWM模式:
// 假设定时器2,通道1,输出PWM控制电调
// 初始化代码略...
// 设置油门值,范围1000-2000
void set_throttle(uint16_t pulse_us) {
if(pulse_us < 1000) pulse_us = 1000;
if(pulse_us > 2000) pulse_us = 2000;
// 计算比较值,假设定时器时钟72MHz,预分频后1MHz,ARR=20000
// 那么PWM频率=1MHz/20000=50Hz
// 脉宽us = 比较值
TIM2->CCR1 = pulse_us;
}
// 使用示例
set_throttle(1500); // 中位点,电机半速
这里有个细节:电调对PWM频率很敏感。我建议用50Hz(周期20ms),这是最通用的。有些高速电调支持400Hz,但兼容性会差一些。
小技巧:如果你用Arduino,可以直接用Servo.h库。因为电调信号和舵机信号是兼容的。但注意,Servo库默认频率是50Hz,别改。
3.5 常见问题与排查
最后,分享几个我踩过的坑:
- 电机不转:先检查PWM信号有没有输出。用示波器看波形,或者用万用表测电压(1000us时约0.5V,2000us时约1.0V)。
- 电机抖动:通常是电调与电机不匹配。比如电调支持2S电池,你用了4S。或者电调的换相频率跟不上电机转速。
- 校准后无效:有些电调需要断电重启才能保存校准值。我习惯校准后拔掉电源,等10秒再上电。
嗯,电调这东西,说复杂也复杂,说简单也简单。你只要记住:PWM是语言,电调是翻译官,校准是握手协议。这三样搞定了,动力系统就稳了。
下一节,咱们聊聊怎么用代码实现电调控制,以及如何做油门曲线。到时候我会分享一个我调试了三天才搞定的“急停保护”方案。