智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5097|回复: 7
打印 上一主题 下一主题

[软件类] 舵机能够是每20ms控制一次么?

[复制链接]

1

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
109
威望
172
贡献
27
兑换币
0
注册时间
2011-4-10
在线时间
0 小时
跳转到指定楼层
1#
发表于 2011-7-2 23:34:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的程序执行大约1ms,每次执行都会给单片机输出舵机控制。而舵机的PWM控制周期是20ms。如果我每隔1ms给舵机不同占空比PWM波的话,会出错么?
还有我舵机静止的情况下一直在抖动。怎么办。

2

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
249
贡献
65
兑换币
0
注册时间
2011-1-6
在线时间
4 小时
2#
发表于 2011-7-3 23:27:22 | 只看该作者
电磁专用舵机300HZ 的 哪来的20ms?
回复 支持 反对

使用道具 举报

2

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
249
贡献
65
兑换币
0
注册时间
2011-1-6
在线时间
4 小时
3#
发表于 2011-7-3 23:28:15 | 只看该作者
安工大的你可以直接回家啦。。。
回复 支持 反对

使用道具 举报

2

主题

116

帖子

0

精华

高级会员

专业打酱油

Rank: 4

积分
608
QQ
威望
361
贡献
147
兑换币
5
注册时间
2010-11-18
在线时间
50 小时
4#
发表于 2011-7-4 18:18:46 | 只看该作者
数字舵机听说可以使用500Hz
回复 支持 反对

使用道具 举报

30

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1147
威望
618
贡献
267
兑换币
368
注册时间
2012-12-29
在线时间
131 小时
5#
发表于 2013-3-30 09:06:51 | 只看该作者
1106161071 发表于 2011-7-3 23:27
电磁专用舵机300HZ 的 哪来的20ms?

我的舵机 使用的 20ms的,是3010,现在给他脉冲 左转右转都没问题,AD采集值没问题,然后写了个简单的控向程序,但是不好用,大神帮忙看看吧
void Duo_zhuanwan()
{
int p1,m ;

m= (ad_value_0 - ad_value_1)/(ad_value_0 + ad_value_1);

if(m<=1||m>=-1)   /* 1500时 90度 中间    AD采集数 120*/
{

p1=1500-(m*400);

pwm2_init(p1);
  }

}    /*___占空比____*/

这是AD部分
void Init_AD_more(void)
{   
  ATD0CTL1 = 0x00;    //选用8位模数转换
  ATD0CTL2 = 0X40;    //启动A/D转换,快速清零,禁止中断
  //delay_atd();                //延时
  ATD0CTL3 = 0Xa0;    //10100000 转换序列长度为4   右对齐
  ATD0CTL4 = 0x07;    //AD模块时钟频率为2MHz  fA=fBUS/(PRS+1)/2      24周期采集
  ATD0CTL5 = 0X30;    //多通道,连续转换,起始通道AD0   AD1,AD2,AD3,因为 0011 转换一次
  ATD0DIEN = 0X00;    // 禁止数字输入■                                                                           8

}
/*______________________________AD 0---1 口 数据_____________________________________*/
void AD_get_more(void)                             
{   
   while(!ATD0STAT2_CCF0);   
   {
      PORTA_PA0=1;
      ad_value_0=ATD0DR0;            
   }
   while(!ATD0STAT2_CCF1);
   {
      PORTA_PA1=1;
      ad_value_1=ATD0DR1;
    }

}


回复 支持 反对

使用道具 举报

5

主题

121

帖子

0

精华

高级会员

Rank: 4

积分
816
威望
427
贡献
261
兑换币
257
注册时间
2012-11-2
在线时间
64 小时
6#
发表于 2013-3-30 11:45:46 | 只看该作者
可以20毫秒控制一次。可以将AD的值的获取放在定时中断里面,获取太快容易造成车身抖动,几十毫秒你的车子也就走两三厘米
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
威望
224
贡献
79
兑换币
17
注册时间
2012-3-24
在线时间
30 小时
毕业学校
大连民族学院
7#
发表于 2013-3-30 13:15:59 | 只看该作者
单步调试,看数据试试
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
威望
197
贡献
105
兑换币
114
注册时间
2014-6-29
在线时间
32 小时
8#
发表于 2016-7-7 01:43:49 | 只看该作者
:lol:lol:lol:lol:lol
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 14:41 , Processed in 0.366595 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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