发布时间: 2026-04-04
核心得出的结论是:舵机进行旋转的角度和PWM占空的比例中间的那种对应之中的关系,是存在着两种在本质上有所不同的计算的公式的,这两种公式分别是“中位基准公式”以及“端点基准公式”。这两者所拥有的核心差异性在于:相互参考的零点不一样。前面那种是把舵机的中位,也就是通常情况下的90°或者1500μs的高电平的时候间,当作对称的中心来展开计算的,后面那种则是以最小的角度对应着最小占空且比的端点直接进行线性映射的。会致使角度控制偏差最高能达到90°(以180°这一量程的舵机作为例子,倘若进行选择错误的公式操作)。在本文之中,是依据PWM控制原理以及舵机内部的闭环反馈机制,给出了两种公式各自的全部定义,给出了两种公式各自适应的场景状况以及转换的方法。
公式表达:
占空比对应高电平时间(μs) = 最小角度对应高电平时间 + (当前角度 / 最大角度) × (最大角度对应高电平时间 最小角度对应高电平时间)
标准数值示例(以最常见的0°~180°舵机为例):
最小角度0° → 高电平时间 = 500μs
中位90° → 高电平时间 = 1500μs
最大角度180° → 高电平时间 = 2500μs
简化公式:
高电平时间(μs) = 500 + (角度 / 180) × 2000
或写作:
高电平时间 = 500 + 角度 × (2000 / 180) ≈ 500 + 角度 × 11.11
公式表达:
占空比对应高电平时间(μs) = 中位高电平时间 + (当前角度 中位角度) × (单位角度步进值)
其中,单位角度的步进值,便是用最大角度对应的高电平时间,减去最小角度对应的高电平时间,所得结果除以最大行程角度。
标准数值示例(0°~180°舵机,中位90°):
高电平时间(μs) = 1500 + (角度 90) × (2000 / 180)
= 1500 + (角度 90) × 11.11
![]()
关键区别的根本实质在于,两种公式于数学范畴内是等价的,其计算得出的结果全然相同,然而区别之处在于,参数配置的方式存在差异,并且思维也不一样。端点公式要求知晓0°所对应的极限值以及180°所对应的极限值,中位公式则要求知道中位值以及单位角度的步进值。
特定错误操作情形:有一位爱好者操控180°舵机,其意图是要让舵机转向0°,接着直接代入公式,得出高电平等于1500加上括号内0减去90的差再乘以11.11,进而等于1500减去1000,结果为500μs,此结果是正确的答案。然而要是他错误地认为中位公式里的“当前角度”是直接进行映射,也就是不减去中位角度,那就会得到1500加上0乘以11.11等于1500μs,实际上舵机转到了90°,出现了偏差90°的状况。
验证解决问题的办法是,不管选用哪一个公式,在代入三个已知的点的时候,也就是0°、90°、180°,去检验输出的结果是不是分别为500μs、1500μs、2500μs。
通常情形: 用户选购了一款有着270°的舵机(0° 对应着500μs,270° 对应着2500μs),然而却错误地运用了180°舵机的公式。
正确计算公式(端点基准):
高电平时间(μs) = 500 + (角度 / 270) × 2000
= 500 + 角度 × 7.41
要是错误运用180°公式(乘以11.11),当指令角度为90°的时候,90乘以11.11再加上500等于1500μs伟创动力,而实际对应270°舵机的135°,这是因为1500μs在该舵机上等于500加上角度乘以7.41,这里角度经过计算等于1000除以7.41约等于135°,偏差是45°。
核心原则是,公式里的“最大角度”伟创动力舵机,要与舵机实际规格严格匹配,还有“最大高电平时间”,同样与舵机实际规格严格匹配。
背景:连续旋转舵机,也就是常常被称作“舵机电机;它还有个名字叫就是“360°舵机”,这一类舵机的内部并没有角度反馈电位器,所以没办法去定位绝对角度,其控制逻辑是这样的:
高电平1500μs → 停止
高电平>1500μs → 正转,差值越大转速越快
高电平<1500μs → 反转,差值越大转速越快
结论是,上述的那两种角度,跟占空比公式完完全全不适用于连续旋转的舵机。要是强行去使用,就会致使控制失效。
![]()
1. 存在这样的舵机类型,其中标准位置舵机,也就是那种角度范围为0到180°或者270°等情况的,会运用上述所提及的公式;另一方面,连续旋转舵机,则要使用速度控制公式,并且这个公式并不适用于本文章中的公式。
2. 对于舵机而言,其极限高电平时间,需查阅舵机的数据手册,一般情况下是500至2500微秒或者600至2400微秒。要是不太明确的话,那就使用示波器或者舵机测试仪进行实际测量。
3. 舵机的角度量程,要去确认最大角度值,常见的有180°,还有270°,另外还有360°,这里的360°是非连续型的,实际上是机械限位的360°。
步骤1:去获取舵机规格书里头的三个核心数据,这三个数据分别是,最小角度所对应的高电平时间,此即T_min,还有中位角度所对应的高电平时间,也就是T_mid,以及最大角度所对应的高电平时间T_max。
步骤2: 根据你的控制习惯选择公式:
若你习惯以0°为起点控制 → 采用端点基准公式
若你习惯以中位为对称中心控制 → 采用中位基准公式
步骤3:在编写代码之前,或者在对PWM模块进行配置之前,要至少去验证三个角度值是哪些呢?是0°,还有中位,另外还有最大角度,这些角度值的计算结果。
步骤4:进行实际测试,发送指令使得舵机转向0°,以及最大角度,运用角度测量工具,或目力查看确认范围是否精准无误。
把经过计算而得出的高电平时间代入以下公式从而进行反推角度,理应能够得到原本的角度值。
角度(端点公式)= (高电平时间 T_min) / (T_max T_min) × 最大角度
角度(中位公式)= 中位角度 + (高电平时间 T_mid) / ((T_max T_min) / 最大行程角度)
舵机旋转角度与占空比公式的核心区别不在于计算结果,而在于思维:
端点基准公式以最小角度为绝对参考,适合绝对定位控制
中位基准公式以中位为对称参考,适合对称摆动控制
在参数无误的状况下,两种公式于数学层面具备等价性,而究竟选用哪一种,则归取决于你自身的控制逻辑习气以及代码实现的便捷性。
因公式运用错误,其中包括且不限于参数不匹配,量程方面出现错误,以及舵机类型有着误判的情况,这成为致使控制产生偏差的根本缘由。
马上开展行动:要去确认你手头所拥有的舵机的规格参数,也就是T_min、T_mid、T_max以及最大角度,从中挑选上述任意一个公式,在代入三个关键要点进行验证之后,接着将其写入你的控制器代码当中。要是舵机属于连续旋转类型,那就得停止运用角度公式,转而采用速度差控制策略。