直流电动机控制器.docx
- 文档编号:10472426
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:34
- 大小:314.07KB
直流电动机控制器.docx
《直流电动机控制器.docx》由会员分享,可在线阅读,更多相关《直流电动机控制器.docx(34页珍藏版)》请在冰豆网上搜索。
直流电动机控制器
编号:
单片机原理
实训(论文)说明书
题目:
直流电动机控制器
院(系):
专业:
学生姓名:
学号:
指导教师:
2011年01月04日
摘 要
利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。
文章中对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节等均作了详细的阐述。
另外,本系统中使用了测速发电机对直流电机的转速进行测量,通过软件延时来给出不同的速度,延时的时间不同,速度大小就不同,显示的速度值也不同,从而实现了对直流电机速度的控制。
然而,最基本的功能是实现直流电机的启动和停止,正转和反转。
在软件方面,文章中详细介绍了软件程序,初始化程序等的编写思路和具体的程序实现。
关键词:
速度等级;反转;延时;启动
Abstract
ThispapermainlystudiedusingMCS-51seriesmicrocontrollercontrolPWMsignalsoastoachievedcmotorspeedcontrolmethod.ArticleofPWMsignalprinciple,producemethodsandhowtothroughsoftwareprogrammingofPWMsignaloccupiesemptiescomparedtoundertakemodulatory,etc.Fordetail.Inaddition,thesystemusedindctachogeneratormotorrotatemeasuredthroughsoftwaredelaytoofferdifferentspeed,delaytimeisdifferent,thevelocityisdifferent,displayspeedvalueisdifferentalso,thusfulfillingthespeedcontrolofadcmotor.However,themostbasicfunctionistorealizedcmotorstartingandstopping,areturningandreverse.Insoftware,articleintroducesindetailasoftwareprogram,initializationprocedureofcompilationofthoughtandspecificprogramrealization.
Keywords:
speed;reversal;delay;start
目 录
引言-1-
1 主控系统电路的设计-2-
1.1 系统总体设计框图及单片机系统的方案选择-2-
1.2 AT89C52单片机简介-3-
1.3 主控系统-3-
2.电机驱动电路-5-
2.1电机驱动介绍-5-
2.2正反转驱动分析-6-
2.3电机启动和停止-7-
3 测速电路设计-7-
3.1 PWM的基本原理-7-
3.2 测速原理分析-8-
3.3 四位共阴数码管显示设计-9-
4 系统的软件设计和软硬件调试-10-
4.1 系统软件概述-10-
4.2 调试过程典型的程序和方法-10-
4.3 调试过程遇到的困难和解决方法-13-
4.3.1三极管的调试-13-
4.3.2红外对管的调试-13-
4.3.3整体电路的调试-13-
4.3.4软件的调试-14-
5 结论-15-
谢 辞-17-
参考文献-18-
附 录-19-
引言
利用MCS-51系列单片机,通过PWM方式控制直流电机调速的方法。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM控制技术就是以该结论为理论基础,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。
按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。
PWM控制的基本原理很早就已经提出,但是受电力电子器件发展水平的制约,在上世纪80年代以前一直未能实现。
直到进入上世纪80年代,随着全控型电力电子器件的出现和迅速发展,PWM控制技术才真正得到应用。
随着电力电子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM控制技术获得了空前的发展。
到目前为止,已经出现了多种PWM控制技术。
PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。
本文就是通过改变电压的占空比实现直流电机速度的控制。
文章中采用了红外对管接收的脉冲进行计数,从而根据在一定时间内接收到的脉冲数不同得出不同的占空比,以便得出不同的速度。
因此能够实现电机的调速控制,也就能够在数码管上显示不同的相应速度值。
1 主控系统电路的设计
1.1 系统总体设计框图及单片机系统的方案选择
系统总体设计框图:
图1.1系统总体设计框图
主控部分的选择:
方案一:
用以AT89S52为核心的单片机控制系统方案,AT89S52具有较大程序存储空间和数据存储空间能满足用户的需要易于实现功能拓展,AT89S52内部置有ISP在线编程技术可以应用下载线直接连到计算机的并口相连就可烧写程序,可代替市场上专用的程序烧写器,既经济又实用,从而提高了系统性价比。
方案二:
用AT89C51作为主控制系统易于实现对程序的编写但是用户在编写较长程序时它的程序存储空间和数据存储空间不能满足需求,且其不支持ISP在线编程技术,需要专用的烧写器来烧写程序,故成本高,进而降低了系统性价比。
综合以上两种方案分析,采用AT89S52作为主控制系统,可以大大提高系统功能的能指标,还可以简化系统电路,成本低,故采用方案一。
直流电机驱动电路的选择:
方案一:
采用分立元件组成的平衡式驱动电路,这种电路可以由单片机直接对其进行操作,虽然分立元件占用的空间比较大,但成本低,在本直流电机电路中完全适用。
因此,从成本以及利用率方面考虑,最终使用H桥方式进行搭建直流电机驱动电路。
方案二:
L298N可直接的对电机进行控制,无须隔离电路。
通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,易于用PWM波形控制电机转速。
但是其成本高,在本电路中未免浪费。
因此,不采纳。
1.2 AT89C52单片机简介
主要性能:
·兼容MCS-51指令系统·8k可反复擦写(>1000次)ISPFlashROM·32个双向I/O口·4.5-5.5V工作电压·3个16位可编程定时/计数器·时钟频率0-33MHz·全双工UART串行中断口线·256x8bit内部RAM·2个外部中断源·低功耗空闲和省电模式·中断唤醒省电模式·3级加密位·看门狗(WDT)电路·软件设置空闲和省电功能·灵活的ISP字节和分页编程·双数据寄存器指针。
功能特性描述:
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S52的特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
其基本组成如下图所示:
图1.2AT89S52基本组成
1.3 主控系统
PWM直流电机系统的控制模块采用AT89S52单片机,AT89S52是DIP-40集成电路芯片,该芯片有4个八位并行的双向I/O口,分别为P0、P1、P2、P3口。
如图(3)示。
图1.3主控系统
20引脚为接地端;40引脚为电源端;31引脚需要接高电位使单片机选用内部程序存储器;18、19脚接上一个12MHZ的晶振为单片机提供时钟信号,第9脚为复位引脚,单片机只有满足这些条件才能正常工作。
这次作品我们在P1口接上液晶显示。
在P0口接电机驱动电路,在P3口接红外遥控电路。
接线分析:
P0.7---P0.0:
这8个引脚共有两种不同的功能,分别使用于两种不同的情况。
第一种情况是8051不带片外存储器,P0口可以作为通用I/O口使用,P0.7---P0.0用于传送CPU的I/O数据。
第二种情况是8951带片外存储器,P0.7---P0.0在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。
P2.7---P2.0:
这组引脚的第一功能可以作为通用的I/O使用。
它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但是并不能像P0口那样还可以传送存储器的读写数据。
P3.7---P3.0:
这组引脚的第一功能为传送用户的输入/输出数据。
它的第二功能作为控制用,每个引脚不尽相同,如下表所示:
表1-1P3口引脚的第二功能
P3口的位
第二功能
注释
P3.0
RXD
串行数据接收口
P3.1
TXD
串行数据发送口
P3.2
外中断0输入
P3.3
外中断1输入
P3.4
T0
计数器0计数输入
P3.5
T1
计数器1计数输入
P3.6
外部RAM写选通信号
P3.7
外部RAM读选通信号
VCC为+5V电源线,VSS为接地线。
ALE/
:
地址锁存允许/编程线,配合P0口引脚的第二功能使用,在访问片外存储器时,8951CPU在P0.7---P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/
线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7---P0.0引脚线去传送随后而来的片外存储器的读写数据。
在不访问片外存储器时,8951自动在ALE/
线上输出频率为1/6fOSC的脉冲序列。
该脉冲序列可以用作外部时钟源或者作为定时脉冲源使用。
/VPP:
允许访问片外存储器/编程电源线,可以控制8951使用片内ROM还是片外ROM。
如果
=1,那么允许使用片内ROM;如果
=0,那么允许使用片外ROM。
:
片外ROM选通线,在执行访问片外ROM的指令MOVC时,8951自动在
线上产生一个负脉冲,用于片外ROM芯片的选通。
其他情况下,
线均为高电平封锁状态。
RST/VPD:
复位备用电源线,可以使8951处于复位工作状态。
XTAL1和XTAL2:
片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接8951片内OSC的定时反馈电路。
石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以便于8951片内的OSC电路按石英晶振相同频率自激振荡,电容C1、C2可以帮助起振,调节它们可以达到微调fOSC的目的。
2.电机驱动电路
2.1电机驱动介绍
图1.4H桥开关电路(Ⅰ) 图1.5H桥开关电路(Ⅱ)
小功率驱动电路可以采用如图4所示的H桥开关电路。
UA和UB是互补的双极性或单极性驱动信号,TTL电平。
开关晶体管的耐压应大于1.5倍Us以上。
由于大功率PNP晶体管价格高,难实现,所以这个电路只在小功率电机驱动中使用。
当四个功率开关全用NPN晶体管时,需要解决两个上桥臂晶体管(BG1和BG3)的基极电平偏移问题。
图5中H桥开关电路利用两个晶体管实现了上桥臂晶体管的电平偏移。
但电阻R上的损耗较大。
在此,在我所设计的H桥电路中,采用的为以下的结构。
2.2正反转驱动分析
(1)当P12=0,P13=1时,启动反转模式。
Q1,Q3,Q6处于工作状态,在5V工作电压下,电流从Q3流向Q6,实现反转模式。
(2)当P12=1,P13=0时,启动正转模式。
Q2,Q4,Q5处于工作状态,在5V工作电压下,电流从Q5流向Q4,实现正转模式。
所以也只能在小功率电机驱动。
图1.6电机驱动部分
2.3电机启动和停止
利用单片机独特的功能,就可以赋予电机启动和停止。
在本次实训对应的电路图中,我是利用按键P3.6和P3.7来同时控制直流电机的启动。
只有两个按键都按过,才可以表明等级设定不为0(即OFF)状态,模式切换也不在OFF状态。
直流电机才能真正启动。
否则,只按下其中之一,是没有实现启动功能的。
相应于我的程序控制为:
if((turn0&&turn1)!
=0)。
然而对于停止,只要P3.6或者P3.7之一有一个处于0FF状态,即可使直流电机停止工作。
速度同时显示为0。
总的来说,直流电机在本次作品当中靠得就是P3.6和P3.7两个按键的控制来赋予程序不同的实现功能,从而完成电机的启动和停止。
3 测速电路设计
3.1 PWM的基本原理
PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。
PWM可以应用在许多方面,比如:
电机调速、温度控制、压力控制等等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。
也正因为如此,PWM又被称为“开关驱动装置”。
如下图所示:
图2.1脉冲显示
设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为Va=Vmax*D,其中Va指的是电机的平均速度;Vmax是指电机在全通电时的最大速度;D=t1/T是指占空比。
由上面的公式可见,当我们改变占空比D=t1/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。
严格来说,平均速度Vd与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似地看成是线性关系。
3.2 测速原理分析
PWM波可以由具有PWM输出的单片机通过编程来得以产生,也可以采用PWM专用芯片来实现。
当PWM波的频率太高时,它对直流电机驱动的功率管要求太高,而当它的频率太低时,其产生的电磁噪声就比较大,在实际应用中,当PWM波的频率在18KHz左右时,效果最好。
只要改变P1端口的输出值,那么就可以使得PWM信号的占空比发生变化,从而进行调速控制。
使用这个方法时,单片机只需要根据调整量输出X的值,这样可以使得软件大大简化,同时也有利于单片机系统的正常工作。
由于单片机上电复位时P1端口输出全为“1”,使用数码管与P0,P2端口相连,再采用软件延时达到给出不同的速度,也同时测出了不同的速度。
在我所设计的电路中,根据电路原理设计了硬件电路,这种测量装置能够测量转速范围较大的转速。
通过电机的每次旋转,就会经过红外对管测速电路,从而进行累加,最后在1S时间内通过值的不同,就可以知道不同速度等级的具体大小。
在固定时间内转过的圈数不同,占空比不同,得到的红外对管测速电路的大小就不同,最后在数码管上通过软件编程就可以显示速度的具体数值。
其实是希望采用光电传感器进行测速的,但是因为资源的有限利用,无法得到它。
因此只好自己设计一个简单的红外对管测速电路。
其中,采用的是,红外对管测速由红外发射头和红外接收头组成。
它们是成对出现的。
电机的速度就是通过每次扇叶的旋转经过的次数累加,进而得到最后速度的计算和显示。
图2.2红外对管测速电路
3.3 四位共阴数码管显示设计
共阴LED数码显示管,当输入高电平时有效,显示数字钟的时间。
显示器件选用LED七段数码管。
在译码显示电路输出信号的驱动下,显示出清晰的、直观的数字符号,并且为保证数码管正常工作提供足够的工作电流。
该数字钟的电路设计用到了6个显示数码管。
在我所设计的电路中,应用到了P2口和P0口。
采用动态扫描的方法,P0口是段选,P2口是位选。
通过这两个数码管就可以把速度,模式以及等级切换全部显示出来。
P2.4~P2.7显示的是速度,P2.0~P2.3显示的是模式和速度等级。
图2.3数码管显示部分
在我设计要求的实训电路里面,我需要的0~9,n,F,这十二个段码,在相应的共阴数码管里,段码为:
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x37,0x71而我所用P2口控制,利用动态扫描原理,那么利用人眼的暂留效应就可以看到不同的位显示出不同的值。
位码相应为:
0xf7,0xfb,0xfd,0xfe,0x7f,0xbf,0xdf,0xef。
由于封装没有变化,因此这个易于采用。
4 系统的软件设计和软硬件调试
4.1 系统软件概述
通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,易于用PWM波形控制电机转速。
4.2 调试过程典型的程序和方法
(1)启动了定时计数器。
TMOD=0x15进行定时计数。
主要利用T1进行模式1的16位定时器,利用T0进行模式1的16位计数器。
定时计数初始化程序如下:
TMOD=0x15;//t1为定时器,t0为计数器模式
TH1=(65536-50000)/256;//赋初值,延时大约50MS
TL1=(65536-50000)%256;
TH0=0;
TL0=0;
EA=1;//开总中断
ET0=1;//开t0中断标志位
ET1=1;
该模块的优点就是利用可编程的定时计数器方式准确计数,不占用CPU时间。
(2)利用动态显示速度的大小
利用4位LED显示,电路简单,成本降低,将所有的P0段选线并联在一起,而每一位的共阴管分别由单独的P2.4~P2.7控制。
此时段选控制P0口送出字符的段选码,位选控制只在应该显示的位线选送通电平,并持续一小段时间。
如此轮流,利用人眼的视觉暂留现象,产生各位都亮的效果。
相应的程序如下:
P2=0xff;
w8=0;
P0=table1[ss];
delay
(2);
P2=0xff;
w7=0;
P0=table1[sg];
delay
(2);
P2=0xff;
w6=0;
P0=table1[fs];
delay
(2);
P2=0xff;
w5=0;
P0=table1[fg];
delay
(2);
(3)等级可调设定和模式切换功能的实现
速度分成1~9这九个等级,根据P3.6口按键的按下,就可以方便地切换模式。
同理,根据P3.7口按键的按下,也可以顺利且便捷地切换正反转模式。
if(turn==0)
{
delay(10);
if(turn==0)
{while(!
turn);
turn0++;
if(turn0==10)
{
turn0=0;
}
if(turnlr==0)
{
delay(10);
if(turnlr==0)
{while(!
turnlr);
turn1++;
if(turn1==3)
{
turn1=0;
turn0=0;
}
}
(4)速度可调的具体程序
现在我举正转速度可调的例子进行分析。
当P13=1,P12=0时,选通三极管Q5和Q4。
if((turn0&&turn1)!
=0)
{
TH0=0;
TL0=0;
t0=0;
t1=0;
TR0=1;
TR1=1;
flag=0;
}
if(turnlr==0)
{
delay(5);
if(turnlr==0)
{while(!
turnlr);
turn1++;
if(turn1==3)
{
turn1=0;
turn0=0;
}
}
}
delay(((turn0*turn0)/3)*200);
right=1;
由此我们可以知道:
在直流电机工作时,选定正转或者反转之一的模式之后,根据等级的不同,就可以由红外对管测速电路准确测出速度的大小。
该时间是一个平方延时模式,也是一个指数上升,模式。
所以,时间延时不同,在红外对管感应的圈数不同。
透过数码管显示的速度大小也不一样。
基于这个原理,我们就可以准确快速地完成速度可调和显示功能。
4.3 调试过程遇到的困难和解决方法
4.3.1三极管的调试
在调制的过程中,首先遇到的困难是三极管的管脚插放不正确,从而影响了这个电路的顺利完成。
在我所设计的电路中,由成本出发,我没有采用L298,而是采用H桥进行电机电路的驱动。
在我所设计的电路当中,采用六个三极管进行搭建。
其中,9013两个,8050四个。
现在我以8050为例子,详细介绍我在三极管调试中遇到的困难和解决方法。
8050是NPN三极管。
从正面看过去,是E,B,C三个极。
然后我就可以根据我的PCB相应的管脚进行插放。
这个管脚的放置务必小心,一旦错误,必会影响这个的电路的正常发挥。
其实,我们可以通过万用表进行检测。
在普通的万用表里面,可以把三个管脚进行放置,然后测出三个管脚的电压值。
从他们电压的正负就可以判断出三个的极性。
对于NPN,BE两极为正,方向则为负。
同理,CE两极为正,方向则为负。
在实验过程中,由于我错把9013当成NPN,所以导致了不该犯的错误。
后来经过细心对照,发现了错误。
改正后,电路正常工作。
4.3.2红外对管的调试
在实验过程中,红外对管其实很实惠,在我们学校的店面就可以买到。
完成没有必要使用高价的感应管。
红外对管测速电路还需要与9013(PNP)的基极相连。
当然,还需要附加相应的合理电阻。
但是,我在实验过程中,忽然把红外对管测速电路与单片机的连线弄掉了。
结果理所当然地把它接在接收头的一端,我是利用单片机相应的P3.4口进行控制。
但是,结果一直不出来,我用又万用表重新检测了电路板的电路,还是检查不出来。
后来对照原理图,才发现单片机P3.4的连接线应该与红外测速电路的9013(PNP)的C极进行相连。
这个我后来在原理图中重点注释了,以免后面发生不必要的错误。
所以,红外对管的调试疏忽点就是错误地没有把9013的C极与单片机的P3.4管脚进行连接。
检查之后,电路正常工作。
4.3.3整体电路的调试
在实验过程中,对于这块板子的测试工作量是最大的。
我的板子其实一开始就有两个虚焊的点,连接上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 直流电动机 控制器