历史上的今天
今天是:2024年12月24日(星期二)
2019年12月24日 | 单片机直流电机PWM(调速)控制系统仿真+程序设计
2019-12-24 来源:51hei
1 引言
早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。所以,直流传动控制采用微处理器实现全数字化,使直流调速系统进入一个崭新的阶段。
微处理器诞生于上个世纪七十年代,随着集成电路大规模及超大规模集成电路制造工艺的迅速发展,微处理器的性价比越来越高。此外,由于电力电子技术的发展,制作工艺的提升,使得大功率电子器件的性能迅速提高。为微处理器普遍用于控制电机提供了可能,利用微处理器控制电机完成各种新颖的、高性能的控制策略,使电机的各种潜在能力得到充分的发挥,使电机的性能更符合工业生产使用要求,还促进了电机生产商研发出各种如步进电机、无刷直流电机、开关磁阻电动机等便于控制且实用的新型电机,使电机的发展出现了新的变化。
对于简单的微处理器控制电机,只需利用用微处理器控制继电器、电子开关元器件,使电路开通或关断就可实现对电机的控制。现在带微处理器的可编程控制器,已经在各种的机床设备和各种的生产流水线中普遍得到应用,通过对可编程控制器进行编程就可以实现对电机的规律化控制。对于复杂的微处理器控制电机,则要利用微处理器控制电机的电压、电流、转矩、转速、转角等,使电机按给定的指令准确工作。通过微处理器控制,可使电机的性能有很大的提高。目前相比直流电机和交流电机他们各有所长,如直流电机调速性能好,但带有机械换向器,有机械磨损及换向火花等问题;交流电机,不论是异步电机还是同步电机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便而经济地调节[2]。高性能的微处理器如DSP (DIGITAL SIGNAL PROCESSOR即数字信号处理器)的出现,为采用新的控制理论和控制策略提供了良好的物质基础,使电机传动的自动化程度大为提高。在先进的数控机床等数控位置伺服系统,已经采用了如DSP等的高速微处理器,其执行速度可达数百万兆以上每秒,且具有适合的矩阵运算。
2系统论述
2.1设计背景
近年来,随着科技的进步,电力电子技术得到了迅速的发展,直流电机得到了越来越广泛的应用。直流它具有优良的调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;需要能满足生产过程自动化系统各种不同的特殊运行要求,从而对直流电机的调速提出了较高的要求,改变电枢回路电阻调速,改变电枢电压调速等技术已远远不能满足要求,这时通过PWM方式控制直流电机调速的方法应运而生。
2.2 设计思路
直流电机PWM控制系统的主要功能包括:实现对直流电机的加速、减速以及电机的正转、反转和急停,并且可以调整电机的转速,能够很方便的实现电机的智能控制。
主体电路:即直流电机PWM控制模块。这部分电路主要由AT89S52单片机的I/O端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,能够很方便的实现电机的智能控制。其间是通过AT89S52单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。该直流电机PWM控制系统由以下电路模块组成:
设计输入部分:这一模块主要是利用带中断的独立式键盘来实现对直流电机的加速、减速以及电机的正转、反转和急停控制。
设计控制部分:主要由AT89S52单片机的外部中断扩展电路组成。直流电机PWM控制实现部分主要由一些二极管、电机和L298直流电机驱动模块组成。
设计显示部分: LED数码显示部分,实现对PWM脉宽调制占空比的实时显示。
2.3 系统框架设计

直流电机PWM调速方案
方案说明:直流电机PWM调速系统以AT89S52单片机为控制核心,由命令输入模块、LED显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给L298直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转和急停控制;同时单片机不停的将PWM脉宽调制占空比送到LED数码管完成实时显示。
3 PWM脉宽调制原理
3.1PWM调速原理
载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负速、温度控制、压力控制等等[7]。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。
如图1所示:

