出处:http://blog.sina.com.cn/s/blog_6035432c0100hc8y.html

上一篇文章已经讲解了直流电机的驱动,怎么使它正转,反转和停止,并详细的说了一下H桥原理。今天这里写一下怎么用单片机控制直流电机的速度。

直流调速器就是调节直流电动机速度的设备,上端和交流电源连接,下端和直流电动机连接,直流调速器将交流电转化成两路输出直流电源,一路输入给直流电机砺磁(定子),一路输入给直流电机电枢(转子),直流调速器通过控制电枢直流电压来调节直流电动机转速。同时直流电动机给调速器一个反馈电流,调速器根据反馈电流来判断直流电机的转速情况,必要时修正电枢电压输出,以此来再次调节电机的转速。

直流电机的调速方案一般有下列3种方式:

  • 1、改变电枢电压;
  • 2、改变激磁绕组电压;
  • 3、改变电枢回路电阻。

使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。根据公式

U=aVCC

其中:U为电枢电压;a为脉冲的占空比(0<a<1);VCC直流电压源,这里为5V。

电动机的电枢电压受单片机输出脉冲控制,实现了利用脉冲宽度调制技术(PWM)进行直流电机的变速。

因为在H桥电路中,只有PWM1与PWM2电平互为相反时电机才能驱动,也就是PWM1与PWM2同为高电平或同为低电平时,都不能工作,所以上图中的实际脉冲宽度为B,

我们把PWM波的周期定为1ms,占空比分100级可调(每级级差为10%),这样定时器T0每0.01ms产生一次定时中断,每100次后进入下一个PWM波的周期。上图中,占空比是60%,即输出脉冲的为0.6ms,断开脉冲为0.4ms,这样电枢电压为5*60%=3V。

我们讨论的是可以正转反转的,如果只按一个方向转,我们就只要把PWM1置为高电平或低电平,只改变另一个PWM2电平的脉冲变化即可,,如下图(Q4导通,Q3闭合,电机只能顺时针调整转动速度)

C语言代码:

#include<AT89X52.h>
#define uchar unsigned char
#define uint unsigned int

sbit K5=P1^4;
sbit K6=P1^5;
sbit PWM1=P1^0;
sbit PWM2=P1^1;
sbit FMQ=P3^6;

uchar ZKB1,ZKB2;

void delaynms(uint aa)
{
  uchar bb;
  while(aa--)
  {
   for(bb=0;bb<115;bb++)     //1ms基准延时程序
   {
    ;
   }
  }
 
}

void delay500us(void)
{
  int j;
  for(j=0;j<57;j++)
  {
   ;
  }
}

void beep(void)
{
  uchar t;
  for(t=0;t<100;t++)
  {
   delay500us();
 FMQ=!FMQ;   //产生脉冲
  }
  FMQ=1;    //关闭蜂鸣器
  delaynms(300);
}

void main(void)
{
  TR0=0;   //关闭定时器0
  TMOD=0x01;  //定时器0,工作方式1
  TH0=(65526-100)/256;
  TL0=(65526-100)%256;    //100us即0.01ms中断一次
  EA=1;        //开总中断
  ET0=1;       //开定时器0中断
  TR0=1;       //启动定时器T0
  ZKB1=50;     //占空比初值设定
  ZKB2=50;     //占空比初值设定
  while(1)
  {
   if(!K5)
 {
   delaynms(15);     //消抖
   if(!K5)      //确定按键按下
   {
     beep();
    ZKB1++;      //增加ZKB1
     ZKB2=100-ZKB1;    //相应的ZKB2就减少
   }
  }      
 if(!K6)
 {
   delaynms(15);     //消抖
   if(!K6)      //确定按键按下
   {
     beep();
    ZKB1--;      //减少ZKB1
     ZKB2=100-ZKB1;    //相应的ZKB2增加
   }
 }
 if(ZKB1>99)
 ZKB1=1;
 if(ZKB1<1)
 ZKB1=99;
 
   }
}

void time0(void) interrupt 1
{
  static uchar N=0;
  TH0=(65526-100)/256;
  TL0=(65526-100)%256;
  N++;
  if(N>100)
  N=0;
  if(N<=ZKB1)
  PWM1=0;
  else
  PWM1=1;
  if(N<=ZKB2)
  PWM2=0;
  else
  PWM2=1;

}

//显现:电机转速到最高后,也就是N为1或99时,再按一下,就变到99或1,
//电机反方向旋转以最高速度

