打印

解决pwm控制9g模拟舵机抖的一种小方法

[复制链接]
7609|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xichandoujigu|  楼主 | 2018-12-12 22:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在淘宝买了三个9g的舵机,比较便宜,几块钱一个,主要用在无线遥控航模上,在调试中舵抖明显,遥控没有动作就一直抖,百度也没找到具体的方法,很多资料说是电源的问题,但是我的舵是单独供电,而且电压足够,所以只猜想是脉冲不稳的原因了吧,网友建议换硬件pwm,我想到了stc8A,但是一看我的stc12c5A60S2已经焊接上去了,没办法又硬着头皮搞吧。

后来确实想到一个算是办法的办法与大家分享,我的方法就是在方向舵起始阶段和舵到达最大舵角阶段直接停止定时器,这个停止不是完全停止,而是延时一段时间停止,否者舵就不起作用了(具体为什么要延时这个可能需要稍微思考下,我这里不作解释了),然后在过渡阶段把定时器启动起来,这样就实现了在过渡阶段舵动作,在起始阶段和最大舵角时稳定的状态,当然中间过渡阶段也可能抖舵,不过这个对我来说无所谓了。

例如;

我的舵起始位置是0°,最大舵角是左右90°,我就是这样操作的
0°              (延时20ms,关闭定时器)
0°-正90°     (启动定时器)
正90°         (延时20ms,关闭定时器)
正90°-0°     (启动定时器)
0°              (延时20ms,关闭定时器)
0°-负90°     (启动定时器)
负90°         (延时20ms,关闭定时器)
负90°-0°     (启动定时器)
0°              (延时20ms,关闭定时器)
这样依次循环。。。。。

为什么我选择延时20ms呢,因为我看这个舵的基准信号周期是20ms,我试过减小延时比如10ms确实不行,其它就没有试了,实际调试中能达到我要求的效果,只是有点慢,可能是我的程序还需修改,或者这个舵本身就不是很好,马马虎虎过的去。

同时这个方法也有局限性,我只需要向左向右就行,如果进一步控制左右的角度这种方法可能就达不到你需要的效果了。

啰嗦这么多其实就是一句话:
起始阶段和最大舵角阶段延时后再关闭定时器,过渡阶段启动定时器。

附上我的代码(延时准备修改为定时器的,修改中有点问题没解决,改天再弄了):
//防止舵机抖动
if (dangwei2>110 && dangwei2<140)//起始阶段延时后关闭定时器
{
    delayus(20000);
      TR1 = 0;//定时器停止
}

if ((dangwei2>20 && dangwei2<=110) || (dangwei2>=140 && dangwei2<220))//过渡阶段启动定时器
      TR1 = 1;//定时器启动


if (dangwei2<=10 || dangwei2>=220)//最大舵角延时后关闭定时器
  {
      delayus(20000);
      TR1 = 0;//定时器停止
}

==============================================================================






相关帖子

沙发
dirtwillfly| | 2018-12-12 22:42 | 只看该作者
感谢分享

使用特权

评论回复
板凳
一路向北lm| | 2018-12-13 18:38 | 只看该作者
看来原因不止一种

使用特权

评论回复
地板
山东电子小菜鸟| | 2018-12-13 21:20 | 只看该作者
良心帖子

使用特权

评论回复
5
HARRY007| | 2018-12-17 08:16 | 只看该作者
不能做加减速算法吗?

使用特权

评论回复
6
tianye907| | 2018-12-18 14:31 | 只看该作者
贱无好

使用特权

评论回复
7
xichandoujigu|  楼主 | 2018-12-22 08:10 | 只看该作者
HARRY007 发表于 2018-12-17 08:16
不能做加减速算法吗?

如果你说的是舵加减速,是可以的,不影响,这个只是两端处理,中间过程不影响。

使用特权

评论回复
8
tobot| | 2018-12-23 21:57 | 只看该作者
你的舵机只用在最大角度么?

使用特权

评论回复
9
xichandoujigu|  楼主 | 2018-12-25 10:16 | 只看该作者
tobot 发表于 2018-12-23 21:57
你的舵机只用在最大角度么?

不是,舵一样能按自己设定的角度来回摆动,只是在初始阶段和最大阶段克服了抖动,因为有些舵在启动后什么都不做就抖。

使用特权

评论回复
10
tobot| | 2018-12-27 18:35 | 只看该作者
xichandoujigu 发表于 2018-12-25 10:16
不是,舵一样能按自己设定的角度来回摆动,只是在初始阶段和最大阶段克服了抖动,因为有些舵在启动后什么 ...

是的,我也碰到过,数字舵机稍微好一点,淘宝买的模拟舵机看起来就像“隔壁吴老二”,我有段时间还以为是pwm有问题。。。

使用特权

评论回复
11
lihui567| | 2018-12-28 22:34 | 只看该作者
这个舵机抖的问题好多说法不一,有的说时舵机本省的问题,咱这个时程序的问题,

使用特权

评论回复
12
自行车VB你们| | 2018-12-29 09:20 | 只看该作者
我来学习的啊!

使用特权

评论回复
13
鑫越电子| | 2020-8-19 09:59 | 只看该作者
谢谢分享,正在学习舵机

使用特权

评论回复
14
不想画板子| | 2020-8-19 15:07 | 只看该作者
学习一下,为以后舵机做基础

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

96

帖子

2

粉丝