智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 36982|回复: 24
打印 上一主题 下一主题

[机械类] FUTABA S3010舵机成功驱动

  [复制链接]

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
跳转到指定楼层
1#
发表于 2011-3-19 15:21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void PWM_Init(void) {
  PWME_PWME0=0;  //使用PWM通道0,关通道0
  PWME_PWME1=0;  //使用PWM通道1,关通道1
  PWMCTL=0x10;   //通道0,1相结合  等待模式都正常工作
  PWMPRCLK=0x05;  //对总线时钟进行预分频,总线时钟为40M,分频后40/(2的5次方)=1.25MHZ
  PWMCLK_PCLK1=0; //设置两个通道A为其时钟源
  //PWMSCLA=0X7D;   //SA 时钟频率为1250HZ,SCLA=CLKA/(2*PWMSCLA)=312500/(2*7d)  
  PWMPOL_PPOL1=1;  //电平输出由高变低(翻转模式)
  PWMCAE_CAE1=0;   //左对齐输出
  PWMPER01=25000;    //PWM输出频率=时钟频率/PWMPER0=50HZ(20ms周期)
    /*******************
        PWMDTY01=1875;    //占空比为1.5/20(1.5ms制). 理论数据
        PWMDTY01=2500;   //占空比为1/10(2ms制).   理论数据
    ****************/
  //PWMDTY01=400;    //占空比1.5/20 居中不动。实际大致数据
  PWMDTY01=150;      //占空比1/20  右极端  实际数据
  //PWMDTY01=600;        //占空比2/20  左极端  实际数据
  PWME_PWME0=1;
  PWME_PWME1=1;    //开启PWM通道0,1
}

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
2#
 楼主| 发表于 2011-3-19 15:27:53 | 只看该作者
以上PWM部分程序已经过调试,没有问题。 不过我有一个疑问,为什么我实际测得转向的值与理论计算出来的占空比值不一样呢(我按照网上定出来的参数做比较的)。我的总线频率是40MHZ的。
网上给出的参数是如右所示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
3#
 楼主| 发表于 2011-3-19 15:29:09 | 只看该作者
顶个
回复 支持 反对

使用道具 举报

1

主题

110

帖子

0

精华

高级会员

Rank: 4

积分
760
QQ
威望
384
贡献
136
兑换币
32
注册时间
2010-4-24
在线时间
120 小时
4#
发表于 2011-3-19 15:56:52 | 只看该作者
哈哈,顶个。
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
5#
 楼主| 发表于 2011-3-19 16:07:31 | 只看该作者
大家有遇到过这种占空比不匹配的情况吗?谁能解释一下?
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
6#
 楼主| 发表于 2011-3-20 20:49:43 | 只看该作者
本帖最后由 范小川 于 2011-3-20 20:51 编辑

今天做电机驱动的时候又遇到这种问题了,理论算出来的PWMPER的值(关于PWM频率的值)与实际测得PWMPER得值不一样。怎么回事啊?靠。
回复 支持 反对

使用道具 举报

1

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
271
贡献
74
兑换币
0
注册时间
2010-12-1
在线时间
21 小时
7#
发表于 2011-3-20 22:43:12 | 只看该作者
你的是不一样,我的更悲剧啊,只能往一方向转,但是程序的功能是两个方向都有,不知道搞什么东东的!!!
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
8#
发表于 2011-3-20 22:56:47 | 只看该作者
3010不是可以接上200HZ的频率吗?我接的是100HZ,为什么还要50HZ呢?响应多慢啊
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
9#
 楼主| 发表于 2011-3-21 16:24:21 | 只看该作者
回复 8# sonwendi


   只是我接50HZ的频率的时候,舵机它压根都没有反应。我一直在怀疑是不是我的初始化程序有问题,可是看了N多个例程也都是这样初始化寄存器的呀。崩了个溃的。虽然舵机和电机也都驱动起来了,不过总是感觉心里没什么底啊、毕竟实际和理论不符,而又找不到理论上的(程序上的)问题,这是很让我纠结的一件事。
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
263
贡献
86
兑换币
0
注册时间
2011-3-10
在线时间
19 小时
10#
 楼主| 发表于 2011-3-21 16:25:22 | 只看该作者
回复 7# LEUNG
是驱动电机的话,你把那两个PWM反向接一下看看能不能反转,如果能的话,那就说明是你的程序有问题了。哥们祝你好运。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-2 18:36 , Processed in 0.151361 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表