直流电动机的调速 用单片机产生PWM控制相关推荐

  1. matlab开环调速,直流电动机开环调速MATLAB系统仿真

    直流电动机开环调速MATLAB系统仿真 东 北 石 油 大 学 MATLAB电气应用训练 课 程 MATLAB电气应用训练 题 目 直流电动机开环调速系统仿真 院 系 电气信息工程学院电气工程系 专业 ...

  2. simulink他励直流电动机降压调速仿真

    注:他励直流电动机串电阻启动平稳后进行调速,启动详见电机与拖动专栏 子系统(subsystem) : 电机转速.电枢电流.励磁电流.起动转矩波形: 电枢电压波形: simulink仿真文件:simul ...

  3. 他励直流电动机的调速

    目录 1. 调速指标 (1) 调速范围 (2) 静差率 (3) 平滑性 (4) 容许输入 (5) 效率 2. 调速方法 (1) 降低电枢端电压调速 ① 电枢串联电阻 ② 降低电源电压 (2) 弱磁调速 ...

  4. 直流双闭环pwm调速系统matlab仿真,双闭环可逆直流脉宽调速系统的设计和仿真

    内容简介: 毕业设计 双闭环可逆直流脉宽调速系统的设计和仿真,共45页,17890字 摘要 直流调速系统具有调速范围广.精度高.动态性能好和易于控制等优点,所以在电气传动中获得了广泛应用.本文从直流电 ...

  5. 基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料)

    资料编号:117 仿真图proteus 7.8 程序编译器:keil 5 编程语言:C语言 采用51单片机,用PWM控制电机脉冲频率应控制在25HZ-35HZ之间 定时1ms,1个周期30ms,脉冲频 ...

  6. 基于51单片机的PWM控制马达电机调速正反转

    资料编号:117  下面是相关功能视频演示: 117-基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料) 仿真图proteus 7.8(理论上高于7.8均可以打开) 程序编译器:ke ...

  7. 直流无刷电机开环调速基于STM32F302R8+X-NUCLEO-IHM07M1(一)

    文章目录 前言 一.直流无刷电机开环调速原理 二.STM32F302R8+X-NUCLEO-IHM07M1直流无刷电机的开环调速 2.1.功能需求 2.2.硬件设计 2.3.软件设计 2.3.1.ST ...

  8. 基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频)

    基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0031 ...

  9. 单片机的PWM控制,一篇即可学废

    一. PWM是什么 PWM全称为"Pulse Width Modulation"及"脉冲宽度调制".利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技 ...

  10. 直流双闭环调速系统的计算机仿真,直流电动机双闭环调速系统的动态特性研究与仿真.doc...

    直流电动机双闭环调速系统的动态特性研究与仿真.doc I直流电动机双闭环调速系统的动态特性仿真研究摘要直流电动机具有良好的起.制动性能,宜于在大范围内实现平滑调速,并且直流调速系统在理论和实践上都比较 ...

最新文章

  1. mysql Navcat触发器生成订单号
  2. h5-16-SVG 与 HTML5 的 canvas 各自特点
  3. Spring-AOP @AspectJ切点函数之@within()和@target
  4. 取得成本中心组、成本要素组层级的几个BAPI
  5. Qt编写数据可视化大屏界面电子看板12-数据库采集
  6. Java5泛型的用法,T.class的获取和为擦拭法站台
  7. 土是独体字结构吗_毛笔楷书基础练习独体字部首的写法(左部)4
  8. sklearn模型支持输入list吗?
  9. mysql中毫秒的保存类型
  10. 武汉大学计算机学院 毕业答辩,【2017年整理】毕业与答辩ppt模板武汉大学.ppt
  11. 爬取中国地震台网以及地震科学数据
  12. 【canvas 太阳系的动画】
  13. quartz框架(五)-Trigger相关内容
  14. .gitignore文件不生效
  15. ISO 认证是哪三个?
  16. 小米4充不了电处理办法(图文)小米4不能充电的维修教程
  17. 网易之小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.需要根据给定的w,x,y,z,求出集合中一共有多少个元素。
  18. [ Linux ] 可重入函数,volatile 关键字,SIGCHLD信号
  19. JAVA毕业设计公立医院绩效考核系统计算机源码+lw文档+系统+调试部署+数据库
  20. FAQ是什么?如何高效地打造一个好的FAQ?

热门文章

  1. python open函数关于w+ r+ 读写操作的理解
  2. Visual Studio 2011 Beta新特性(一):安装VS2011
  3. Android 8(1),腾讯字节爱奇艺网易华为实习面试汇总
  4. tcpip协议服务器端总结,TCPIP详解-卷一-协议-10.9小结
  5. 股票指标php源码,自编技术指标公式源码(一)_股票学习网
  6. 非计算机专业计算机教学考试,论非计算机专业的计算机教学与等级考试
  7. python编码器用什么意思_通常提到的编码器是干什么用的
  8. 赋值pingfang(i)=x; 与或非
  9. MNIST 数据集下载及图片可视化
  10. c#使用pdf控件,提示无效注册类