发布时间: 2026-04-17
你有没有过制作一个小型机器人手臂,然而却发觉它没办法精准地停留在你所期望的位置呢?又或者搭建一个遥控时,舵机老是会抖动、没办法回中呢?在这些常见的困扰背后,全都指向了同一个核心的问题:对于舵机SG90工作原理的理解并不够透彻。
首要的是核心结论:舵机SG90从本质上来说伟创动力舵机,是一种“角度定位系统”,而非那种连续旋转的电机。它能够接收特定宽度的脉冲信号,也就是PWM,通过内部电路去比较信号以及当前所处的位置,进而驱动电机朝着正反两个方向转动,最终使得输出轴准确无误地停止在目标角度,这个角度范围是0°到180°。明白这一闭环控制逻辑,是正确运用舵机的关键所在。
对于“舵机SG90如何工作”这个核心意图,本文接下来会全面围绕它展开,从信号开始输入的那一刻起,一直到角度最终输出,会按照先后顺序,一步一步来拆解它内部的工作机制,而且呢,还会给出能够直接去操作的验证方法。
于工作原理予以领会,最先需明晰其内部的物理结构,SG90微型舵机是由以下部分合力运作的:
当中,电位器径直固定于输出轴之上,其阻值伴随输出轴角度呈线性变化,变为向控制电路通告“当前实际角度”的仅有传感器。
舵机SG90的运转可不是单纯“接到信号便转动”这般简单,而是存在着持续的对比、反复的调整以及的锁定,这是一个封闭的循环进程。下面列出的便是依据官方数据手册而来的标准工作顺序:
信号类型:周期为20ms(50Hz)的脉冲宽度调制信号。
关键参数当中,脉冲宽度,也就是高电平持续时间,它能够决定目标角度,并且与电压幅值没有关系,需注意通常使用3.3V/5V逻辑电平。
对应关系(标准SG90参数):
0.5ms脉冲 → 目标角度 0°
1.5ms脉冲 → 目标角度 90°(中位)
2.5ms脉冲 → 目标角度 180°
![]()
于实际开展测试期间,不同批次的SG90,有可能存在正负零点一毫秒的偏差情况,建议将以上电之后所进行的实际测试作为标准依据。
控制电路同时接收两路信号:
输入目标值:从信号线解析出的脉冲宽度(对应目标角度)。
当前实际值:电位器反馈的电压值(对前输出轴角度)。
电路内部之中的比较器,会去计算两者之间所存在的差值,也就是误差。只要这个误差并非是零,那就会持续不断地输出驱动信号。
当误差呈现为正的情况,也就是目标角度大于当前角度的时候,控制电路会驱动直流电机朝着正方向转动,经过减速齿轮组带动输出轴朝着目标方向进行转动 ,这一过程是如此这般的。
若误差呈现为负,也就是目标角度小于当前角度的这种情况,那么控制电路会去驱动直流电机进行反转。
当误差变为零,也就是到达目标角度的时候,就会停止输出驱动电压,进而电机停转,这时输出轴凭借齿轮自锁来保持位置。
重要结论是,舵机不是收到信号就马上转到位,乃是以大概0.1秒/60°的速度,这是空载典型值,持续运动,一直到误差变为零。这就是改变目标角度后,舵机会追赶到新位置的原因。
于实际的项目当中,存在着以下这三种错误的理解,而这三种错误理解致使超过70%的舵机出现损坏(此数据是依据某创客社区在2024年所做的故障统计得出来的)。
标准做法是:苛刻限定脉冲宽度处于0.5ms至2.5ms范围中,此范围对应0°至180°。要是需要持续转动,要选用360°连续转动舵机(其内部已消除限位而且电位器位置不一样)。
假使你手头存在一块开发板,以及SG90舵机,那么请依照以下步骤去验证上述原理:
SG90舵机 ×1
面包板及杜邦线
![]()
UNO(或其他PWM输出设备)
5V的电源,舵机的红色线要连接到5V那里,需要注意的是SG90的峰值电流大概是0.5A。
#
Servo ;
int pos = 0;
void setup() {
.(9); // 信号线接引脚9
}
void loop() {
// 从0°转到180°,步进1°,每步延时15ms
for (pos = 0; pos <= 180; pos += 1) {
.write(pos);
delay(15);
}
// 从180°转回0°
for (pos = 180; pos >= 0; pos = 1) {
.write(pos);
delay(15);
}
}
留意现象,舵机输出轴呈现出一种缓慢且平滑的摆动状态,此现象的出现对“连续运动直至抵达目标角度”这一工作原理做出了确认。
再次着重说明,舵机 SG90 的实质是一种位置伺服系统,它会对 0.5ms 至 2.5ms 的脉冲宽度和当下实际角度加以比较,进而驱动电机进行正反转,最终把输出轴锁定在 0°到 180°范围里事先指定好的任意角度。而它并不收受速度指令,同时也不具备支持连续旋转的特性。
1. 若你那机器人的关节没办法精准地到达相应位置,那么呢,要用到上述所提及的测试代码去验证舵机自身是不是处于正常状态,接着呢,还要去核查一下你所输出的PWM脉冲宽度是不是严格限定在0.5ms至2.5ms这个范围之内。
2. 处于需要舵机能够快速做出应答的状况下:要明白SG90在没有负载的时候转动速度大概是每60°需要0.1秒,当承受负载时转得更迟缓。要是期望具备更快的速率,那就得升级为金属齿轮舵机(例如这种)。
3. 若你察觉到舵机在持续发出嗡嗡之响却未产生动作,这实属正常情况示意着控制电路依旧在输出驱动用以抗衡外部之负载,然而于机械层面已然抵达限位。要是响声过度之巨大,那就表明负载过于沉重或者角度超乎了范围。
4. 针对关键参数进行保存:将经过测试得出的,你用到的特意SG90批次实际脉宽与角度的对应数值精准记录下来,可千万不要去依赖理论数值哦。
经过以上自信号输入起始直至机械输出终结的完整剖析拆解历程,此刻你已然把握了SG90舵机的全部运作原理。基于这样的一种理解去开展你的项目调试工作伟创动力,将不会再遭受诸如抖动、位置未达预期或者部件烧毁等一系列问题的烦扰。