智能车制作
标题:
[电磁组] 舵机的问题!谢谢`(*∩_∩*)′
[打印本页]
作者:
CC2014
时间:
2014-3-16 11:19
标题:
[电磁组] 舵机的问题!谢谢`(*∩_∩*)′
我是电磁组,用的S3010舵机。我是这样理解S3010舵机的。首先,修改PWM的频率为50HZ,保证PWM的周期为50ms。然后,为了提高精度,把FTM1_PRECISON设置为1000,即#define FTM1_PRECISON 1000u。然后,根据高电平为1520us时:一定为中间位置;高电平为920us时:一定为最左边位置;高电平为2120us时:一定为最右边位置; 这个写的下面的代码。让舵机从最左边到最右边,然后循环。谢谢了!
#include "common.h"
#include "include.h"
#define S3010_FTM FTM1
#define S3010_CH FTM_CH0
#define S3010_HZ 50
void delay();//延迟函数,大概10s
/*!
* @brief main函数
* @since v5.0
* @note 野火 S3010舵机 测试实验 ,野火 提供的 电机驱动模块,管脚都加入 MOS 管隔离,信号是反相的。
例如常规的 高电平 使能
*/
void main()
{
gpio_init (PTA12, GPO,1);
FTM_PWM_init(S3010_FTM, S3010_CH,S3010_HZ,76); //初始化 舵机 ,且把舵机打到中间
FTM_PWM_Duty(S3010_FTM, S3010_CH,46);//最左边
delay();
FTM_PWM_Duty(S3010_FTM, S3010_CH,76);//中间
delay();
FTM_PWM_Duty(S3010_FTM, S3010_CH,106);//最右边
delay();
FTM_PWM_Duty(S3010_FTM, S3010_CH,76);//然后打回到中间,以便再次从最左边循环
delay();
}
void delay()//延迟函数,大概10s
{
uint8 i;
for(i=0;i<60;i++)
{
DELAY_MS(1000);
}
}
复制代码
作者:
CC2014
时间:
2014-3-16 11:22
这个是我找到的关于S3010参数的文档中的一句说明。抱歉,没有权限发链接。其中的(以下数据说明了当S3010:
高电平为1520us时:一定为中间位置;高电平为920us时:一定为最左边位置;高电平为2120us时:一定为最右边位置;
这些数据说明了该舵机的转角只与高电平脉宽有关,与占空比无关。)这句“
这些数据说明了该舵机的转角只与高电平脉宽有关,与占空比无关。)”
不懂,求解释。谢谢了
作者:
我们一起走过
时间:
2014-3-16 12:38
50HZ够了
作者:
Jyoun
时间:
2014-3-16 19:09
表示舵机本来就是认单周期高电平的时间大约1-2ms(可以更大更小一些)。不光是3010,几乎全部舵机都是这样,sd-5也是如此。
作者:
麦田里的守望者
时间:
2014-4-10 11:01
高电平脉宽,有变化,占空比不就变了吗??大神们求指导
作者:
鹰-隼
时间:
2014-4-11 15:51
PWM的频率为50HZ,周期应该是20ms吧,看看是不是算错了
作者:
独钓~寒江雪
时间:
2014-7-6 00:03
占空比 = 高电平脉冲宽度 * 频率*100%
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2