基于单片机的直流电机调速系统.docx
- 文档编号:7827693
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:20
- 大小:484.43KB
基于单片机的直流电机调速系统.docx
《基于单片机的直流电机调速系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机调速系统.docx(20页珍藏版)》请在冰豆网上搜索。
基于单片机的直流电机调速系统
基于单片机的直流电机调速系统
摘要:
本设计以单片机AT89S52为核心,以小型直流电机为对象,通过5个按键,实现直流电机的启动,速度和方向的控制,并通过液晶LCD1602显示出来。
对直流电机进行速度测量的原理,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
实时测量电机的实际转速,并显示出来,并对电机进行PID转速调节,使其转速趋近于设定值。
关键词:
AT89S52;直流电机;PWM;L298N;LCD1602
1引言
随着科学技术的不断发展,人类社会的不断进步,人们对生活产品的需求要不断趋向多样化,这就要求生产设备必须具有良好的动态性能,在不同的时候进行不同的操作,完成不同的任务。
为了使系统具有良好的动态性能必须对系统进行设计。
特别是大型的钢铁行业和材料生产行业,为达到很高的控制精度,速度的稳定性,调速范围等国产直流电机简介为了满足各行业按不同运行条件对电动机提出的要求,将直流电机制造成不同型号的系列。
又由于交流调速在当时尚未解决好调速控制问题,调速范围不大,控制精度低,快速性差等性能指标不满足生产工艺的要求,所以当时大量使用的是直流电动机调速系统,尤其是直流无级调速系统,它具有调速性能好,范围宽,动态性能好等优点,特别是设计简单方便,虽然随着控制技术以及电力电子技术的的发展,制造工艺技术的提高,大量出现交流调速的传动系统,但直流传动所具有的优点特征,至今仍大量广泛地使用直流调速。
因此实现直流无级调速对我们社会生产和生活有着重大的意义。
2基于单片机的直流电机调速系统的设计
2.1设计要求
对基于MCS-51系列单片机实现直流电机调速系统进行研究和设计,能够在不同的按钮作用下分别实现直流电机的停止、加速、减速、正转、反转控制;能够实现基于MCS-51系列单片机的直流电机PWM的调速设计。
2.2直流电机调速分析
2.2.1直流电机调速原理
根据励磁方式不同,直流电机分为自励和他励两种类型。
不同励磁方式的直流电机机械特性曲线有所不同。
对于直流电机来说,人为机械特性方程式为:
(1)
注:
(式中UN,ØN——额定电枢电压、额定磁通量;Ke,Kt--与电机有关的常数;Rad,Ra——电枢外加电阻、电枢内电阻;n0,n——理想空载转速、转速降。
)分析
(1)式可得.当分别改变UN、ØN和Rad时,可以得到不同的转速n,从而实现对速度的调节。
如图1,图2所示。
理想空载转速
随电枢电压升降而发生相应的升降变化。
不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。
当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。
基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。
T
图1直流电动机机械特性曲线图2电枢电压“占空比”与平均电压关系
2.2.2PWM基本原理及其实现方法
PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。
在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。
只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。
PWM信号的产生通常有两种方法:
一种是软件的方法;另一种是硬件的方法。
软件方法为MCS一51系列典型产品AT89S52具有两个定时器T0和T1。
通过控制定时器初值T0和T1,从而可以实现从S52的任意输出口输出不同占空比的脉冲波形。
我们可以明确定时器的定时初值与定时时间的关系。
如果单片机的时钟频率为f,定时器/计数器为N位,则定时器初值与定时时间的关系为:
(2)
式中,Tw——定时器定时初值;N——一个机器周期的时钟数。
N随着机型的不同而不同。
在应用中,应根据具体的机型给出相应的值。
这样,我们可以通过设定不同的定时初值,从而改变占空比D=t1/T,进而达到控制电机转速的目的。
控制程序的设计有两种方法:
软件延时法和计数法。
软件延时法的基本思想是:
首先求出占空比D=t1/T,再根据周期T分别给电机通电M个单位时间t0,所以M=t0/t1。
然后,再断电
个
单位时间,所
=t2/t1。
改变M和
的值,从而也就改变了占空比D。
计数法的基本思想是:
当单位延时个数M求出之后,将其作为给定值存放在某存储单元中。
在通电过程中,对通电单位时间t0的次数进行计数,并与存储器的内容进行比较。
若不相等,则继续输出控制脉冲,直到计数值与给定值相等,使电机断电。
软件采用定时中断进行设计。
单片机上电后,系统进入准备状态。
当按动按钮后,执行相应的程序,根据P2.5或P2.6输出的高电平决定直流电机的正反转。
根据不同的加、减速按钮,调整P2.5或P2.6输出高低电平时的占空比,从而可以控制P2.5或P2.6输出高低电平时的延时时间,进而控制电压的大小来决定直流电机转速。
2.3系统的硬件设计
2.3.1系统方案
本设计以AT89S52单片机为核心,以5个轻触按钮作为输入达到控制直流电机的加速、减速、正转、反转、停止。
又因考虑到外部中断0(INT0)脉冲信号对定时器中断的严重影响、使得控速不精确,可以采用单独的计数电路,但普通的数字电路搭成的计数器不仅成本高,而且外围电路复杂,故采用了另外一片51单片机作为“协控”(即协助控制)。
对于主控单片机,其主要完成对电机的驱动输出及对独立按键扫描,另一片单片机通过外部中断0对电机编码输出脉冲进行采集,计数,并进行计算,从而得到精准的转速值,除此之外,该单片机还将计算得到的速度值进行LCD显示,同时控制着超速报警电路。
控制原理:
AT89S52单片机为核心的直流电机控制系统控制,由软件转换成PWM信号,并由P2.7输出,经驱动电路输出给电机,从而控制电机得电与失电。
软件采用定时中断进行设计。
单片机上电后,系统进入准备状态。
当按动启动按钮后,根据P2.5为高电平且P2.6为低电平时实现电机正转,P2.5为低电平且P2.6为高电平时实现电机反转。
根据不同的加减速按钮,调整P2.7输出高低电平时的预定值,从而可以控制P2.7输出高低电平时的占空比,进而控制电压的大小。
控制程序应用于电机的加减速。
2.3.2硬件详细设计
主控单片机接口,如图3,5个独立按键接在P2.0~P2.4口,在软件中通过不断查询的方式进行扫描,P2.5、P2。
6控制电机的正反转,P2.7口接电机驱动芯片的使能端,通过对使能时间的长短及频率控制的方式实现PWM调节电机的目的。
测速单片机接口,如图4,测速脉冲信号通过P3.2(外部中断0)接入单片机,在单片机内部通过中断次数进行计数,同时通过定时器0进行时间(一分钟)的控制,从而得出该时间段的测速脉冲数,进而转换成速度值。
图3主控单片机接口图4测速单片机接口
LCD显示电路,如图5,显示部分采用LCD1602,可以方便的实现速度的显示,界面友好,操作简单,外部电路不会像采用数码管那样复杂,并且不需要额外的驱动电路。
第3脚:
VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:
E为使能端,当E端为高电平跳变成低电平时,液晶模块执行命令。
图5LCD1602接口电路
电机驱动电路及测速接口,如图6,若是采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的的话,电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。
若是采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
所以采用驱动芯片L298N驱动直流电机,L298N具有驱动能力强,外围电路简单等优点。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。
4脚VS接电源电压,VS电压范围VTH为+2.5~46V。
输出电流可达2.5A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298N可驱动2个电动机,OUT1,OUT2,和OUT3,OUT4之间可以分别接电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
ENA,ENB接pwm端,控制电机的转速。
(ENA为低电平时,电机停止运行,当ENA为pwm时。
输入电平为一高一低,电机正或反转。
In3或In4同为低电平,电机停止;同为高电平,电机刹停。
图6电机驱动电路及测速接口
(图中电机带有测速码盘,MV为测速码盘接口)
按键控制电路,如图7,正转、反转、加速、减速、停止五个开关分别与单片机的P2.0,P2.1,P2.2,P2.3,P2.4相连,然后再与地相连。
停止实现直流电机的停转,正转实现直流电机的正转,反转实现直流电机的反转,加速实现直流电机的加速,减速实现直流电机的减速。
图7 系统按键控制电路(低电平有效)
2.3.2系统整体硬件原理图
系统整体硬件原理图如图8所示。
图8整体原理图
2.3.3PCB原理图
Pcb原理图如图9所示。
图9Pcb原理图
2.4系统软件设计
2.4.1系统主程序设计
利用P2.7口,编制程序输出一串脉冲,经放大后驱动直流电机,改变输出脉冲的占空比,达到使电机正转、反转、加速、减速、停转等目的。
由软件编程从P2.7管脚产生PWM信号,经驱动电路输出给电机,从而控制电机得电与失电。
软件采用定时器中断进行设计。
单片机上电后,系统进入准备状态。
本设计共有5个按键,分别为“加速”“减速”“正转”“反转”“停止”。
1)电机启动后,默认为1档
2)每按一次“加速”“减速”键,档位加减一
3)当减到0当时,电机会慢慢地停下来
4)“正转”或“反转”按下时,电机会慢慢地减速,减到0后会向相反的方向加速直至上次的档位转速
5)“停止”按下后,电机后慢慢地停下来,档位恢复0档
其总体流程图如图10示。
图10 系统主函数流程图
2.4.2按键扫描
按键扫描,采用不断查询的方式进行,并在设计中添加了防抖动控制。
流程如图11。
2.4.3电机PWM驱动
对于电机的驱动,采用51单片机内部的定时器0中断的方式控制占空比的大小,从而实现电机速度的调节,电机的正反转控制在键值处理函数中涉及。
如图12。
图11 键盘扫描子程序流程图图12 键定时器0中断程序(电机驱动)
3结果与讨论
此设计以AT89S52单片机为核心,以5个轻触按钮作为输入达到控制直流电机的加速、减速、正转、反转、停止。
在设计中,采用PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
由P2口的低电平输入识别不同的按键,通过对单片机程序对直流电机的停止、加速、减速、正转、反转控制。
1)在最初设计测速模块时,只用了一个单片机,将测速码盘输出端接至INT0(外部中断0),用来统计码盘脉冲,这样存在一个问题——外部中断会与定时器中断不断产生冲突,导致测速不准确。
解决方案:
采用两片单片机,一片用来控制电机转动,另一片则用来测速,这样就可以很好地避免上面的问题,而且一片单片机的成本有不贵。
2)在安装测速码盘时,发现测试速度与估算值相差甚远。
原因在于码盘安装角度和高度不合适,光电开关方位异常。
解决方案:
测速码盘较为精确,码盘必须通过光电管正中央,校正码盘后,测速正常。
3)报警时蜂鸣器声音颤抖
解决方案:
对照电路图检查连线,发现三极管基极电阻(1K)使用过大,导致三极管放大能力不足,改用18欧电阻后,声音清晰正常。
4结论
采用单片机控制的直流电机调速系统,将以往模拟电路设计问题转化为程序设计问题,且其调节电枢电压范围大,可控性好,精度高。
本设计主要对PWM调速方式如何在单片机控制系统中实现了进行探讨和研究,对于研究直流电机的控制和测量方法,提高控制精度和响应速度,节约能源等都具有重要意义。
PWM调速装置具有电路简单,成本低廉,可靠性高,运行稳定的特点。
是对小型直流电动机调速装置的一种探讨和研究。
利用单片微处理器,实现了对直流电机的调速,具有控制精度高,可靠性强和易调整等特点。
致谢
通过这次系统的毕业综合实践,使我的专业知识有了一个较为系统的重温,同是也使得我对专业系统有了一个全面的了解。
在这次的综合实践过程中,我感受很多,收获很多。
在这里首先要感谢的是我的指导老师孙志富老师,孙老师平日里工作繁多,但在我做设计的每个阶段,从查阅资料,设计草案的确定,到修改,中期检查,后期详细设计,装配草图等整个过程都给予我悉心的指导。
我的设计较为复杂繁琐,但是孙老师仍然细心地纠正图纸错误,不厌其烦的为我们讲解,才使我的毕业综合实践报告得以快速高效的完成。
再次我要感谢在这次综合实践中给予我帮助的同学和朋友们,没有他们的支持和帮忙焊接,我的设计不会有那么顺利。
参考文献
[1]顾绳谷.电机及拖动基础[M],北京:
机械工业出版社,2007.
[2]王鉴光.电动机控制系统[M],北京:
北京机械工业出版社,1994.
[3]王小明.电动机的单片机控制[M],北京:
北京航空航天大学出版社,2002.
[4]吴宝启,张元伟,刘阳.基于单片机的无刷直流电机控制方案设计[J],煤矿现代化,2009,Vol.16,NO.6:
74.
[5]周兴华.用单片机控制直流电机变速[J],电子制作,2006,Vol.34,NO.6:
34-35.
[6]岳东海,颜鹏.直流电机PWM无级调速控制系统设计[J],价值工程,2010,Vol.14,NO.2:
135-136.
[7]郭浩.3A驱动能力PWM直流电机控制电路的制作[J],电子制作,2007,Vol.9,NO.10:
42-43.
[8]袁淑芬.实现直流无刷电动机调速控制的一种新型方法[J],长春理工大学学报,2009,Vol.25,NO.1:
113-115.
[9]张琛.直流无刷电动机原理及应用[M],北京:
北京机械工业出版社,1996.
TheDesignofDCMotorSpeedControl
SystembasedonMicrocontrollerUnit
WuHuali
(PhysicsandElectricalEngineering,AnyangNormalUniversity,Anyang,Henna455002)
Abstract:
Accordingtothetopicrequest,thissystem(designmodel)takessinglechipcomputer,AT89S52,asacoredevice,andDCmotorasancontrolledobject.Withthecontrolof5buttons,thissystem(designmodel)canachievetheoperationsofstart-stop,controlofspeedanddirection,anddatadisplaythroughanoutputdevicecalledLCD1602.TheprincipleofthissystemistocontrolthemotorwiththePWMtechnologyandachieveaccuratevelocitymodulationwiththecalculationofdutyfactor.Meanwhile,measureanddisplaythemotor'srotationalspeedinrealtimeandinaddition,conductthePIDrotationalspeedadjustmenttomakethemotor'svelocityconvergetowardsthesettingvalue(setpoint).
KeyWords:
AT89s51;DCmotor;PWM;L298N;LCD1602
附录
1程序
1.1电机驱动单片机程序清单
#include
#include"delay.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineTOTAL20000//PWM波周期50Hz
/************************端口定义**********************************/
sbitIN1=P2.5;//控制转向
sbitIN2=P2.6;//控制转向
sbitPWMOUT=P2.7;//PWM输出
/************************全局变量**********************************/
intHigh;//高电平持续时间
intLow;//低电平持续时间
ucharflag_Hctrl=1;//高电平输出标志
ucharflag_stop=0;//停止标志
/***********************函数声明************************************/
voidIntial();
voidT0_Initial();
ucharKeyScan();
voidKeyProsess(uchar);
voidmain()
{
ucharkey;
Intial();
while
(1)
{
if((key=KeyScan())!
=0x1f)//按键扫描,没有键被按下时返回值为0x1f
KeyProsess(key);
}
}
********************************************/
voidIntial()
{
T0_Initial();//初始化定时器
High=1000;//占空比初始化
Low=TOTAL-High;
IN1=1;//电机正转
IN2=0;//
}
********************************************/
voidT0_Initial()
{
TH0=(65535-Low)/256;//定时器0赋初值
TL0=(65535-Low)%256;//
ET0=1;//开定时器0中断
TMOD=0x01;//定时器0:
工作方式1EA=1;//开总中断
TR0=1;//定时器0开始计时
}
***********************************************/
ucharKeyScan()
{
uchartemp;
ucharkeyword;
temp=P2;
if((temp&=0x1f)!
=0x1f)
{
Delay(10);//按键去抖
temp=P2;
if((temp&=0x1f)!
=0x1f)//确实有键按下
{
keyword=temp;
temp=P2;
while((temp&0x1f)!
=0x1f)//等待按键松开
temp=P2;
Delay(10);//按键松手去抖
temp=P2;
while((temp&0x1f)!
=0x1f)
temp=P2;
returnkeyword;//返回键值
}
else
returntemp;//此时temp==0x0f
}
else
returntemp;//此时temp==0x0f
}*******************************************/
voidKeyProsess(ucharkey)
{
if(key==0x1e)//速度加
{
if(flag_stop)
{
flag_stop=0;
IN1=1;
IN2=0;
}
High+=1000;
if(High>=TOTAL)
High=TOTAL;
}
elseif(key==0x1d)
{//速度减
High-=1000;
if(High<=0)
{
flag_stop=1;
IN1=1;
IN2=1;
High=0;
}
}
elseif(key==0x1b)//电机正转
{
IN1=1;
IN2=0;
}
elseif(key==0x17)//电机反转
{
IN1=0;
IN2=1;
}
elseif(key==0x0f)//停止
{
flag_stop=1;
IN1=1;
IN2=1;
High=0;
}
Low=TOTAL-High;
}
*******************************************/
voidTimer0_sev()interrupt1
{
flag_Hctrl^=0x01;//高电平标志取反
PWMOUT=~PWMOUT;//输出取反//////
if(flag_Hctrl)//高电平输出控制
{
TH0=(65535-High)/256;
TL0=(65535-High)%256;
}
else
{//低电平输出控制
TH0=(65535-Low)/256;
TL0=(65535-Low)%256;
}
}
1.2电机测速及显示控制单片机程序清单
#include
#include"LCD1602.h"
#incl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 直流电机 调速 系统