图1 PWM信号的占空比
设电机始终接通电源时,电机转速最大为Vmax,设占空比为D= t1 / T,则电机的平均速度为Va = Vmax * D,其中Va指的是电机的平均速度;Vmax 是指电机在全通电时的最大速度;D = t1 / T是指占空比。
由上面的公式可见,当我们改变占空比D=t1/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。严格来说,平均速度Vd与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似的看成是线性关系。
3. 2 PWM调速方法
基于单片机类由软件来实现PWM:在PWM调速系统中占空比D是一个重要参数在电源电压
不变的情况下,电枢端电压的平均值取决于占空比D的大小,改变D的值可以改变电枢端电压的平均值从而达到调速的目的。改变占空比D的值有三种方法:
A、定宽调频法:保持
不变,只改变t,这样使周期(或频率)也随之改变[。
B、调宽调频法:保持t不变,只改变
,这样使周期(或频率)也随之改变[。
C、定频调宽法:保持周期T(或频率)不变,同时改变
和t。
前两种方法在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整,此种方式可简化硬件电路,操作性强等优点。
3.3 PWM实现方式
方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。
方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。故采用方案一。
4系统硬件设计
4.1系统基本组成
4.1.1 硬件模块组成
(1)单片机控制模块
(2)L298电机驱动模块
(3)LED显示模块
(4)独立键盘控制模块3.3系统硬件各模块电路
4.1.2 单片机整个控制模块

单片机整个控制模块
这里利用定时计数器让单片机P2口的P2.6、P2.7引脚输出占空比不同的方波,然后经驱动芯片L298放大后控制直流电机。驱动芯片的输入电压是两引脚的电压差,在调速时一根引脚线为低电平,另一个引脚产生调速方波,这样两个引脚的电压差就可通过控制其中一个引脚来控制。当需要改变电机转动方向时,两个引脚的输出相反。
定时计数器若干时间(1us)中断一次,就使P2.6或P2.7产生一个高电平或低电平。直流电机的速度分成100个等级,因此一个周期就有100个脉冲,周期为一百个脉冲的时间,速度等级对应一个周期的高电平脉冲的个数。占空比为高电平脉冲个数占一个周期总脉冲个数的百分数。一个周期加在电机两端的电压为脉冲高电压乘以占空比。占空比越大,加在电机两端的电压越大,电机转动越快。电机的平均速度等于在一定的占空比下电机的最大速度乘以占空比。当我们改变占空比时,就可以得到不同的电机平均速度,从而达到调速的目的。精确的讲,平均速度与占空比并不是严格的线性关系,在一般的应用中,可以将其近似看成线性关系。
4.2 AT89S52的简介
4.2.1 AT89S52主要性能
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;1000次擦写周期;全静态操作:0Hz~33Hz;三级加密程序存储器;32个可编程I/O口线;三个16位定时器/计数器;八个中断源;全双工UART串行通道;低功耗空闲和掉电模式;掉电后中断可唤醒;看门狗定时器;双数据指针;掉电标识符。
4.2.2 AT89S52主要功能列举
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)
3、内部程序存储器(ROM)为 8KB
4、内部数据存储器(RAM)为 256字节
5、32 个可编程I/O 口线
6、8 个中断向量源
7、三个 16 位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
4.2.3 AT89S52各引脚功能介绍

4. 3 L298电机驱动模块
4. 3.1 L298电机驱动简介
L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动,设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达)和开关电源晶体管。内部包含4通道逻辑驱动电路,其额定工作电流为 1 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 36 V;Vs 电压最大值也是 36 V。L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。

4. 3.2 L298内部的原理图
4. 3.3 L298 引脚符号及功能
4. 3.4 L298的逻辑功能
当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;;IN1与IN2相 同时,电机快速停止。当使能端为低电平时,电动机停止转动。
在对直流电动机电压的控制和驱动中,半导体功率器件(L298)在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式在线性放大驱动方式。
半导体功率器件工作在线性区优点是控制原理简单,输出波动小,线性好,对邻近电路干扰小,缺点为功率器件工作在线性区,功率低和散热问题严重。开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。

4. 4 LED数码管显示
4. 4.1 LED简介
LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。
当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。除半导体激光器外,当电流激励时能发射光学辐射的半导体二极管。严格地讲,术语LED应该仅应用于发射可见光的二极管;发射近红外辐射的二极管叫红外发光二极管(IRED,Infrared Emitting Diode);发射峰值波长在可见光短波限附近,由部份紫外辐射的二极管称为紫外发光二极管;但是习惯上把上述三种半导体二极管统称为发光二极管。

4. 4.2 LED七段数码管的结构

共阴极 共阳极 管脚图
其中:图(a)为共阴极结构,8断发光二极管的阴极端连接在一起,阳极端分开控制,使用时公共端接地,要使哪根发光二极管,则对应的阳极端接高电平。图(b)为共阳极结构,8端发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源。要使哪根发光二极管,则对应的阴极端接地。其中7段发光二极管构成7笔的字形“8”,1根发光二极管构成小数点。图“c”为引脚图,从a-g引脚输入不同的8位二进制编码,可显示不同的数字或字符。通常把控制发光二极管的7(或8)位二极管编制称为字段码。不同数字或字符其字段码不一样,对于同一个数字或字符,共阴极连接和共阳极连接的字段码也不一样,共阴极和共阳极的字段码互为反码。
4. 4.3常见数字和字符的字段码
4. 4.4 LED数码管和单片机的连接

