标题: 正在做循迹避障小车 车子跑的太快了,想用pwm调速,调不了 [打印本页]

作者: 一刹那的烟火    时间: 2015-7-24 12:45
标题: 正在做循迹避障小车 车子跑的太快了,想用pwm调速,调不了
最近正在做循迹避障小车,但是调速遇到了问题,怎么办

作者: admin    时间: 2015-7-24 13:00
把你遇到的问题详细描述一下看看
作者: 一刹那的烟火    时间: 2015-7-24 13:01
车子跑的太快了,想用pwm调速,调不了

作者: 1072247069    时间: 2015-7-26 15:19
把程序和硬件 贴出来 看看
作者: 时光溢彩    时间: 2015-7-26 21:52
占空比,,,,,你把高低电平换一下,用直接接反相器看看
作者: h1314258    时间: 2015-7-27 17:26
把你遇到的问题详细描述一下看看
作者: sy_yxc    时间: 2015-7-27 17:56
设置占空比就可以啊
作者: coach    时间: 2015-7-28 05:13
应该是pwm设置上有问题。你可以分别设置两个不同的值,用示波器观察pwm波形有无变化即可确认。如果有变化,则检查电机连线是否有问题,或者是驱动管已击穿。
作者: Mr.x    时间: 2015-7-28 12:44
调占空比了
作者: xiaoji    时间: 2015-7-28 14:31
是不是计时器没搞好
作者: gonham    时间: 2015-7-28 15:35
delay延时程序调一下
作者: HEISEYE    时间: 2015-7-29 16:16
调节占空比
作者: 贺仁杏    时间: 2015-7-30 09:15
占空比是不是不合适。。调一下试一试
作者: 腾飞的龙    时间: 2015-8-3 17:34
  1. void timero() interrupt 1
  2. {
  3.         TH0=(65536-10)/256;
  4.         TL0=(65536-10)%256;
  5.         t++;
  6.         if(t<pwmsc) pwm1=0;
  7.         else pwm1=1;
  8.         if(t<pwmsc1) pwm2=0;
  9.         else pwm2=1;
  10.        
  11.         [code]void init0()
  12. {
  13.         TMOD=0X01;
  14.         TH0=(65536-10)/256;
  15.         TL0=(65536-10)%256;
  16.         EA=1;
  17.         [code]case 3://左转标志位
  18.                         {
  19.                                 pwm1=50;
  20.                                 pwm2=50;
  21.                                 dir1=0;
  22.                                 dir2=1;
  23.                         }
  24.                 break;
复制代码
ET0=1;
        TR0=1;
} [/code]
        if(t>=100)
                t=0;
}[/code]
作者: 小菜鸟来学习    时间: 2015-8-3 19:27
然而不知道如何调节占空比,不知道怎么和定时器联系到一块,不知道如何加寻轨的程序
作者: 小熊啊    时间: 2015-8-3 19:39
是不是忘记调节占空比了呀

作者: a1986958842    时间: 2015-8-3 20:14
占空比波控制就OK
作者: lxm521521    时间: 2015-8-4 20:14
设置占空比,最好把你的电机程序发上来看看
作者: gesongzhe    时间: 2015-8-5 22:34
你搜一下关于调节占空比的程序
作者: h1314258    时间: 2015-8-6 16:27
把高低电平换一下,用直接接反相器
作者: 弃永漫心    时间: 2015-8-6 22:08
还是占空比的问题吧
作者: 630231857    时间: 2015-8-7 14:26

/*********************************************************
函数名:void PWM_Init(void)
函数功能描述:PWM初始化
设计时间:2015/07/27
修改时间:

*********************************************************/
void PWM_Init(void)
{
    P3M1 = 0x00;
          P3M0 = 0x80;      //设置P3.7为推挽输出

    CCON = 0;                       //initial PCA control register      PCA timer stop running     clear cf flag                                   //clear all module interrupt flag
    CL = 0;                         //Reset PCA base timer
    CH = 0;
    CMOD = 0x0a;                    // 设置PCA定时器频率为内部时钟fosc/2
     //0x00为12分频  0x02为2分频 0x08为不分频 0x0a为4分频  0x0c为6分频  0x0E 为8分频                          
    //Disable PCA timer overflow interrupt
    CCAP0H = CCAP0L = 0x80;         // 设置PWM0初始值与CCAP0H相同
    PCA_PWM0 = 0x00;
    CCAPM0 = 0x42;                  // PWM0设置PCA工作方式为PWM方  

    CR = 1;                         // 启动PCA定时器

}

/*********************************************************
函数名:void  Set_PWM(uchar PWM_Value)
函数功能描述:设置PWM的占空比
设计时间:2015/07/27
修改时间:

*********************************************************/

// PWM占空比设置
// 参数1:0,1,2,3,分别表示对PWM0、PWM1、PWM2、PWM3设置占空比
// 参数2:0x00~0xFF(或0~255),0x00时全部为低电平,0xFF时全部为高电平
void  Set_PWM(unsigned char PWM_Value)
{  
   CCAP0L = (255-PWM_Value);
   CCAP0H = (255-PWM_Value);
   CCAPM0 = 0x42;  
}
作者: 630231857    时间: 2015-8-7 14:27
这是51升级版的PWM设置
作者: 时光溢彩    时间: 2015-8-10 20:22
调速就是中断啊,高电平赋值低周期,低电平赋值高周期
作者: 1678    时间: 2015-8-11 18:30
百度找一下
作者: heart爱你海宝    时间: 2015-11-29 18:21
同问 ,请问楼主,这个问题解决了吗》?

作者: 梦幻之矛    时间: 2015-11-29 22:35
占空比调大一点
作者: 国辉科技    时间: 2015-11-30 12:29
百度找一下
作者: mhx321    时间: 2016-1-11 00:49
我也在做PWM调速,你的频率是多少,?是不是频率低了,还有就是程序不对
作者: 腾飞的龙    时间: 2016-1-11 11:45
你用的什么型号单片机,晶振频率多少。论坛里很多用PWM控制小车速度的程序你好好搜搜看看。
作者: 304326108    时间: 2016-1-11 22:37
好啊,可以相互学习一下了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1