智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8280|回复: 27
打印 上一主题 下一主题

求助:B车模sd-05舵机只能一个方向摆到最大

  [复制链接]

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
跳转到指定楼层
1#
发表于 2013-1-27 11:30:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
之前前发过一个关于舵机的控制问题,原来同一个PWMx口有两个通道输出的,选择哪个通道输出还要配置PTTRRx寄存器。现在配好了,新问题又出来了,就是舵机只能一个方向打到最大。是不是频率的问题啊?有的人说配置成50hz有的人说要配成300hz。急啊!在线等啊!!!贴个程序。。。如果有大神可以贴自己的程序出来更好了。
#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

void SetBusCLK_64M(void)
{   
    CLKSEL=0X00;                //disengage PLL to system
    PLLCTL_PLLON=1;         //turn on PLL
    SYNR =0xc0 | 0x07;                        
    REFDV=0x80 | 0x01;
    POSTDIV=0x00;       //pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz;
    _asm(nop);          //BUS CLOCK=64M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));     //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;               //engage PLL to system;
}

void PWM_45(void) {     //舵机初始化
    PTTRR_PTTRR5 = 1;
    PWME_PWME5 = 0;
    PWMCTL_CON45 = 1;   //4和5联合成16位PWM;
    PWMCAE_CAE5 = 0;    //选择输出模式为左对齐输出模式
    PWMCNT45 = 0;       //计数器清零;
    PWMPOL_PPOL5 = 1;   //先输出高电平,计数到DTY时,反转电平
    PWMPRCLK_PCKA1 = 1;    //clockA 4分频,clockA=busclock/4=16MHz;
    PWMPRCLK_PCKA0 = 0;
    PWMPRCLK_PCKA2 = 0;
    PWMSCLA = 0x08;     //对clock SA 16分频,pwm clock=clockA/16=1MHz;     
    PWMCLK_PCLK5 = 1;   //选择clock SA做时钟源
    PWMPER45 = 20000;   //周期20ms; 50Hz;
    PWMDTY45 = 1510;    //高电平时间为1.5ms;
    PWME_PWME5 = 1;   
}

void main(void) {
      int i;
      int j;
      int k;
     SetBusCLK_64M();
     PWM_45();

          while(1) {

    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }

         PWMDTY45=1280;//左转


    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
          }

        PWMDTY45=1740; //右转


    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY45=1850; //极右                 


    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY45=1050;    //极左                    

    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY45=1510;     //摆正            

    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY45=1510;           
          }
}


3

主题

22

帖子

0

精华

注册会员

Rank: 2

积分
180
威望
117
贡献
43
兑换币
39
注册时间
2016-3-26
在线时间
10 小时
毕业学校
中国农业大学
28#
发表于 2016-4-9 16:05:55 | 只看该作者
求教!有人有写过例程吗?只要SD5舵机的就行,买的岱墨家的,结果乱发资料!明明买的B车摄像头组的,结果发的全是C车资料,舵机都不一样,例程调试不对!。。。。。求各位,有没有SD5的舵机程序,借来看看,不用整车的,就单独调试多机的就行!邮箱2780698891@qq.com
回复 支持 反对

使用道具 举报

12

主题

128

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1495
威望
826
贡献
477
兑换币
523
注册时间
2013-9-24
在线时间
96 小时
27#
发表于 2013-12-4 16:11:29 | 只看该作者
:L:L:L
回复 支持 反对

使用道具 举报

6

主题

673

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357

优秀会员奖章活跃会员奖章

QQ
威望
1073
贡献
634
兑换币
740
注册时间
2013-7-5
在线时间
325 小时
26#
发表于 2013-11-29 20:29:03 | 只看该作者
学习啦!!!!
回复 支持 反对

使用道具 举报

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
25#
 楼主| 发表于 2013-6-15 22:16:30 | 只看该作者
夏琪1991 发表于 2013-6-15 19:32
能说说,你那舵机具体是什么原因吗?我这出现同样问题  不知道怎么解决

就是频率问题。
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
威望
270
贡献
118
兑换币
102
注册时间
2012-9-18
在线时间
51 小时
毕业学校
合肥工业大学
24#
发表于 2013-6-15 19:32:28 | 只看该作者
能说说,你那舵机具体是什么原因吗?我这出现同样问题  不知道怎么解决
回复 支持 反对

使用道具 举报

12

主题

99

帖子

0

精华

高级会员

Rank: 4

积分
991
威望
669
贡献
176
兑换币
69
注册时间
2011-7-20
在线时间
74 小时
23#
发表于 2013-4-26 21:56:16 | 只看该作者
⊙Lin⊙ 发表于 2013-4-24 18:30
你们有没有限制极左极右的占空比?这个要测试好加上,不然弄话舵机,特别这些烂舵机里面是塑料的。

限死的,亲测是舵机烧了。
回复 支持 反对

使用道具 举报

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
22#
 楼主| 发表于 2013-4-24 18:30:53 | 只看该作者
Ooo 发表于 2013-4-24 13:57
恩 过会去实验室试试。我们的舵机用着用着就出现了只能往一边打的情况 你们也是这样的嘛?昨天晚上一下挂 ...

你们有没有限制极左极右的占空比?这个要测试好加上,不然弄话舵机,特别这些烂舵机里面是塑料的。

回复 支持 反对

使用道具 举报

12

主题

99

帖子

0

精华

高级会员

Rank: 4

积分
991
威望
669
贡献
176
兑换币
69
注册时间
2011-7-20
在线时间
74 小时
21#
发表于 2013-4-24 13:57:46 | 只看该作者
⊙Lin⊙ 发表于 2013-4-24 13:54
首先参考经典的频率配寄存器输出PWM (20ms).0度角对应0.5ms占空比。然后看舵机摆到哪里,以那个位置作为 ...

恩 过会去实验室试试。我们的舵机用着用着就出现了只能往一边打的情况 你们也是这样的嘛?昨天晚上一下挂了两个。。。我去
回复 支持 反对

使用道具 举报

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
20#
 楼主| 发表于 2013-4-24 13:54:09 | 只看该作者
Ooo 发表于 2013-4-24 13:45
请问你的问题是怎么解决的?

首先参考经典的频率配寄存器输出PWM (20ms).0度角对应0.5ms占空比。然后看舵机摆到哪里,以那个位置作为中值。加减占空比就可以实现左右转了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 14:21 , Processed in 0.100646 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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