电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位LED的字型码,然后选通该位LED, 并保持一段延时时间。然后选通下一位,直到所有位扫描完。
4. 4.5简单的程序流程
![]()
![]()

4. 4.6本系统中单片机与LED的连接

4.5独立式键盘控制模块
4.5.1键盘的功能及分类
键盘是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。
键盘的分类
(a)键盘按照接口原理可分为编码键盘与非编码键盘两类。这两类键盘的主要区别是识别键符及给出相应键码的方法。
编码键盘主要是用硬件来实现对键的识别;
非编码键盘主要是由软件来实现键盘的定义与识别。
(b)键盘按照其结构可分为独立式键盘与矩阵式键盘两类。
独立式键盘主要用于按键较少的场合,矩阵式键盘主要用于按键较多的场合,也称行列式键盘
4.5.2独立式键盘

独立式键盘的按键相互独立,每个按键接一根I/O口线,一根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下
4.5.3独立式键盘与单片机的链接

5系统软件设计
直接应用AT89S52的软件方法实现PWM信号输出,这比硬件实现PWM信号成本低。限制少。实现便捷。其流程图如下所示。
5.1流程图
5.1.1主程序流程图

图5.1系统主单片机总程序框图
结论
通过本次毕业设计,使我学到了许多书本上无法学到的知识,也使我深刻体会到单片机技术应用领域的广泛。不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:直流电机PWM调速、AT89S52单片机、L289引脚图及其引脚功能等,LED数码管显示,为本次毕业设计提供了一定的资料。
在做毕业设计的初期阶段,难度很大,没有头绪。通过求助于陈老师、理清了思路。同时,在图书馆里、网上查阅资料,攻克了毕业设计中的道道难题。通过本次科技创新实践,我学到了许多东西,知道光靠书本上的东西是不够的,需额外去查资料。无论是在硬件还是软件设计上,我都遇到了不少的问题,在克服困难的过程中,我学到了许多,特别是在课堂上学不到的东西如(PWM)。也锻炼了我的protel画图能力,以前学的时候元器件都是给定的只要到库里面找出名字就可以,只要连线就可以,而这次是根据自己的设计需要去画,感觉不同。本次设计我能独立完成,算是有了很大的收获。总的感受有以下几方面:
1、通过本次毕业设计,我不但对单片机有了更为深入的了解,对一个课题如何画流程图,编程序等有了一定的认识。
2、进一步加强了我的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案。特别是深刻体会到了软件和硬件结合的重要性,以及两者的联系和配合作用。
3、让我了解到单片机技术对当今人们生活的重要性。同时这次做毕业设计的经历也使我受益匪浅,让我知道做任何事情都应脚踏实地,刻苦努力地去做,只有这样,才能做好。
附录2:原理图




单片机源程序如下:
*********************************************************************
直流电机PWM调速
功能描述:使用单片机T0定时器产生(xxxHz)脉宽调制信号,输到L298N的EN_A
实现双直流电机的速度调控。
修订日期:2011-5-7
*********************************************************************/
#include #include #define uchar unsigned char #define uint unsigned int /********************************************************************** L298n接口定义 **********************************************************************/ sbit MOTOR_A_2=P3^6; sbit MOTOR_A_1=P3^7; sbit EN_MOTOR_A =P3^4; sbit k1=P1^5; //定义k1为p1.5口 sbit k2=P3^1; //定义k2为p3.1口
史海拾趣
|
求做模拟键盘鼠标动作驱动,过NP。 不要按一次键出发那种键盘驱动,鼠标定位要准,稳定(韩文系统) 报酬丰厚。 急,急,急 TELL ME: 13406738163 pass86@gmail.com… 查看全部问答> |
|
在学习中断过程中,使用最简单的程序如下,我使用的是开发板,直接load进去的。请教高手,程序为什么进不了中断?先谢谢了! #include \\"lf2407.h\\" void inline disable() { asm(\\" setc INTM ...… 查看全部问答> |
|
MSP430X32X微控制器的片内A/D TI的MSP430系列微控制器 TI公司的MSP430系列微控制器包含430X11X、430X31X、430X32X、430X33X等几种型号。可根据不同的应用目标作有针对性的选择。 MSP430系列微控制器在性能上有一定的特色, ...… 查看全部问答> |
|
[img]最近为这个问题很头疼,虽然网上也有资料,但总讲的也不详细,而且有些提到的东西找不到。有两个问题很烦恼,一、只要程序超过64KB,编译就出错,二、可不可以不指定bank,keil就能自己自动划分呢,对于写程序的人来说,写个C文件就指定一个ba ...… 查看全部问答> |




