亿加合和智能车制作

标题: 电机PWM调速 [打印本页]

作者: 小玩怡情    时间: 2011-5-5 15:47
标题: 电机PWM调速
毕业设计做基于单片机9s12xs128的智能车电机调速模块,[attach]7326[/attach],电路图如上,调节pwm占空比调速,程序怎么编啊?谁有类似的程序不?分享一下吧,不胜感激!!!
作者: 1091424    时间: 2011-5-13 00:11
很不错啊!
作者: workforever    时间: 2011-5-20 21:42
看看……谢谢……
作者: turf456    时间: 2011-5-20 22:01
调速总要有测速吧
作者: a635568167    时间: 2011-5-20 22:20
有程序吗??能不能给我发一份啊?635568167:你的电路图我还是看不大懂 望指点!~
作者: 小玩怡情    时间: 2011-5-21 08:20
本帖最后由 小玩怡情 于 2011-5-21 08:36 编辑

回复 4# turf456


    大概是我说的不明白,我所谓的调速是通过控制pwm波形的占空比对电机调速,不需要反馈,仅仅是一个开环控制,打算通过使用拨码开关来实现,不知高手能否给点指点啊?谢谢了。。。
作者: 小玩怡情    时间: 2011-5-21 08:22
回复 5# a635568167


    你下载一份西北师范大学舜之队的报告看看吧
作者: 小玩怡情    时间: 2011-5-21 08:33
本帖最后由 小玩怡情 于 2011-5-21 08:40 编辑

初始化程序我已经写出来了,但是用示波器检测不出单片机pwm1口与pwm5口的输出波形,是不是程序哪没设定好啊?哪位高手给指点一下吧?小弟谢谢了。。。

#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

//******************PWM模块初始化******************//      
void PWMInit(void)
{  
    PWME=0X00;        //关闭PWM输出                     
    PWMCTL =0X50;      //0、1通道级联控制电机  4、5通道级联控制电机      
    PWMCLK =0X00;       //A 32MHZ
    PWMPOL |=0XFF;      //所用通道先输出高电平后输出低 1111 1111
    PWMCAE =0X00;      //PWM输出0左对齐  00 00 00 00
    PWMPER01 =1600;     //周期T=(2^0/32,000,000)*1600=50us  /* 1600 -- 20khz    1280--25khz         
    PWMDTY01 =160;      //设定01通道初始占空比
    PWMPER45 =1600;   
    PWMDTY45 =1600;        //设定45通道初始占空比
   PWMCNT01 =0X00;       //通道计数器清零
   PWMCNT45 =0X00;        //通道计数器清零
   PWME |=0X33;        //开启所选PWM通道  00 11 00 11
}
//芯片初始化函数-----------------------------------*                                                            *
//外部晶振=16Mhz BusClock=32Mhz                                    
void MCUInit(void)
{   
  asm("sei");
  CLKSEL &= 0x7f;     //选择系统时钟源为OSCCLK,BusClock=OSCCLK/2
  PLLCTL &= 0xbf;
  SYNR = 0x01;        //计算公式LLCLK=2*OSCCLK*((SYNR+1)/(REFDV+1))
  REFDV = 0x00;        
  PLLCTL |= (1<<6);   // 开PLL
  while ((CRGFLG&0x08) == 0x00);
  CLKSEL |= (1<<7);   
  CRGINT &= 0xbf;
  COPCTL = 0x00;      // 禁止看门狗
}
void main(void) {
  /* put your own code here */
     
       EnableInterrupts;
       MCUInit();
          PWMInit();  
  for(;;) {} /* wait forever */
  /* please make sure that you never leave this function */
}
作者: turf456    时间: 2011-5-21 20:16
回复 6# 小玩怡情


    开环控制还想稳定是不可能的。
作者: 小玩怡情    时间: 2011-5-22 09:39
回复 9# turf456

我的目的不是稳定,而是通过调节占空比调速,这里的调速不是使速度维持在一个特定的速度,而是较大的改变电动机的转速,我用的H桥如下,能否指教一下呢?[attach]7549[/attach]
作者: csy10841054    时间: 2012-2-22 21:27
希望楼主把你调试好的·发上来!!感激不尽!!!
作者: csy10841054    时间: 2012-2-22 21:27
小玩怡情 发表于 2011-5-22 09:39
回复 9# turf456

我的目的不是稳定,而是通过调节占空比调速,这里的调速不是使速度维持在一个特定的速 ...

希望楼主把你调试好的·发上来!!感激不尽!!!
作者: 七彩人生    时间: 2012-7-17 14:16
看看

作者: cqhb小麦    时间: 2013-1-4 17:19
目测是在百科上面copy的~~
作者: dlyt03    时间: 2013-1-9 07:55
顶个
作者: 锦邵伽    时间: 2014-3-29 17:46
帅气

作者: leshangli    时间: 2015-3-9 12:52
小玩怡情 发表于 2011-5-21 08:33
初始化程序我已经写出来了,但是用示波器检测不出单片机pwm1口与pwm5口的输出波形,是不是程序哪没设定好啊 ...

请问  怎么检测和控制小车速度

作者: 派灵魂流放的猪    时间: 2015-9-13 11:24
比较多




欢迎光临 亿加合和智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2