发布时间: 2026-09-30
MG995舵机实现控制的核心重点, 在于要把三根信号线连接到正确的位置, 同时需要生成精准的PWM脉宽信号。MG995是常见的高扭矩金属齿轮类型舵机。它在机器人、云台、机械臂这些项目当中被广泛地应用着。想要掌握它的控制方法, 关键点就在于要理解接线规范、PWM脉冲编码规则, 还有驱动代码的编写逻辑。
接线方法与引脚定义
从MG995这个部件上面引出来的信号线, 总共有三根, 具体的颜色以及它们分别对应的功能, 情况如下:
棕色线代表的是GND, 也就是地线, 需要将这条线连接到主控板上的GND引脚。
红色线, 指的是VCC这个电源线路, 要把这根线连接到能够提供5V电压或者是6V电压的供电端口上面去。
橙色线条代表的是信号线, 也就是SIG线, 需要将其连接到主控板上的PWM输出引脚上。
在实际的操作案例里面, 那些刚开始学习的人在接线的时候, 最常犯的一个错误伟创动力,就是把棕色的那一根线, 和红色的那一根线, 接反了, 这其实是很不应该的, 如果电源的正极和负极一旦就这样被接反了, 那么舵机里面的那个芯片, 可是会立刻就被弄坏的, 这种损坏的表现形式, 要么是机器不通电, 一点反应都没有, 要么是它会发出一些奇怪的响声, 所以在正式接线之前的时候, 一定要反复去核对一下电线的颜色对不对, 除此之外, 还应该用万用表这个工具去确认一下电压的极性是否正确。
在涉及供电方面的时候, 大家需要特别注意, MG995这个型号的舵机, 当它遇到堵转的情况或者是在做大角度的转向动作的时候, 其峰值电流是可以达到一点五安培以上的这么一个大数值, 如果咱们选择使用主控板上自带的那个五伏电源引脚来直接给舵机进行供电的话, 那么这种情况下就非常容易因为出现瞬间的电压不足或者说是欠压的现象, 从而导致舵机产生不正常的抖动情况, 甚至是直接引发主控板发生复位重启的操作, 所以基于上述的安全考虑, 通常建议通过采用一个独立的五伏或者是六伏的电源模块的方式, 为舵机提供单独且稳定的电力供应, 并且同时还需要将所接入的这个独立电源的地线也就是GND接口, 与主控板上的地线也就是GND接口进行共地连接这样一个操作。
PWM脉冲编码原理
MG995是采用标准PWM控制协议的, 信号周期是固定为20ms的, 脉宽是在0.5ms至2.5ms之间变化的。
![]()
0.当脉宽为5ms的时候, 其对应的角度值是0度, 这也就是说此时的位置是起始的位置。
1.5ms这个脉宽大小, 它对着的是那种中间位置的情况, 也就是角度为90度的地方。
2.脉冲宽度为5毫秒的时候, 对应的角度是180度, 而这个180度表示的是满量程的位置。
从相关关系来看, 角度以及脉宽之间是呈现出一种线性的特征来的, 那么如果说是这个脉宽每增加约10μs的话, 这个角度的变化则是约1°的这样的样子。举例来说的话, 如果说是要让舵机转到45°这个位置的话, 那么此时所对应的那个脉宽数值则就是1.0ms的。
在生成PWM信号的时候, 有一个计算占空比的例子可以供你参考, 这个例子的情况是这样的, 周期被设定为20ms, 这也就等于20000μs, 假如你现在需要的脉宽是1.5ms, 那么占空比就会通过1.5除以20这个算式来得出, 最终的结果就是7.5。
驱动代码要点
驱动MG995的核心步骤, 在于微控制器上面进行操作的时候。
1. 把信号引脚设置成PWM输出模式。
2. 设置那个PWM的周期, 是要把它设置为20毫秒, 也就是对应的频率是50赫兹。
3. 根据目标角度计算出对应的脉宽, 然后将这个结果写入到比较寄存器当中, 或者去调用库函数来处理。
在使用标准PWM库的时候, 可以把设置为两万微秒, 然后对着角度把脉宽值给映射写入就行。要是用了硬件定时器伟创动力舵机,那就得把预分频器和比较值给配置好, 好去产生五十赫兹的载波。
![]()
在代码当中, 建议把角度的限制判断给加上, 这样就去防止写进去的脉宽超出了零点五毫秒到二点五毫秒的范围, 从而让舵机出现越位然后卡死的状况。
常见问题与排查
当一个舵机在接收到信号之后出现发抖的现象时, 这通常都是由供电方面没有达到足够的条件或者是信号线这边没有实现共同的接地所引起的, 所以说要优先去检查一下电源这一块的情况。
舵机当是转到了目标位置之后, 就出现了会非常缓慢地回偏的情况。这种情况大多数时候是因为供电的纹波过大的缘由了。如果你把一百微法到四百七十微法的电解电容并联在了电源的两端, 那么这种状况应该是可以有所改善的了。
在同时控制多个舵机的时候, 出现了部分舵机失灵的情况。这是因为叠加在一起的电流超过了电源的能力范围。所以, 需要把独立供电模块进行升级, 要换上能力在5安培以上的模块。
行动建议与
对于MG995舵机而言, 其控制的核心要点始终是不变的, 这主要的三个关键方面分别为接线一定要接正确、需要生成频率为50Hz的PWM信号, 以及脉宽与角度呈线性映射关系, 在开始动手操作之前, 建议最好是先使用示波器或者万用表, 来测量一下信号引脚所输出的波形情况, 确认该脉宽数值是在0.5ms至2.5ms这个范围之内的, 然后就可以再逐步地对舵机进行连接和测试了。
在完成0°这个角度的验证之后, 再去完成90°这个角度的验证, 随后又去完成了180°这个角度的验证。
把这三个基准的角度点全部都验证完毕之后, 再继续开展连续旋转以及定位精度的调试工作。这样做了以后, 排查的难度就可以大幅度地降低下来。
当你掌握了上面说的这些方法之后, MG995舵机的控制工作, 你从接线这部分开始到代码实现那部分结束, 全流程都能够自己独立进行操作了。这一点在嵌入式领域还有机器人项目里头, 属于最基础的一个环节, 同时它也是非常关键的一个部分。