直流电机PWM调速
- 格式:doc
- 大小:313.50 KB
- 文档页数:20
随着时代的发展,数字电子技术已经普及到我们生活、工作、科研各个领域。
并且在各类机电系统中,由于直流电机具有良好的启动、制动和调速性能,直流电机调速系统已广泛应用于工业、航天领域的各个方面,最常用的直流技术是脉宽调制(PWM)直流调速技术,具有调速精度高,响应速度快,调速范围宽和损耗低的特点。
本设计主要介绍了使用微控制器AT89S51的直流电机调速系统。
论文主要介绍了直流电机调速系统的意义、基于单片机控制的PWM直流电机调速方法和PWM基本工作原理以及实现方法,通过对占空比的计算达到精确调速的目的。
主电路主要采用电位器的调节,经过ADC0809转换成数字信号进而控制AT89S51单片机,将数据传输给单片机并产生脉宽调制信号,然后通过电机驱动芯片L298对小型直流电机进行控制。
本设计还附加了由霍尔开关CS3020、AT89S51单片机、74LS47七段数码管译码芯片和四位LED构成转速检测显示电路。
关键词:单片机AT89S51;直流电机;脉宽调制;转速检测第一章绪论 (1)1.1 课题研究的背景 (1)1.2 课题研究的目的与意义 (1)1.3 PWM变频调速发展前景与简介 (2)1.4 课题研究内容及目标 (2)第二章直流电机调速系统设计 (4)2.1 系统总体方案设计 (4)2.1.1 设计思路 (4)2.1.2总体方案比较与选择 (4)2.1.3 电机调速控制模块方案比较与选择 (5)2.2 基本原理分析 (5)2.2.1 直流电机的调速原理 (5)2.2.2 直流电机PWM调速原理 (6)2.2.3 霍尔效应和原理简介 (7)2.3 系统各模块方案的比较与选择 (7)2.3.1 电机驱动芯片的选择 (7)2.3.2 测速传感器的选择 (8)2.4 系统硬件组成 (9)第三章硬件系统设计 (10)3.1 AT89S51单片机特性及管脚说明 (10)3.2 ADC0809特性及管脚说明 (11)3.3 PWM波形发生原理 (12)3.4 电机驱动电路 (13)3.5 测速部分 (15)3.6 复位电路和时钟电路 (16)总结 (19)参考文献 (20)第一章绪论1.1 课题研究的背景直流电机是最常见的一种电机,它已经广泛应用于交通、机械、化工、航空等领域中。
直流电动机的PWM调压调速原理
直流电动机的PWM调压调速是指通过调节脉宽调制(PWM)信号的占空比,控制直流电动机的电压和转速。
其原理是利用数字信号的高低电平与时间的对应关系,通过高电平和低电平的时间比例来控制脉冲信号的平均值,从而实现对电动机的调压和调速。
具体来说,PWM调压调速主要包括以下几个步骤:
1.信号发生器:使用微控制器或其他信号发生器产生一个固定频率的方波信号,通常频率为几千赫兹到几十千赫兹。
这个信号称为PWM基准信号。
2.调制器:通过控制占空比,将PWM基准信号转换为调制后的PWM信号。
占空比是指高电平持续的时间与一个周期的比值。
例如,占空比为50%的PWM信号表示高电平和低电平持续时间相等。
调制器可以是硬件电路或者软件控制的。
3.电压调节:将调制后的PWM信号经过滤波器平滑输出,形成电压调节信号。
滤波器通常使用低通滤波器,将PWM信号的高频成分滤除,得到平均电压。
4.转速控制:通过调节占空比,改变PWM信号的高电平时间,从而改变直流电动机的平均电压。
占空比越大,输出电压就越高;占空比越小,输出电压就越低。
5.转速反馈:为了实现闭环控制,通常需要通过传感器获取直流电动机的转速,并将转速信息反馈给调速控制器。
调速控制器会根据反馈信号与设定的转速进行比较,调节占空比控制电动机的转速。
总结起来,PWM调压调速原理就是通过调节PWM信号的占空比控制直流电动机的电压和转速。
通过改变占空比,可以改变PWM信号的高电平时间,从而改变电动机的平均电压和转速。
同时,结合转速反馈,可以实现封闭环控制,使电动机的转速能够与设定值保持一致。
毕业设计论文PWM 控制直流机电调速脉宽调制(PWM)控制技术,是利用半导体开关器件的导通和关断,把直流电压变成电压脉冲序列,并控制电压脉冲的宽度和脉冲序列的周期以达到变压变频目的的一种控制技术。
PWM 控制技术广泛地应用于开关稳压电源,不间断电源(UPS),以及交直流电动机传动等领。
本文阐述了 PWM 变频调速系统的基本原理和特点,并在此基础上给出了一种基于 Mitel SA866DE 三相 PWM 波形发生器和绝缘栅双极功率晶体管(IGBT)的变频调速设计方案。
直流电动机具有优良的调速特性,调速平滑、方便, 调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;能满足生产过程自动化系统各种不同的特殊运行要求,在许多需要调速或者快速正反向的电力拖动系统领域中得到了广泛的应用。
直流电动机的转速调节主要有三种方法:调节电枢供电的电压、减弱励磁磁通和改变电枢回路电阻。
针对三种调速方法,都有各自的特点,也存在一定的缺陷。
例如改变电枢回路电阻调速只能实现有级调速,减弱磁通虽然能够平滑调速,但这种方法的调速范围不大,普通都是配合变压调速使用。
所以,在直流调速系统中,都是以变压调速为主。
其中,在变压调速系统中,大体上又可分为可控整流式调速系统和直流PWM 调速系统两种。
直流 PWM 调速系统与可控整流式调速系统相比有下列优点:由于PWM 调速系统的开关频率较高 ,仅靠电枢电感的滤波作用就可获得平稳的直流电流 , 低速特性好,稳速精度高,调速范围宽,可达1:10000 摆布;同样,由于开关频率高, 快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高;直流电源采用不控整流时,电网功率因数比相控整流器高。
正因为直流 PWM 调速系统有以上的优点,并且随着电力电子器件开关性能的不断提高,直流脉宽调制( PWM) 技术得到了飞速的发展。
直流电机是工业生产中常见的电机之一,它通常以PWM(脉宽调制)方式进行调速。
而在PWM调速过程中,续流二极管扮演了重要角色。
本文将从直流电机的工作原理、PWM调速原理、续流二极管的作用和选择等方面进行详细介绍。
一、直流电机的工作原理直流电机是一种将电能转换为机械能的装置,它的工作原理基于洛伦兹力和带电粒子在磁场中受力的规律。
当直流电流通过电机的线圈时,产生的磁场与永磁体或者电磁铁产生的磁场相互作用,从而使得电机的转子产生力矩,从而驱动机械装置运转。
二、PWM调速原理PWM调速是通过改变电机输入的脉冲宽度来控制电机的平均电压和平均电流,从而改变电机的转速。
具体实现上,PWM调速是将直流电源高频开关,使得电机在分时段内接收到占空比不同的电压脉冲,从而实现调速。
三、续流二极管的作用在PWM调速过程中,电机的正负半周各有一个脉冲开关管,分别为一组导通和一组关断。
当开关管关断时,直流电机线圈中的电流不能突然中断,否则会产生电感压降。
为了避免电感压降引起的反冲电压,需要在开关管关断时,让电流有一条回路可以继续流动,这就是续流二极管的作用。
四、续流二极管的选择续流二极管应具有较快的反向恢复时间,这样才能在开关管关断瞬间尽快导通,避免电感压降引起的反冲电压。
续流二极管的电流和电压等参数也需要根据具体的电机工作条件来选择。
五、总结直流电机的PWM调速是一种常见的调速方式,而续流二极管在PWM调速过程中的作用不可忽视。
正确选择合适的续流二极管,对电机的稳定性和性能有着重要影响。
希望本文对读者对直流电机的PWM 调速和续流二极管有所帮助。
六、续流二极管的工作原理续流二极管在PWM调速过程中,起到了保护开关管和电机的作用。
在电机线圈中的电流无法突然中断的情况下,如果没有合适的续流二极管,就会导致电感压降产生反冲电压,这样会对开关管和电机造成不良影响,甚至损坏设备。
续流二极管的工作原理主要是利用其具有的快速反向恢复时间和导通特性来形成一个回路,让电流有一条通路继续流动,从而避免反冲电压的产生。
直流电机pwm调速原理直流电机PWM调速原理是通过改变电源给电机的电压和电流,从而控制电机转速的一种方法。
PWM,即脉冲宽度调制,是一种用来调节电平电路中电平的技术,利用脉冲信号的占空比(高电平与周期时间之比)来控制电平的平均值。
在直流电机PWM调速中,首先需要了解电机的电刷子与换向器的工作原理。
电刷子负责切换电极的极性,而换向器则根据电刷子的位置将电流传送到正确的电极上。
当电流在电机的绕组中流动时,会形成磁场,这个磁场会与永磁体产生相互作用,从而产生电机的转动力。
为了控制电机的转速,可以通过改变供电电压的幅值和频率来实现。
在PWM调速中,电源输出的电压信号被分解为一系列的脉冲信号。
脉冲信号的占空比根据所需的电机转速来确定,占空比越大,电机转速越快。
在每个脉冲周期中,脉冲信号的高电平部分代表电源给电机供电的时间,而低电平部分则代表停止供电的时间。
通过改变脉冲信号的占空比,可以控制电机的平均电压和平均电流。
当占空比增大时,电机平均得到更多的能量供应,转速也会相应增加。
反之,当占空比减小时,电机平均得到更少的能量供应,转速会减慢。
这样,通过不断调整脉冲信号的占空比,就可以实现对直流电机的精准调速。
需要注意的是,在PWM调速中,电机的换向也需要考虑进去。
换向器需要根据电机的转向来控制电刷子的位置,使电流能够按正确的路径流动。
这样能够保证电机的正常运转,并提供足够的转矩和稳定性。
综上所述,直流电机PWM调速是通过改变电源给电机的电压和电流的脉冲信号的占空比来实现的。
通过调节脉冲信号的占空比,可以控制电机的平均电压和电流,从而实现对电机转速的精确控制。
同时,需考虑电机的换向,以保证电机能够正常运转。
PWM直流电机调速摘要本文首先简要介绍了直流小电机的实行方案最终选择方案一作为实施方案;然后介绍了PWM相关的原理脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。
它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
之后详细设计了基于MCS-51 单片机的直流小电机PWM调速的系统硬件电路以及各电路硬件说明目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,;最后是实现直流小电机PWM直流调速系统软件设计,附录有相关的系统源程序。
关键词PWM,单片机,直流电机AbstractThis article first briefly introduced as soon as directs current the small electrical machinery to implement the plan the selection scheme to take the implementation plan finally; Then introduced the PWM related principle The pulse width modulation (PWM) is English “Pulse Width Modulation” abbreviation, abbreviation pulse-duration modulation. It is loses using microprocessor's digit carries on the control to the analogous circuit one kind of very effective technology, widely applies in the survey, the correspondence, the power control and the transformation and so on many domains.the pulse width modulation (PWM) is one kind carries on the digital coding to the simulated signal level the method. Through the high resolution counter's use, the square-wave dutyfactor is modulated uses for to carry on to a concrete simulated signal level the code.; Afterward detailed design based on MCS-51 monolithic integrated circuit's direct-current small electrical machinery PWM velocity modulation system hardware electric circuit as well as various electric circuits hardware explanation; Finally is realizes directs current the small electrical machinery PWM cocurrent velocity modulation system software design, the appendix has the relatedsystem source program.key word:PWM monolithic integrated circuit direct current machine目录摘要 (I)Abstract (II)第1章绪论 (1)第2章方案论证 (3)2.1总体方案论证 (3)2.2 PWM的基本工作原理 (5)2.3 直流电动机转速控制系统的工作原理 (5)2.4 PWM码简介及解码原理 (6)第3章系统硬件电路设计 (7)3.1电源电路设计 (7)3.2单片机最小应用系统的实现 (7)3.3 D/A转换接口电路设计 (10)3.3.1 DAC0832简介 (10)3.3.2 DAC0832与单片机的接口 (11)3.4功放电路 (12)3.4.1晶体三极管 (12)3.4.2基本放大电路的组成 (13)第4章系统软件电路设计 (14)4.1 软件实现方法 (14)4.2程序的基本组成 (14)4.2.1主程序设计 (14)4.2.2定时中断子程序设计 (15)结论 (20)致谢 (21)参考文献 (22)附录A (23)附录B (24)附录C (30)第1章绪论1.1 选题背景和目的直流电机脉冲宽度调制(Pulse Width Modulation-简称PWM)调速产生于20世纪70 年代中期,最早用于自动跟踪天文望远镜、自动记录仪表等的驱动,后来由于晶体管器件水平的提高及电路技术的发展, PWM 技术得到了高速发展,各式各样的脉宽调速控制器,脉宽调速模块也应运而生,许多单片机也都有了PWM输出功能。
直流电机的PWM冲调速控制技术直流电机的PWM冲(宽度调变)调速控制技术为调节马达转速和方向需要对其直流电压的大小和方向进行控制。
目前,常用大功率晶体管脉宽调制(PWM)调速驱动系统和可控硅直流调速驱动系统两种方式。
可控硅直流(SCR)驱动方式,主要通过调节触发装置控制SCR 的导通角来移动触发脉冲的相位,从而改变整流电压的大小,使直流电机电枢电压的变化易平滑调速。
由于SCR本身的工作原理和电源的特点,导通后是利用交流过零来关闭的,因此,在低整流电压时,其输出是很小的尖峰值的平均值,从而造成电流的不连续性。
由于晶体管的开关响应特性远比SCR 好,因此前者的伺服驱动特性要比后者好得多。
所谓脉冲宽度调变(Pulse Width Modulate 简称 PWM)信号就是一连串可以调整脉冲宽度的信号。
脉宽调变是一种调变或改变某个方波的简单方法。
在它的基本形式上,方波工作周期(duty cycle)是根据输入信号的变化而变化。
在直流电机控制系统中,为了减少流经电机绕线电流及降低功率消耗等目的,常常使用脉冲宽度调变信号(PWM)来控制交换式功率组件的开与关动作时间。
其最常使用的就是借着改变输出脉冲宽度或频率来改变电机的转速。
图1 PWM 脉冲宽度调变信号图若将供应电机的电源在一个固定周期做ON及OFF的控制,则ON的时间越长,电机的转速越快,反之越慢。
此种ON与OFF比例控制速度的方法即称为脉冲宽度调变,ON的期间称为工作周期(duty cycle),以百分比表示。
若直流电机的供应电源电压为10伏特,乘以20%的工作周期即得到2伏特的输出至电机上,不同的工作周期对应出不同电压让直流电机转速产生不同的变化。
若直流电机的供应电源电压为10伏特,乘以20%的工作周期即得到2伏特的输出至电机上,不同的工作周期对应出不同电压让直流电机转速产生不同的变化。
PWM产生器方块图如下图所示,计数器采下数计数器与上数计数器的两种PWM讯号。
直流电机转速的PWM控制测速王鹏辉姬玉燕摘要本设计采用PWM的控制原理来完成对直流电机的正转、反转以及其加速、减速过程的控制,在此过程中是通过单片机的定时器加上中断的方式产生不同时长的高低电压脉冲信号来完成。
并通过霍尔传感器对直流电机的转速进行测定,最后将实时测定的转速数值1602液晶屏上。
关键词:PWM控制直流电机霍尔传感器 1602液晶显示屏 L298驱动一、设计目的:了解直流电机工作原理,掌握用单片机来控制直流电机系统的硬件设计方法,熟悉直流电机驱动程序的设计与调试,能够熟练应用PWM方法来控制直流电机的正反转和加减速,提高单片机应用系统设计和调试水平。
1.1系统方案提出和论证转速测量的方案选择,一般要考虑传感器的结构、安装以及测速范围与环境条件等方面的适用性;再就是二次仪表的要求,除了显示以外还有控制、通讯和远传方面的要求。
本说明书中给出两种转速测量方案,经过我和伙伴查资料、构思和自己的设计,总体电路我们有两套设计方案,部分重要模块也考虑了其它设计方法,经过分析,从实现难度、熟悉程度、器件用量等方面综合考虑,我们才最终选择了一个方案。
下面就看一下我们对两套设计方案的简要说明。
1.2 方案一:霍尔传感器测量方案霍尔传感器是利用霍尔效应进行工作的?其核心元件是根据霍尔效应原理制成的霍尔元件。
本文介绍一种泵驱动轴的转速采用霍尔转速传感器测量。
霍尔转速传感器的结构原理图如图3.1, 霍尔转速传感器的接线图如图3.2 。
传感器的定子上有2 个互相垂直的绕组A 和B, 在绕组的中心线上粘有霍尔片HA 和HB ,转子为永久磁钢,霍尔元件HA 和HB 的激励电机分别与绕组A 和B 相连,它们的霍尔电极串联后作为传感器的输出。
图3.1 霍尔转速传感器的结构原理图方案霍尔转速传感器的接线图缺点:采用霍尔传感器在信号采样的时候,会出现采样不精确,因为它是靠磁性感应才采集脉冲的,使用时间长了会出现磁性变小,影响脉冲的采样精度。
1.3方案二:光电传感器整个测量系统的组成框图如图3.2所示。
从图中可见,转子由一直流调速电机驱动,可实现大转速范围内的无级调速。
转速信号由光电传感器拾取,使用时应先在转子上做好光电标记,具体办法可以是:将转子表面擦干净后用黑漆(或黑色胶布) 全部涂黑,再将一块反光材料贴在其上作为光电标记,然后将光电传感器(光电头) 固定在正对光电标记的某一适当距离处。
光电头采用低功耗高亮度LED ,光源为高可靠性可见红光,无论黑夜还是白天,或是背景光强有大范围改变都不影响接收效果。
光电头包含有前置电路,输出0—5V的脉冲信号。
接到单片机89C51的相应管脚上,通过89C51内部定时/计时器T0、T1及相应的程序设计,组成一个数字式转速测量系统。
图3.2 测量系统的组成框图优点:这种方案使用光电转速传感器具有采样精确,采样速度快,范围广的特点。
综上所述,方案二使用霍尔传感器来作为本设计的最佳选择方案。
二、设计内容:直流电机的正反转控制,转速测定、调节及其显示。
三、工作原理3.1直流电机直流电机的结构由定子和转子两大部分组成。
直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,磁场由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。
运行时转动的部分称为转子,其主要作用产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。
导体受力的方向用左手定则确定。
这一对电磁力形成了作用于电枢的一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。
如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。
当电枢转了180°后,导体cd边转到N极下,导体ab边转到S极下时,由于直流电源供给的电流方向不变,仍从电刷A流入,经过导体cd、ab后,从电刷B流出。
这时导体cd边受力方向变为从右向左,导体ab边受力方向是从左向右,产生的电磁转矩的方向仍为逆时针方向。
因此,电枢一经转动,由于换向器配合电刷对电流的换向作用,直流电流交替地由导体ab和cd流入,使线圈边只要处于N极下,其中通过电流的方向总是由电刷A 流入的方向,而在S极下时,总是从电刷B流出的方向。
这就保证了每个极下线圈边中的电流始终是一个方向,从而形成一种方向不变的转矩,使电动机能连续地旋转。
这就是直流电动机的工作原理。
3.2直流电机驱动L298N可接受标准TTL逻辑电平信号VSS ,VSS可接4.5~7 V电压。
4脚VS接电源电压,V S 电压范围VIH为+2.5~46 V。
输出电流可达2.5 A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
EnA ,EnB接控制使能端,控制电机的停转。
表1是L298N功能逻辑图。
In3,In4的逻辑图与表1相同。
由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停。
二、系统总体框图与原理说明2.1 总体方案原理及设计框图本设计是基于AT89c51为核心的直流调速器,由单片机控制和产生适合要求的PWM信号,该PWM信号通过驱动芯片电路进行直流调速,使输出电压平均值和功率可以按照PWM信号的占空比而变化,从而达到对直流电机调速的目的。
拨码开关输入0~1范围的占空比,用LCD1602作为主液晶显示器,显示输入的占空比控制电机转速,能够实现较好的人机交互。
总体方案设计框图三、硬件电路图3.1 PWM 产生方式(1)PWM (脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。
PWM 可以应用在很多方面,比如:电机调速、温度控制、压力控制等等。
在PWM 驱动控制的调整系统中,按一个固定的频率来接通和断开的电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。
正因为如此,PWM 又被称为“开关驱动装置”。
PWM 波形如图所示:PWM 波形图设电机始终接通电路时,电机转速最大为V max ,设占空比为:Tt D 1则电机的平均转速为D VVa*max其中V a 指的是电机的平均速度,V max 是指电机在全通电时最大速度,D 指的是占空比。
由上面的公式可见,当改变占空比D 时,就可以得到不同电机平均速度V a ,从而达到调速的目的。
(2)单片机片内软件生成PWM 信号PWM 信号采用单片机定时中断的方式软件模拟产生,这样实现比较容易,可以节约硬件成本。
//===================定时器0初始化设置=================== //===================定时器0初始化设置=================== void Time0_Init() //定时器0初始化函数 { TMOD=0x01; //定时器0为工作方式1 TH0=(65536-50000)/256;TL0=(65536-50000)%256; //初始化为定时时间为50ms ET0=1; //开定时器0中断 TR0=1; //开定时器 EA=1; //开总开关}//==================定时器0中断服务程序=============== void timer0_server(void) interrupt 3 {if(PWM_flag) {TH0=(65536-PWM_data*200)/256; TL0=(65536-PWM_data*200)%256; PWM=1;PWM_flag=~PWM_flag;} else{TH1=(45536+PWM_data*200)/256;TL1=(45536+PWM_data*200)%256; //初始化为定时时间为20msPWM=0;PWM_flag=~PWM_flag;}3.2开关模块的设计本设计输入用8位的拨码开关,能产生256数值,每一种数值对应于一个占空比的值,当输入为256时,最大的占空比为99%,能调节到最大的电机转速。
3.3显示模块的设计本设计用LCD1602作为显示模块,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,可以显示两行,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。
3.4直流电机驱动模块本设计采用L298D,传输电信号。
它对输入、输出电信号有良好的隔离作用,然后,驱动直流电机的驱动和调速。
3.3模拟直流电机测速模块555定时器,构成简单的振荡电路,利用电阻和电容充放电原理,是输出端产生方波信号,即可模拟简单的脉冲,代替电机的测速,电机测速一般都是利用霍尔元件测出电机转了多少圈,电机转一圈,霍尔元件检测电机触发的脉冲,则会输出响应的信号。
光电隔离主要用来处理控制部分和强电部分的信号,减少控制部分受强电的干扰。
起隔离作用。
四、程序流程图五、仿真说明(1)初始界面时,拨码开关没有设置PWM,直流电机处于停止状态,LCD1602显示PWM为000%在LCD上显示Motor_Speed为256,这就是在一定时间内低电平的数目。
由于INT0是属于低电平输入中断类型的,根据这个原理再通过计数器T1来记录INT0的中断次数即是转速。
(2)通过调节开关的值,使占空比增大,从而使直流电机的转速变大。
六、心得体会本设计通过仿真基本能实现对直流电机的调速和测速。
课程设计重点在于对单片机的应用与理解,引入了L298D芯片的使用与了解其作用,对掌握驱动直流电机的方法有一定得要求,通过这几天网上的一些相关资料的查阅,顺利的完成了这个课程设计,但在仿真过程中的一些细节问题上还有着纰漏,在电机的测速的模块的编程不够完美。
通过本次课程设计,加深了之前的单片机知识和相应仿真软件的使用。
拓宽了本人的知识面,拓展了视野和思维。
设计一个直流电机调速系统,无论从学习还是实践的角度上来说,对电气专业的大学生都会产生积极的作用,有利于提高学习热情。
附录#include<reg52.h>#include<math.h>#include<string.h>#include<absacc.h>#include<lcd1602.h>//==========================#define uchar unsigned char#define uint unsigned int//==========================#define Data_Bus P1sbit PWM=P3^0;bit PWM_flag=0;unsigned char Time_flag=0;unsigned char DSW_data=0x00;unsigned char PWM_data=0;unsigned int Speed_data=0;unsigned char PWM_Precent[5]={0x30,0x30,'%'};unsigned char MotorSpeed[5]={0x30,0x30,0x30};//--------------------------//------- 函数声明 --------void delay(uint);void delay_ms(unsigned int ii);//1ms延时函数void get_PWM(void);void get_Speed(void);//====================延时子函数========================= void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void delay_ms(unsigned int ii)//1ms延时函数{unsigned int i,x;for (x=0;x<ii;x++){for (i=0;i<200;i++);}}//===================外部中断0初始化程序=============== void Init_int0(void){EX0=1;//开外部中断0IT0=1;//触发EA=1;}//==================外部中断0服务程序===================void Int0_server(void) interrupt 0{EA=0;Speed_data++;EA=1;}//===================定时器0初始化设置===================void Time0_Init() //定时器0初始化函数{TMOD=0x01; //定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; //初始化为定时时间为50msET0=1; //开定时器0中断TR0=1; //开定时器EA=1; //开总开关}//==================定时器0中断服务程序===============void Time0_Int() interrupt 1 //定时器0中断子函数{TH0=(65536-50000)/256;TL0=(65536-50000)%256; //初始化为定时时间为50msTime_flag++;if(Time_flag==20){Time_flag=0;get_Speed();}}//====================定时器1初始化设置===============计算方波数void init_timer1(void){TMOD|=0x10; //定时器1为工作方式1 16bitTH1=0xFF;TL1=0xFE;ET1=1; //开定时器1中断TR1=1; //开定时器EA=1; //开总开关}//==================定时器1中断服务程序=============== void timer1_server(void) interrupt 3{if(PWM_flag){TH1=(65536-PWM_data*200)/256;TL1=(65536-PWM_data*200)%256;PWM=1;PWM_flag=~PWM_flag;}else{TH1=(45536+PWM_data*200)/256;TL1=(45536+PWM_data*200)%256; //初始化为定时时间为20ms PWM=0;PWM_flag=~PWM_flag;}}//==================get_PWM============================void get_PWM(void){DSW_data=Data_Bus;if(DSW_data==0x00){TR1=0;PWM=0;PWM_Precent[0]=0x30;PWM_Precent[1]=0x30;}else{PWM_data=DSW_data*100/256;PWM_Precent[0]=PWM_data/10+0x30;PWM_Precent[1]=PWM_data%10+0x30;TR1=1;}}//==================get_Speed============================ void get_Speed(void){MotorSpeed[0]=Speed_data/100+0x30;MotorSpeed[1]=Speed_data/10%10+0x30;MotorSpeed[2]=Speed_data%10+0x30;Speed_data=0;}//------ 主函数 -----------void main(){PWM=0;get_PWM();Init_int0();Time0_Init();init_timer1();LCD_init(); //LCD1602初始化LCD_write_command(0x01);//LCD清屏delay_ms(10);DisplayChar(0,1,"PWM_Precent:");DisplayChar(13,1,PWM_Precent);DisplayChar(0,0,"Motor_Speed:");DisplayChar(13,0,MotorSpeed);while(1){get_PWM();DisplayChar(13,1,PWM_Precent);DisplayChar(13,0,MotorSpeed); }}。