舵机的控制里面, 脉宽范围是0.5-2.5ms吗?我今天下了个例子,可以跑,发现他用的是0.5-10ms?
答案:2 悬赏:60 手机版
解决时间 2021-11-24 13:46
- 提问者网友:情歌越听越心酸
- 2021-11-23 16:44
舵机的控制里面, 脉宽范围是0.5-2.5ms吗?我今天下了个例子,可以跑,发现他用的是0.5-10ms?
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-11-23 17:35
需要根据舵机的实际情况 ,先试下0度和180度时,对应的脉宽是不是500微秒和2500微秒。
具体: 把程序中的求脉宽公式 先注释掉,脉宽(pulsewidth)直接赋值 500 ,如果转动到比0度小的位置而且还震动,需要往上加数字,比如510,还不行则再加,直到舵机位置是在0度位置,并且没有震动为止。记下该数字,例如 535 微秒。
然后,是给脉宽(pulsewidth)直接赋值2500,观察舵机旋转角度是否是在180位置,如果超过了180度,并且还在震动,说明需要降低该数值,比如2450,如果还没改善,继续降低,直到位置正对180度,不再震动。记下该数字,例如 2360 微秒。
好了,现在有了2个实验数据,可以改善脉宽公式了。
计算下 2360 - 535 = 1825 (可以变化的范围大小)
1825 ÷ 180 =10.139(每旋转1度,脉宽增加值)
535 + 想要改变的角度 ×10.139 = 需要使用的脉宽(pulsewidth)
获得脉宽(pulsewidth)的公式:
pulsewidth(脉宽) = myangle(舵机角度) × 10.139 + 535 ;
提示:pulsewidth 可能会得到一个浮点数,所以前面需要将它定义为double类型,而不是 int 整数类型。
具体: 把程序中的求脉宽公式 先注释掉,脉宽(pulsewidth)直接赋值 500 ,如果转动到比0度小的位置而且还震动,需要往上加数字,比如510,还不行则再加,直到舵机位置是在0度位置,并且没有震动为止。记下该数字,例如 535 微秒。
然后,是给脉宽(pulsewidth)直接赋值2500,观察舵机旋转角度是否是在180位置,如果超过了180度,并且还在震动,说明需要降低该数值,比如2450,如果还没改善,继续降低,直到位置正对180度,不再震动。记下该数字,例如 2360 微秒。
好了,现在有了2个实验数据,可以改善脉宽公式了。
计算下 2360 - 535 = 1825 (可以变化的范围大小)
1825 ÷ 180 =10.139(每旋转1度,脉宽增加值)
535 + 想要改变的角度 ×10.139 = 需要使用的脉宽(pulsewidth)
获得脉宽(pulsewidth)的公式:
pulsewidth(脉宽) = myangle(舵机角度) × 10.139 + 535 ;
提示:pulsewidth 可能会得到一个浮点数,所以前面需要将它定义为double类型,而不是 int 整数类型。
全部回答
- 1楼网友:神鬼未生
- 2021-11-23 17:42
运行过程pwm信号不能撤哦,不然舵机没信号输入了,可能会受到干扰乱转的,舵机内部有保护电路不会烧的,无论模拟舵机还是数字舵机脉宽和频率范围都有规定,具体参考你这个型号舵机的说明书,频率设置的不同可能会影响舵机的转动力矩。选定频率后调整占空比就可以了。你说的脉宽范围实际不怎么用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