发布时间: 2026-04-13
诸多刚开始接触的学习者,于运用单片机去操控舵机之际,皆期望达成“转速高低能够调节”这一目标。需要先清晰确定一个关键结论:一般常规位置的舵机,就类似平常多见的9g、15kg这样的舵机,没办法借助单片机直接操控它的转动速率,它的转动速度由于内部配置的电机以及减速类齿轮是固定好的,你仅能够操控它转向一个精准的角度。而若要达成“转速高低可以调节”,必定得采用“连续旋转舵机”,或者针对普通舵机开展硬件方面的改造。
下面直接给出两种经过验证的在实际运用中有效果的方案,这两种方案都是依据单片机来达成的,以作为例子,其他像STM32、51单片机也是同样据此来实现产生PWM信号的。
不断持续旋转的舵机内部,把角度定位电位器给取消掉了,让PWM信号的脉宽去映射成“停止、正转加速、反向加速”这种情况,这属于最为规范、最为稳定的调速方式。
信号线,一般呈现为黄或者橙或者白的颜色,它连接至,单片机,具备PWM输出功能的引脚伟创动力,像是的D9。
电源线(红) → 外接电源(根据舵机电压,如5V或7.4V)注意:切勿直接从单片机取电,大扭矩时电流可达1A以上
黑色或者棕色的地线,要连接到共同接地的地方,这里涉及单片机的GND,以及外接电源的GND,二者需要连接起来。
把50Hz/20ms周期PWM作为例子,连续舵机一般是遵循下面这样的对应关系的。
脉冲宽度 1.5ms → 停止转动
脉冲宽度处于1.5毫秒至2.3毫秒这个范围时→属于正转状态,脉宽越大→转速越快(且最大转速在2.3毫秒附近)。
![]()
脉冲宽度处于1.5毫秒至0.7毫秒之间时将会反转,脉宽越小其反转速度就越快,且最大转速是在0.7毫秒附近。
某些品牌之间或许可能存在着细微的不同之处,比如说停止的那个点有可能具体是1.52毫秒,然而其背后所依据的原理却是完全一样的。
#
Servo ;
void setup() {
.(9); // 信号线接引脚9
}
void loop() {
// 控制正转高速
.(2000); // 2.0ms脉冲 → 较快正转
delay(3000);
// 控制正转低速
.(1600); // 1.6ms脉冲 → 很慢的正转
delay(3000);
// 停止
.(1500);
delay(2000);
// 反转低速
.(1400); // 1.4ms脉冲 → 慢速反转
delay(3000);
// 反转高速
.(1000); // 1.0ms脉冲 → 较快反转
delay(3000);
}
转速的高低该如何调节呢:处于1.5至2.3毫秒这个范围之内,脉冲的宽度要是越大,那么转速也就会越高;处于1.5至0.7毫秒这个范围之内,脉冲的宽度要是越小,那么反转时的转速就会越高。你能够利用电位器取得读取的值或者通过串口指令去动态地改变脉宽,以此来达成无极调速。
舵机出现不转动,只是发出嗡嗡响声的情况:先要查看是不是使用了普通位置舵机。连续舵机在通电之后 ,要是接收到1.5ms信号就应该处于完全静止状态 ,不然就表明中点校准存在偏差 ,需要对代码里的停止脉宽进行微调 (比如改成1480~1520μs来找出真正的停止点)。
转速范围极为狭窄:试着将脉宽极限值拓展至700μs以及2300μs,然而不可超越舵机所允许的范围(一般是600~2400μs),不然的话有可能造成损坏。
若你手上仅持有普通舵机,并且不打算去购置新的部件,那么能够把舵机拆开,把内部角度反馈电位器调节到中点位置之后进行固定,接着去除机械限位伟创动力舵机,,如此一来舵机便会失去角度定位,进而转变为连续旋转舵机,不过这种操作将会永久地改变舵机功能,而且需要具备一定的动手能力呢。
步骤概述:
1. 拆开舵机外壳,取出电路板。
![]()
2. 寻摸与输出轴相联动的电位器,此电位器通常具备3个引脚,运用万用表去测量中间引脚针对两端的阻值,旋动输出轴致使中间脚的电压成为电源电压的一半,像在5V供电的情形下测量2.5V。
3. 于电位器转轴之处滴胶水,通过焊接来固定电阻网络,此操作是为将电位器锁定在中点,除此之外,还要把齿轮组上的物理限位凸起给去掉。
4. 组装后即可按“方案一”的代码控制转速。
注意:改装后精度和稳定性低于成品连续舵机,仅适合应急实验。
要再次着重强调核心结论:若要运用单片机去操控舵机的“转速高低”情况,那就一定要采用连续旋转舵机,并且要借助改变PWM脉冲宽度(其典型范围是700μs至2300μs,其中1500μs这一数值是停止点)的方式来达成速度调节。而普通位置舵机仅仅能够控制舵机角度,没办法进行速度调节。
行动建议:
1. 去购买那种标有“连续旋转舵机”的产品,或是购买标有“360度舵机”的产品,要避开去购买“180度舵机”。
2. 按照本文的硬件连接图和代码示例,搭建最小测试电路。
3. 使用()函数,分别去测试1500(此为停止状态),再测试1600(该状态为慢速正转),接下去测试2000(这是高速正转状态),然后测试1400(此为慢速反转状态),还得测试1000(属于高速反转状态),以此来确认转速变化是否符合预期。
4. 假如要对转速数值实施精确控制,那么能够外接旋转编码器,或者外接霍尔传感器,借由单片机PID闭环来调节PWM脉宽。
倘若依照上述方案,那么你便能够于 15 分钟之内达成单片机针对舵机转速的持续控制。一旦碰到任何异常,要去查验共地情况、外接电源容量状况以及停止脉宽是否精准匹配舵机中点。