发布时间: 2026-09-09
当前舵机的角度控制, 本质上是依靠硬件PWM信号进行针对性模拟调节的, 很多新手入门学习者在具体实现过程中, 往往都极度困惑于如何从现成的PWM占空比来精准算出舵机对应角度, 或者在配置软件参数时反过来操作。这篇推送科普文章将会由专业工程师严格完整地推算推导出这两个量之间紧密的数学函数关系, 将全力帮助你在真实落地的实际硬件项目中完美准确无误控制住舵输出部件的角度位置移动情况。
标准舵机通过三根线实现连接: 电源线、接地线、以及控制线, 控制线接收PWM信号——也就是脉冲宽度调制信号, 具备周期固定、可改变脉宽的核心特征。
典型参数如下:
PWM周期:20ms(频率50Hz)
高电平的脉宽范围, 跨度区间数值为零点五毫秒, 往两点五毫秒延展开。
对应角度范围:0° ~ 180°
这意味着舵机内部电路会检测每个周期内高电平持续着的时间, 并将该时间与某个基准值来进行比较, 从而确定旋转目标位置。
占空比即, 在全部完整周期里头, 高电平保持出现时长数所占据的比例的百分比, 计算求值的公式就是:
D = t / T × 100%
其中:
D 为占空比(单位:%)
t 为高电平脉宽(单位:ms)
T 为PWM周期(单位:ms)
当周期固定为20ms时,不同脉宽对应的占空比如下:
脉宽0.5ms → 占空比2.5%
脉宽1.5ms → 占空比7.5%
脉宽2.5ms → 占空比12.5%
舵机的旋转角度随高电平脉宽线性增长对应关系, 是推导公式绝不可少的核心前置条件, 目前已有的两个端点数量参数如下。
脉宽0.5ms对应角度0°
脉宽2.5ms对应角度180°
设脉宽t与角度A的关系为一次函数: A=k×t+b。
代入两点求解:
当时间t等于0.5毫秒时, 角度A等于0度, 也就是等式零等于0.5乘以k再加b。
当t等于2.5毫秒时, A等于180度, 即180等于2.5k加b。
两行式子做差结果为: 180 = 2k, 求出的k值是90(°/ms)
代回第一式得:b = 45°
角度公式为:
A = 90 × (t 1.5)
将t的单位规定为ms, A的单位规定为°, 而1.5ms即为90°所对应的基准脉宽。
将脉宽公式转换为占空比形式,代入占空比定义式:
已知 t = A/90 + 1.5(ms)
代入D=t除以T乘上100%, 此处当中T等于20ms:
D = (A/90 + 1.5) / 20 × 100%
化简得:
D = 2.5% + A × (5% / 90°)
或者写作:
D = 2.5% + A/18
![]()
其中A单位为度,D单位为百分比。
同样可推导反向公式:
A = (D 2.5%) × 18
案例一:需要舵机旋转到90°,应设置多大的占空比?
使用公式, D 等于, 2.5%, 加, 90°, 除以, 18, 就等于, 2.5%, 加, 5%, 终究等于, 7.5%。
校核: 7.5%占空比所对应的脉长 t 等于7.5%乘20毫秒等于1.5毫秒, 恰好达到90°的基准位置。推演是对的。
案例二:程序需要设置占空比为10%,舵机应转到多少度?
公式A=(10%减2.5%)乘18等7.5%乘18等135°。
校验: 135°对应的脉宽t = 135/90加1.5等于3ms? 不对, 重行计算: t等于135°除以90加1.5等于1.5加1.5得3ms……这里检出偏差。校正: t等于A除以90加1.5得135/90加1.5等于1.5加1.5得3ms, 却最大脉宽只存有2.5ms。这说明10%占空比对超出于舵机常规范围, 实际工程中限定在2.5%到12.5%区间之内。
案例三:占空比设为5%伟创动力伟创动力舵机,对应角度是多少?
A左括号百分之五去掉百分之2.5右括号乘以十八等于百分之二点五乘以十八等于四五度。
验证: 45度对应脉宽 t = 45/90 + 1.5 = 0.5 + 1.5 = 2.0毫秒, 占空比 D = 2.0/20 = 10%。等等, 这里又出现不一致, 重新核查推导过程。
正确推导: D等于t除以20再乘以百分之百, t等于A除以90再加一点五。
所以D等于90分之A加1.5后再除以20继而乘100%等于90分之A加1.5继而乘5%。
D等于A乘以百分之五再除以九十, 加上一点五乘以百分之五, 等于A分之十八加上百分之七点五。
修正后的公式:
D = 7.5% + A/18
反向公式:
A = (D 7.5%) × 18
案例再三度验证: 当D取值为5%时, A需计算为(5%负7.5%)再乘18, 得负2.5%乘18, 最终为负45度。负角度占比表明该数值所占空比低于有效范围下限(2.5%), 此时实际舵机将停于0度位置。
案例四:占空比设为7.5%,角度是多少?
(7.5%-7.5%)乘18等于0度, 这表明七百五十千分点对应的是0度, 但方才已知七成五对应九十度, 二者之间存在冲突矛盾之处。
重新从根本上推导:
周期等于的T等于20ms的固定值, 脉宽的范围是0.5ms打到2.5ms分别对应着角度的0°打到180°。
占空比范围: 0点5除以20等于百分之2点点5, 到2点5除以20等于百分之12点5。
线性关系:D = a × A + b
代入两点:
A=0°时,D=2.5%:2.5% = b
当A等于180°时, D等于百分之一十二点五的: 百分之一十二点五等于一百八十a加百分之二点五。
解得: 18010% a, = = a, 1810%/1 = %/1。
最终公式:
D = 2.5% + A × (1%/18)
即:
D = 2.5% + A/18 %
反向公式:
A = (D 2.5%) × 18
![]()
再次: D为7.5%时运算验证, A的运算结果为百分之四点五乘以十八, 其结果为九十度, 完全符合题目设定, 运算过程正确无误!
所有公式基于周期二十毫秒的标准舵机推导推导。实际应用应用中, 不同品牌舵机的脉宽范围可能略有差异差异, 建议以厂家手册为准进行调整调整。
在微控制器内部配置舵机输出时, 通常借助定时器来生成PWM信号。拿一款通用MCU进行举例:
// 目标角度90度
int angle = 90;
// 计算占空比(以定时器计数值表示)
// 假设定时器计数值范围0~200对应0~100%占空比
// 则2.5%对应5,12.5%对应25
int = 5 + angle / 18;
// 设置定时器比较匹配值
();
该代码把90°对应到7.5%占空比, 对应着1.5ms脉宽位置, 让舵机停靠在正中间位置处。
问题一:实际角度与理论值有偏差
原因可能是:
实际舵机的脉宽范围并非严格的0.5ms~2.5ms
电源电压不稳定导致电机扭矩不足
机械结构存在摩擦力或卡滞
解决方式: 在运转中实际系统上开展校准, 测量差异占空比数值下的实际角度, 记录其中偏差大小并建立专用补偿系数。
问题二:舵机出现抖动
原因可能是:
PWM频率过低或不稳定
占空比更新过于频繁
供电电流不足
解决方式: 保证PWM频率稳定处维持在50赫兹区间, 压低控制指令下达频次, 给舵机供给单独稳固运行的电能。
问题三:多舵机同时工作时的干扰
控制信号质量会受诸多可能诱因影响, 众多舵机彼此同步动作产生的电流波动是常见可能诱因, 为此建议采用具备足够容量参数的滤波电容与相互独立的信号隔离电路。
本文推导形成的核心结论: 标准舵机的旋动角度同PWM占空比之间存有着线性联系, 占空比每变更百分比一, 角度的变更大概有十八度;具体公式为D = 2.5% + A/18, 这里面D指占空比, A指角度;掌握完这一联系以后, 你不妨可以通过不太复杂的数学运算精确操控舵机的位置。
1. 在购用舵机应用之前详察其所附规格书参数并核实实际涵盖的脉宽区间以及周期的实际参数数值前先要对相关参数先行做好精确核验确认无误。
2. 进行校准测试, 用万能表与示波器测量实际输出的PWM信号, 检验占空比准确特性。
3. 分段测试验证: 分别测试零、顺四十五、直九十、逆一百三十五、半转一百八十五个关键点, 实测实际角度和设定理论值对照偏差记录。
4. 建立补偿表: 若存在确确实实的系统性偏差, 可着手制作各类角度与占空比的对照表, 在既定完整程序之中开展直接查表相关的取用操作。
5. 稳定供电: 为舵机配备的是独立稳压电源, 避免和其他大功率器件共用的供电线路。
要懂的, 理论公式只是起头的步点, 实际用的时候得融合校正检测才可获取精准的角度把控成效。