智能车制作

标题: 舵机控制 心得 [打印本页]

作者: 胡宏宇    时间: 2014-4-28 12:56
标题: 舵机控制 心得
昨天花了一天的时间研究180度舵机的编程,发现一个问题。舵机转动的角度与占空比无关,而与脉宽(通道周期*占空比寄存器)有关。
以前看过一些资料得到的认识,把总线频率设置为64M,PWM A时钟64分频(),01级联,选择A时钟(通道周日1us),周期寄存器设置为20000,这样就可以给舵机提供20ms的脉冲周期,占空比寄存器设置为500到2500就可以调节-90度到90度。

我一直认为角度与占空比有关
后来我就吧周期寄存器设置为10000,占空比寄存器设置为250到1250,结果舵机只能从-90度到 不到0度的样子。  
我把占空比寄存器改回到500到2500,舵机又能从-90到90度。
接着分别把周期寄存器改成5000和60000,占空比寄存器还是500到2500,舵机也能转-90到90度。
到此为止,我总结出,舵机的角度与占空比(占空比寄存器500到2500,周期任意设置,大于2500)无关。
然后我把通道周期设置为10us,周期寄存器还是20000,占空比寄存器为50到250,舵机确实能转180度。再把周期寄存器设置为255,舵机还是能转180度。

总结,舵机控制与占空比(占空比寄存器/周期寄存器)无关,与脉冲宽度(通道周期*占空比寄存器)有关。[attach]59109[/attach]

我们学校的机器人协会做双足,需要控制六个舵机,写程序用到定时器模拟出6个PWM通道(我在协会不是搞双足的,是搞智能车方面的,不是飞思卡尔智能车。我看过双足程序,模拟出PWM,设数值控制舵机角度,数值是50到250)。如果按以往的认识,控制舵机必须要级联的PWM通道,无法控制6个舵机。现在我得出的结论,颠覆了以往的认识(难道我以前看资料,理解错了?)。一个单片机不需要级联PWM通道,就可以最多控制8个舵机。

本人是个菜鸟,希望有机会跟网友多交流交流QQ654549279




补充内容 (2014-5-3 11:28):

180度舵机+360度舵机 程序 在7楼
作者: 头上两只角    时间: 2014-4-28 13:17
很有道理。
作者: 恋May    时间: 2014-4-28 16:20
还是不透。。。
作者: 胡宏宇    时间: 2014-4-28 16:42
恋May 发表于 2014-4-28 16:20
还是不透。。。

???

作者: 吉╰☆╰☆米    时间: 2014-5-1 10:49
请教一下你用的是什么型号的舵机呀?
作者: 胡宏宇    时间: 2014-5-1 21:46
吉╰☆╰☆米 发表于 2014-5-1 10:49
请教一下你用的是什么型号的舵机呀?

MG945,MG995

作者: 胡宏宇    时间: 2014-5-3 11:27
180度舵机+360度舵机 程序
作者: 破釜沉舟1    时间: 2014-5-7 20:59
恋May 发表于 2014-4-28 16:20
还是不透。。。

是不是可以这么讲,
占空比=(PWMDTYx/PWMPERx)×100%;(CAEx=0)-------------(1)


PWM x 周期=通道时钟周期×PWMPERx;(PPOLx =1)--------------------(2)

所谓脉宽就是PWMx周期×占空比,也就是(1)×(2).那么显然通道时钟周期不变的情况下,占空比一定,那么500--2500的范围很显然是固定的。



作者: 胡宏宇    时间: 2014-5-14 22:38
破釜沉舟1 发表于 2014-5-7 20:59
是不是可以这么讲,
占空比=(PWMDTYx/PWMPERx)×100%;(CAEx=0)-------------(1)

是的

作者: 胡宏宇    时间: 2014-5-18 17:57
头上两只角 发表于 2014-4-28 13:17
很有道理。

你会两个单片机用SPI通信吗?

作者: 胡宏宇    时间: 2014-5-18 17:58
恋May 发表于 2014-4-28 16:20
还是不透。。。

你会两个单片机用SPI通信吗?

作者: 【征程】    时间: 2014-10-16 19:51





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2