发布时间: 2026-04-21
不少人于制作机器人手臂、自动门或者智能小车之际,会碰到一项基础却关键的要求情形,那便是要让舵机仿如钟摆那般反复地来回进行旋转动作,而全然不是仅仅转到一个固定角度之后便停止而不再转动。这篇文章是依据标准舵机(PWM脉冲宽度调制控制)的工作原理状况,给出具备两项经过验证的可靠办法措施之举,以此协助你能够快速达成舵机的连续往复运动之效果。
标准舵机,存在以0至180度或者0至360度这两种情况的,它借助接收周期是20毫秒也就是50赫兹的PWM信号,以此来达成对角度的控制。其中:
高电平时间0.5ms → 对应0度位置
高电平时间1.5ms → 对应90度中间位置
高电平时间2.5ms → 对应180度位置
若要达成“来回旋转”这一效果伟创动力,其本质在于伟创动力舵机,使单片机或者控制器,循环地输出,自最小角度起始直至最大角度的PWM信号,而后再进行反向输出。
上述方案是针对电子爱好者以及学生在实验过程当中,最为稳定且可靠的一种实验方案。接下来以平台当作示例,在此需要说明的是,其逻辑对于其他单片机而言是通通适用的,只不过在引脚定义方面会存在略微的差异。
标准SG90或MG995舵机(任何品牌均可,接线颜色统一)
昂杜伊诺开发板(有乌诺型、纳米型、专业迷你型等等)。
如果舵机的电流比500mA还要大,那么外接5V电源的时候,千万不要从开发板那里获取电力,不然的话可能会出现重启状况,或者导致烧毁现象发生)
标准接线(颜色从左到右):
![]()
针对这样一个案例,有一位学生,当这位学生在制作简易机械爪这种物体的时候,这位学生没有去使用外接电源,进而致使舵机出现旋转无力这种状况,并且还导致出现反复重启这种现象,之后接入独立的5V/2A电源以后,问题就被完全解决了。
#
Servo ;
int pos = 0; // 当前角度
int step = 1; // 每次变化步长(1度为平滑)
int = 0; // 最小角度(可改为20度避免堵转)
int = 180; // 最大角度
void setup() {
.(9); // 信号线接引脚9
}
void loop() {
// 从最小角转到最大角
for(pos = ; pos <= ; pos += step) {
.write(pos);
delay(15); // 控制转速,数值越小转得越快(但需大于10ms)
}
// 从最大角转回最小角
for(pos = ; pos >= ; pos = step) {
.write(pos);
delay(15);
}
}
参数调整说明:
改变旋转速度能够通过修改delay(15)来达成,越慢的来回情况是由越大的数值导致的,10ms是数值最小的建议数量。
要是舵机于0度或者180度的位置发出那种“滋滋”的异常声响,那就把设定成10,将设定成170,以此来防止机械限位导致堵转,避免出现问题。
确认舵机红色线电压为5V(用万用表测量)
确认开发板与舵机GND已连接(共地)
,要去确认,信号线所连接的位置,是在PWM引脚这里,而在 Uno里边,引脚3、5、6、9、10、11这些引脚是支持的。
要是你不存在单片机,或者并不期望去编写代码,那么能够经由纯粹的硬件电路达成舵机来回摆动。这种方法适用于教学演示,也适用于简单自动化场景。
NE555定时器芯片 ×1
10kΩ电阻 ×2
100kΩ可调电阻 ×1
10μF电容 ×2
0.1μF电容 ×1
二极管 ×2(保护舵机)
![]()
555定时器被配置成无稳态多谐振荡器,能够输出频率大概为50Hz的方波,借助两个可调电阻来改变高电平时间,该高电平时间处于0.5ms至2.5ms范围,致使输出脉宽在周期里反复进行变化,进而驱动舵机做往复运动。
常见的问题是这样的,手动焊接而成的555电路,它是有可能出现舵机抖动这种情况的。经过测试之后才发现,在输出引脚跟舵机信号线之间串联一个1kΩ电阻,并且在舵机电源端并联一个1000μF电解电容,如此做就能大幅提升稳定性。
其核心观点为,要令舵机作来回旋转之动作,究其实质乃循环性地去改变PWM信号的高电平时间,从而让该信号于最小脉宽(对应0度)与最大脉宽(对应180度)之间进行往复性的变化。其中编程控制属于最为灵活且最为可靠的方式,然而纯硬件电路则适用于不存在编程的环境。
立即行动步骤:
1. 确认你的舵机类型(标准0180度舵机才适用上述方法)。
2. 预备好开发板,以及5V外接电源,就算当下手里没有,也能够用手机充电宝搭配5V升压模块进行临时替换。
3. 将上文示例程序直接进行复制,上传之后,先使得舵机摆动一回,接着把delay值以及角度范围予以调整,直至达到满意状态。
4. 要是舵机出现剧烈抖动的情况,那就得查看电源电流是不是低于1A,并且要在舵机红色线与棕色线之间并联一个电容,这个电容的大小范围是220μF到1000μF。
若依照上述步骤去进行操作,那么你会在十分钟里头成功达成舵机的稳定地来回转动。一旦碰到任何异常状况,请要优先排查“共地”以及“电源电流”这两个最为经常出现的失败缘由。