返回主站 | 设为首页 | 加入收藏      
   
 
  首页 关于我们 产品展示 方案设计 技术分享 行业资讯 联系我们  
 
马达驱动IC/步进电机控制芯片
三相直流无刷BLDC电机驱动IC
单相直流无刷电机驱动芯片
直流无刷电机驱动IC
有刷直流电机驱动IC
步进电机驱动芯片(并行接口)
步进电机驱动芯片(步进/方向接口&串行接口)
静音步进电机驱动芯片
功放IC
电源管理IC
马达驱动IC/步进电机控制芯片
数模(DAC)/模数(ADC)转换芯片
智能处理器
音量控制IC
模拟开关IC
电容式触摸感应IC
RGB LED呼吸趣味灯驱动IC
音频CODEC IC
方案设计
电压电平转换器IC
运算放大器
I/O扩展器IC
 
名称:
种类:
类别:

业务洽谈:

联系人:张顺平 
手机:17727550196(微信同号) 
QQ:3003262363
EMAIL:zsp2018@szczkjgs.com

联系人:鄢先辉 
手机:17727552449 (微信同号)
QQ:2850985542
EMAIL:yanxianhui@szczkjgs.com

负责人联络方式:
手机:13713728695(微信同号) 
QQ:3003207580 
EMAIL:panbo@szczkjgs.com
联系人:潘波

 
当前位置:首页 -> 方案设计
PWM控制电机正反转,PWM直流电机调速程序
文章来源:永阜康科技 更新时间:2017/10/31 13:01:00
 PWM调速开关控制方式控制电机,广泛应用于玩具、小车、机器人等项目,通过串口预设正反转速度,可以灵活控制小车等电机正反转速度,用两个限位开关控制电机的正反转限位,控制方式简便、安全可靠,方便维护。

  开关控制方式适合于电位器/模拟信号控制方式下PWM调速方式和预设正反转速度方式(且触发方式配置为电平)。如果无需调速,正反转速度均为全速,可配置为电位器/模拟信号PWM调速方式;如果需要指定正反转速度(可为占空比、转矩或转速),应配置为预设正反转速度方式且触发方式配置为电平方式。

  如何配置调速方式表1,如何预设速度及配置触发方式见MODBUS-RTU(国标GB/T19582-2008)通讯协议。

  下面的程序功能为单片机I/O口P2^0、P2^1输出1000HZ,占空比为%50,并能过P3^7按键控制正电机的正反转。

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

  /* 程序名:PWM直流电机调速 */

  /* 晶振:11.00592 MHz CPU型号:STC89C52 */

  /* 功能:直流电机的PWM波控制,可以通过按键控制正反转 */

  /*****************************************************************/ #include《reg52.h》

  #define uint unsigned int #define uchar unsigned char

  uchar TIme,count=50,flag=1;//低电平的占空比

  sbit PWM1=P2^0;//PWM 通道 1,反转脉冲 sbit PWM2=P2^1;//PWM 通道 2,正转脉冲 sbit key_turn=P3^7; //电机换向

  /************函数声明**************/ void delayxms(uint z); void Motor_turn(void); void TImer0_init(void);

  /*********主函数********************/ void main(void)

  {

  TImer0_init(); while(1)

  {

  Motor_turn();

  }

  }

  /****************延时处理**********************/ void delayxms(uint z)//延时xms程序

  {

  uint x,y; for(y=z;x》0;x--) for(y=110;y》0;y--);

  }

  /************电机正反向控制**************/ void Motor_turn(void)

  {

  f(key_turn==0)

  {

  delayxms(2);//此处时间不能太长,否者会的中断产生冲突 if(key_turn==0)

  {

  flag=~flag;

  }

  while(!key_turn);

  }

  }

  /***********定时器0初始化***********/ void TImer0_init(void)

  {

  TMOD=0x01; //定时器0工作于方式1 TH0=(65536-10)/256; TL0=(65536-10)%256; TR0=1; ET0=1; EA=1;

  }

  /**************定时0中断处理******************/ void timer0_int(void) interrupt 1

  {

  TR0=0;//设置定时器初值期间,关闭定时器 TH0=(65536-10)/256; TL0=(65536-10)%256; TR0=1; if(flag==1)//电机正转

  {

  PWM1=0; time++; if(time《count)

  {

  PWM2=1;

  }

  else PWM2=0;

  if(time》=100)

  { 



 
 
 
    相关产品  
A3992/HR3992(DMOS全桥PWM串行控制两相步进电机驱动IC)
DRV8833/HR8833( 2A低电压双路刷式直流或单路双极步进PWM绕组电流调节/限制电机驱动器IC)
APA2068(PWM脉宽调制/模拟音量控制/直流音量控制2.6W双声道AB类音频功放IC)
 
深圳市永阜康科技有限公司 粤ICP备17113496号  服务热线:0755-82863877 手机:13242913995