无需条件语句的单向步进电机前进步数计算方法咨询
单向步进电机前进步数无分支计算公式
存在无需条件语句的直接计算公式,可适配所有1~100范围内的合法位置输入:前进步数 = (DesPos - CurrentPos + 100) % 100
公式逻辑说明
因为电机仅可单向旋转,相当于位置是模100的循环体系,先给差值补满100保证运算过程不会出现负数,再取模100即可直接得到需要前进的步数,全程不需要任何if/else类条件判断。如果电机总步数不是100,把公式中的100替换为对应总步数即可通用。
示例验证
- 示例1:CurrentPos=90,DesPos=60,代入得
(60 - 90 + 100) % 100 = 70,符合预期输出 - 示例2:CurrentPos=20,DesPos=60,代入得
(60 - 20 + 100) % 100 = 40,符合预期输出 - 示例3:CurrentPos=60,DesPos=60,代入得
(60 - 60 + 100) % 100 = 0,符合预期输出
内容的提问来源于stack exchange,提问作者KidWithComputer
相关产品推荐
相关产品推荐

