基于单片机的直流电机调速电路设计.
目录基于MC51单片机的直流电机PWM调速系统 (1)摘要 (1)Abstract (2)1前言 (3)1.1数字直流调速的意义 (3)1.2研究现状综述 (3)1.2.1电气传动的发展现状 (3)1.2.2微处理器控制直流电机发展现状 (4)1.3直流电动机调速概述 (5)1.3.1直流电机调速原理 (5)1.3.2直流调速系统实现方式 (6)2系统总体方案论证 (7)2.1系统方案比较与选择 (7)2.2系统方案描述 (8)3硬件电路的模块设计 (8)3.1逻辑延时电路方案论证设计 (8)3.2驱动电路方案论证设计 (9)3.2.1驱动电路方案、参数描述 (9)3.2.2 IR2110驱动电路中IGBT抗干扰设计 (11)3.2.2 IR2110功率驱动介绍 (12)3.2.2.1 IR2100内部结构原理图及管脚说明 (12)3.2.2.2 IR2110的自举电路 (13)3.2.2.3 IGBT H桥驱动电路原理 (14)3.3隔离电路方案论证设计 (16)3.3.1 TLP250光耦隔离 (16)3.3.2 PC817数据采集隔离 (17)3.4数据采集、过压反馈保护 (18)3.4.1数据采集、过压反馈方案设计 (18)3.4.2 TL431介绍 (19)3.5稳压可调电源设计 (19)4软件设计 (20)4.1 PWM实现方式方案论证 (20)4.2程序流程图 (21)4.3主要程序设计分析 (23)4.3.1定时器0中断服务函数 (23)4.3.2占空比调节函数 (23)5调试结果描述 (24)6结论 (25)致谢 (27)参考文献 (27)附录1 整个系统电路原理图附录2 整个系统PCB电路图附录3 稳压电源原理图附录4 稳压电源PCB图附录5 元器件清单附录6 系统印制板图基于MC51单片机的直流电机PWM调速系统摘要本文介绍一种基于MC51单片机控制的PWM直流电机脉宽调速系统。
系统以廉价的MC51单片机为控制核心,以直流电机为控制对象。
从系统的角度出发,对电路进行总体方案论证设计,确定电路各个的功能模块之间的功能衔接和接口设置,详细分析了各个模块的方案论证和参数设置。
整个系统利用51单片机的定时器产生10K左右的PWM脉冲,通过带有功率驱动作用的TLP250光耦实现控制单元与驱动单元的强弱电隔离,采用2片IGBT和MOSFET等一类电压型功率开关管专用驱动芯片IR2110,驱动IGBT—FGA25N120构成的H桥电路实现对直流电机的调速,利用TL431、线性光耦PC817和AD0832构成的电压采集单元实现系统的闭环控制,提高整个系统的智能化、自动化水平,为工业生产应用提供可能。
关键字MC51,PWM,光耦隔离,IR2110,IGBTThe PWM speed regulating system of DC motor based on MC51AbstractThe thesis introduces a PWM speed regulating system of D.C motor based on MC51 microcontroller. The system is designed on the affordable MC51 mircocontroller for the D.C. motor. From the systematic prespective, the thesis describes the circuit design and its comprehensive evaluation,which determines how to do with the functional linkage and interface between functional modules in the electric circuit. Besides, the evaluation of each module and the involved parameters are fully explained in the thesis. The system uses MC51’s timer to generate 10k pluse and uses TLP250 optical coupler to realize the strong and weak optoelectronic isolation between the control units and driving units. The implement of the speed regulation by the H-bridge circuits which are constructed by voltage-based power switching transistors and specific IR2110, IGBT- FGA25N120 Driving Chips, including two IGBT and MOSFET chips. And the V oltage Acquisition Collection of TL431, PC817 Linear Opticcoupler and AD0832 is desgined to do the closed-loop control in the system. The above considerations finally help to improve intelligentization and automation of the overall system and give the possibility to the industrial application.Keyword MC51, PWM, optical coupler’s isolation, IR2110, IGBT1前言1.1数字直流调速的意义现在电气传动的主要方向之一是电机调速系统采用微处理器实现数字化控制。
从上世纪80年代中后期起,世界各大电气公司如ABB、通用、西屋、西门子等都在竞相开发数字式调速传动装置,经过二十几年的发展,当前直流调速已发展到一个很高的技术水平:功率元件采用可控硅;控制板采用表面安装技术;控制方式采用电源换相、相位控制[1]。
特别是采用了微处理器及其他先进电力电子技术,使数字式直流调速装置在精度的准确性、控制性能的优良性和抗干扰的性能有很大的提高和发展,在国内外得到广泛的应用。
数字化直流调速装置作为目前最新控制水平的传动方式显示了强大优势。
全数字化直流调速系统不断升级换代,为工程应用和工业生产提供了优越的条件。
采用微处理器控制,使整个调速系统的数字化程度,智能化程度有很大改观;采用微处理器控制,使调速系统在结构上简单化,可靠性提高,操作维护变得简捷,电机稳态运行时转速精度等方面达到较高水平。
由于微处理器具有较佳的性价比,所以微处理器在工业过程及设备控制中得到日益广泛的应用。
近年来,尽管交流调速系统发展很快,但是直流电机凭借其良好的启动、制动性能,在金属切削机床、轧钢机、海洋钻机、挖掘机、造纸机、矿井卷扬机、电镀、高层电梯等需要广泛范围内平滑调速的高性能可控电力拖动领域中仍得到了广泛的应用。
现阶段,我国还没有自主的全数字化直流调速控制装置生产商,而国外先进的控制器价格昂贵,且技术转让受限,为此研究及更好的使用国外先进的控制器,吸收国外先进的数字化直流电机调速装置的优点,具有重要的实际意义和重大的经济价值。
1.2研究现状综述1.2.1电气传动的发展现状20世纪70年代以来,直流电机传动经历了重大的技术、装备变革。
整流器的更新换代,以晶闸管整流装置取代了习用已久的直流发电机电动机组及水银整流装置使直流电气传动完成了一次大的跃进[1]。
同时,高集成化、小型化、高可靠性及低成本成为控制的电路的发展方向。
使直流调速系统的性能指标大幅提高,应用范围不断扩大。
直流调速技术不断发展,走向成熟化、完善化、系列化、标准化,在可逆脉宽调速、高精度的电气传动领域中仍然难以替代[1]。
早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低[2]。
随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。
由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。
所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。
所以,直流传动控制采用微处理器实现全数字化,使直流调速系统进入一个崭新的阶段。
1.2.2微处理器控制直流电机发展现状微处理器诞生于上个世纪七十年代,随着集成电路大规模及超大规模集成电路制造工艺的迅速发展,微处理器的性价比越来越高。
此外,由于电力电子技术的发展,制作工艺的提升,使得大功率电子器件的性能迅速提高。
为微处理器普遍用于控制电机提供了可能,利用微处理器控制电机完成各种新颖的、高性能的控制策略,使电机的各种潜在能力得到充分的发挥,使电机的性能更符合工业生产使用要求[2],还促进了电机生产商研发出各种如步进电机、无刷直流电机、开关磁阻电动机等便于控制且实用的新型电机,使电机的发展出现了新的变化。
对于简单的微处理器控制电机,只需利用用微处理器控制继电器、电子开关元器件,使电路开通或关断就可实现对电机的控制。
现在带微处理器的可编程控制器,已经在各种的机床设备和各种的生产流水线中普遍得到应用,通过对可编程控制器进行编程就可以实现对电机的规律化控制。
对于复杂的微处理器控制电机,则要利用微处理器控制电机的电压、电流、转矩、转速、转角等,使电机按给定的指令准确工作。
通过微处理器控制,可使电机的性能有很大的提高。
目前相比直流电机和交流电机他们各有所长,如直流电机调速性能好,但带有机械换向器,有机械磨损及换向火花等问题;交流电机,不论是异步电机还是同步电机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便而经济地调节[2]。
高性能的微处理器如DSP(DIGITAL SIGNAL PROCESSOR即数字信号处理器)的出现,为采用新的控制理论和控制策略提供了良好的物质基础,使电机传动的自动化程度大为提高。
在先进的数控机床等数控位置伺服系统,已经采用了如DSP等的高速微处理器,其执行速度可达数百万兆以上每秒,且具有适合的矩阵运算[2]。
c r c nR U T C C C φφ=-内1.3直流电动机调速概述1.3.1直流电机调速原理直流电动机根据励磁方式不同,直流电动机分为自励和他励两种类型。
基于单片机的直流电机调速系统设计
直流电机转速 :
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式 U=Ea+Ia(Ra+Rc)……………式1
式1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷 接触电阻的总和;Rc是外接在电枢回路中的调节电阻
由此可得到直流电机的转速公式为:
n=(Ua-IR)/CeΦ ………………………式2
式2中, Ce为电动势常数, Φ是磁通量。 由1式和2式得
n=Ea/CeΦ ……………………………式3
由式3中可以看出, 对于一个已经制造好的电机, 当励磁电压和 负载转矩恒定时, 它的转速由回在电枢两端的电压Ea决定, 电 枢电压越高, 电机转速就越快, 电枢电压降低到0V时, 电机就 停止转动;改变电枢电压的极性, 电机就反转。
PWM脉宽调速
PWM(脉冲宽度调制)是通过控制固定电压的 直流电源开关频率, 改变负载两端的电压, 从 而达到控制要求的一种电压调整方法。在PWM 驱动控制的调整系统中, 按一个固定的频率 来接通和断开电源, 并且根据需要改变一个 周期内“接通”和“断开”时间的长短。通 过改变直流电机电枢上电压的“占空比”来 达到改变平均电压大小的目的, 从而来控制 电动机的转速。也正因为如此, PWM又被称为 “开关驱动装置”。
, 软件简单。但每个按键需要占用一个输入口线, 在 按键数量较多时, 需要较多的输入口线且电路结构复杂, 故此种键盘适用于按键较少或操作速度较高的场合。
数码管显示部分 本设计使用的是一种比较常用的是四位数码 管, 内部的4个数码管共用a~dp这8根数据线, 为使用提供了方便, 因为里面有4个数码管, 所以它有4个公共端, 加上a~dp, 共有12个引 脚, 下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)
基于stm32单片机的直流电机调速系统设计
基于stm32单片机的直流电机调速系统设计
本文介绍一种基于STM32单片机的直流电机调速系统设计,主要包括硬件电路设计和软件程序设计两部分。
硬件电路设计:
该电机调速系统的主要硬件电路包括电源模块、STM32单片机控制电路、直流电机驱动电路和反馈电路。
1. 电源模块
电源模块包括AC/DC变换模块和稳压模块,用于将输入的AC电压转换为适宜单片机和电机工作的DC电压。
2. STM32单片机控制电路
STM32单片机控制电路包括主控芯片STM32单片机、晶振、复位电路和下载程序电路等。
3. 直流电机驱动电路
直流电机驱动电路包括电机驱动芯片(如L298N)和电机,用于控制电机的转
速和方向。
4. 反馈电路
反馈电路包括编码器和光电传感器等,用于实现电机转速的反馈和闭环控制。
软件程序设计:
该电机调速系统的软件程序采用C语言编写,主要包括定时器计数、PWM输出控制、编码器读取、PID算法控制等模块。
1. 定时器计数
通过STM32单片机内部定时器计数来实现电机转速的测量和控制。
2. PWM输出控制
采用STM32单片机内部PWM输出控制模块控制电机的转速,并实现电机方向的控制。
3. 编码器读取
通过编码器读取电机的转速信息,并反馈到单片机进行控制和显示。
4. PID算法控制
采用PID(比例、积分、微分)算法控制电机的转速,实现闭环控制,提高控制精度。
总之,基于STM32单片机的直流电机调速系统设计,既可以提高电机运行的效率和精度,又可以简化电路结构和减小系统成本,具有较好的应用前景。
基于单片机的直流电机调速系统的课程设计
一、总体设计概述本设计基于8051单片机为主控芯片,霍尔元件为测速元件, L298N为直流伺服电机的驱动芯片,利用 PWM调速方式控制直流电机转动的速度,同时可通过矩阵键盘控制电机的启动、加速、减速、反转、制动等操作,并由LCD显示速度的变化值。
二、直流电机调速原理根据直流电动机根据励磁方式不同,分为自励和它励两种类型,其机械特性曲线有所不同。
但是对于直流电动机的转速,总满足下式:式中U——电压;Ra——励磁绕组本身的内阻;——每极磁通(wb );Ce——电势常数;Ct——转矩常数。
由上式可知,直流电机的速度控制既可以采用电枢控制法也可以采用磁场控制法。
磁场控制法控制磁通,其控制功率虽然较小,但是低速时受到磁场和磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制,而且由于励磁线圈电感较大,动态响应较差,所以在工业生产过程中常用的方法是电枢控制法。
电枢控制法在励磁电压不变的情况下,把控制电压信号加到电机的电枢上来控制电机的转速。
传统的改变电压方法是在电枢回路中串连一个电阻,通过调节电阻改变电枢电压,达到调速的目的,这种方法效率低,平滑度差,由于串联电阻上要消耗电功率,因而经济效益低,而且转速越慢,能耗越大。
随着电力电子的发展,出现了许多新的电枢电压控制法。
如:由交流电源供电,使用晶闸管整流器进行相控调压;脉宽调制(PWM)调压等。
调压调速法具有平滑度高、能耗低、精度高等优点,在工业生产中广泛使用,其中PWM应用更广泛。
脉宽调速利用一个固定的频率来控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上的电压的“占空比”来改变平均电.压的大小,从而控制电动机的转速,因此,PWM又被称为“开关驱动装置”。
如果电机始终接通电源是,电机转速最大为Vmax,占空比为D=t1/t,则电机的平均转速:Vd=Vmax*D,可见只要改变占空比D,就可以调整电机的速度。
平均转速Vd与占空比的函数曲线近似为直线。
基于单片机控制的直流电机调速系统设计
基于单片机控制的直流电机调速系统设计一、引言直流电机在工业自动化领域中广泛应用,其调速系统的设计是实现自动控制的关键。
本文将介绍一种基于单片机控制的直流电机调速系统设计方案,主要包括电机原理、硬件设计、软件设计以及实验结果与分析等内容。
二、电机原理直流电机是一种将直流电能转换为机械能的装置,其原理基于电磁感应和安培定律。
电机由定子和转子两部分组成,定子上绕有恒定电流,产生磁场,而转子上带有电流,与定子的磁场互相作用,产生力矩使电机旋转。
三、硬件设计1.单片机选择在本设计中,选择了一款功能强大、性能稳定的单片机作为控制核心,例如使用ST C89C51单片机。
该单片机具有丰富的GP IO口和定时器/计数器等外设,适合进行电机控制。
2.电机驱动电路设计电机驱动电路主要包括功率电源、运放电路和驱动电路。
其中,功率电源为电机提供稳定的直流电源,运放电路用于信号放大和滤波,驱动电路则根据控制信号控制电机的转速。
3.速度测量电路设计为了实时监测电机的转速,需要设计速度测量电路。
常见的速度测量电路包括光电编码器、霍尔传感器等,通过测量转子上感应物体的变化来获得电机的转速信息。
四、软件设计1.程序框架软件设计的目标是实现对电机转速的控制和监测。
基于单片机的软件设计主要包括主程序的编写、中断服务程序的编写以及定时器的配置等。
2.控制算法常见的直流电机调速算法包括电压调速法、P WM调速法等。
根据实际需求选择合适的算法,并根据测量到的转速信号进行反馈控制,实现对电机转速的精确控制。
五、实验结果与分析设计完成后,进行实验验证。
通过设置不同的转速需求,观察电机的实际转速与设定转速的误差,并分析误差原因。
同时还可以测试电机在不同负载下的转速性能,以评估系统的稳定性和鲁棒性。
六、总结基于单片机控制的直流电机调速系统设计是实现自动控制的重要应用。
本文介绍了该系统的硬件设计和软件设计方案,并展示了实验结果。
通过系统实现电机转速的精确控制,可以广泛应用于工业自动化领域。
基于单片机的直流电机PWM调速控制系统的设计
基于单片机的直流电机PWM调速控制系统的设计第一章:前言1.1前言:直流电机的定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。
近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过PWM方式控制直流电机调速的方法就应运而生。
采取传统的调速系统主要有以下的缺陷:模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。
而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。
并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。
随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。
1.2本设计任务:任务: 单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:功能主要包括:1)直流电机的正转;2)直流电机的反转;3)直流电机的加速;4)直流电机的减速;5)直流电机的转速在数码管上显示;6)直流电机的启动;7)直流电机的停止;第二章:总体设计方案总体设计方案的硬件部分详细框图如图一所示。
示数码管显PWM单片机按键控制电机驱动基于单片机的直流电机PWM调速控制系统的设计键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。
基于单片机的PWM直流电机调速系统设计
基于单片机的PWM直流电机调速系统设计摘要本文主要介绍基于单片机的PWM直流电机调速系统的设计和实现方法。
该系统通过利用单片机控制器控制电机的启动、停止、正转和反转等操作,同时实现对电机速度的调节。
在电机工作时,单片机通过PWM技术控制电机的电压和电流,从而达到调节电机转速的效果。
系统设计思路为了实现电机的调速功能,本系统采用基于单片机控制器和PWM技术的电机驱动控制方案。
系统整体分为硬件和软件两个部分,硬件部分主要包括电机、电路组成和控制器,而软件部分则是单片机程序设计。
电路组成系统电路主要由电源、单片机控制器、电机驱动模块和电机组成。
其中,电源主要用于系统供电,单片机控制器主要用于控制电机驱动模块的输出,电机驱动模块负责将单片机控制器输出的PWM信号转换为直流电机可控的电流。
单片机程序设计系统中需要对单片机进行程序设计,以实现对电机的启动、停止、正转和反转等操作,同时实现电机的调节功能。
程序设计主要包括以下几个部分:1.系统初始化:包括系统时钟初始化、输入输出口初始化以及中断配置等。
2.电机控制:控制电机的启动、停止、正转和反转等操作。
3.电机调速:利用PWM技术实现对电机的调节功能。
4.数据处理:对输入的调节参数进行处理,然后转换成PWM占空比输出到电机。
PWM技术原理PWM技术是通过控制模拟信号的占空比,来达到模拟信号的数字化的目的。
具体而言,通过控制PWM信号的占空比,从而实现对电机输出电压和电流的控制,从而达到对电机转速的调节。
系统实现步骤本系统的实现步骤主要包括以下几个部分:电机接线首先,需要根据电机的参数和工作电压要求,正确接线电机。
接线时需要注意电机正反转的问题,以及电路的安全性问题。
程序编写根据我们的设计思路,需要编写相应的单片机程序。
程序编写包括系统初始化、电机控制、电机调速和数据处理等部分。
编写程序时需要考虑到各参数变化的初始值和变化范围,以及程序的鲁棒性和可调节性。
系统调试在程序编写完成后,需要对整个系统进行调试。
基于STM32的直流电机PID调速系统设计
基于STM32的直流电机PID调速系统设计一、引言直流电机调速系统是现代工业自动化系统中最常用的电机调速方式之一、它具有调速范围广、响应快、控制精度高等优点,被广泛应用于电力、机械、石化、轻工等领域。
本文将介绍基于STM32单片机的直流电机PID调速系统的设计。
二、系统设计直流电机PID调速系统主要由STM32单片机、直流电机、编码器、输入和输出接口电路等组成。
系统的设计流程如下:1.采集反馈信号设计中应通过编码器等方式采集到反馈信号,反应电机的转速。
采集到的脉冲信号经过处理后输入给STM32单片机。
2.设计PID算法PID调节器是一种经典的控制算法,由比例(P)、积分(I)和微分(D)三个部分组成,可以根据实际情况调整各个参数的大小。
PID算法的目标是根据反馈信号使电机达到期望的转速。
3.控制电机速度根据PID算法计算出的偏差值,通过调节电机的占空比,实现对电机速度的控制。
当偏差较大时,增大占空比以加速电机;当偏差较小时,减小占空比以减速电机。
4.界面设计与控制设计一个人机交互界面,通过该界面可以设置电机的期望转速以及其他参数。
通过输入接口电路将相应的信号输入给STM32单片机,实现对电机的远程控制。
5.系统保护在电机工作过程中,需要保护电机,防止出现过流、超速等问题。
设计一个保护系统,能够监测电机的工作状态,在出现异常情况时及时停止电机工作,避免损坏。
6.调试与优化对系统进行调试,通过实验和测试优化PID参数,以获得更好的控制效果。
三、系统实现系统实现时,首先需要进行硬件设计,包括STM32单片机的选型与外围电路设计,以及输入输出接口电路的设计。
根据实际情况选择合适的编码器和直流电机。
接着,编写相应的软件代码。
根据系统设计流程中所述,编写STM32单片机的控制程序,包括采集反馈信号、PID算法实现、控制电机速度等。
最后,进行系统调试与优化。
根据系统的实际情况,调试PID参数,通过实验和测试验证系统的性能,并进行优化,以实现较好的控制效果。
基于单片机的pid电机调速控制系统的硬件电路设计
下面是一个基于单片机的PID电机调速控制系统的硬件电路设计示例:
电路中使用了一个STM32F103C8T6微控制器,该MCU内置了PWM输出、ADC输入、定时器计数等功能,非常适合用于电机调速控制。
电机驱动采用了L298N模块,可以
控制两个直流电机的转速和方向。
另外,根据需要,可以加入光电编码器或霍尔传感
器等来获取电机的转速反馈信号。
电路中还使用了一个LCD1602液晶屏来显示电机转速、目标速度、PWM输出等信息,方便用户进行调试和监控。
此外,还可以使用按键开关来控制电机的启停和目标速度
的调节。
在硬件电路设计完成后,需要编写单片机程序来实现PID控制算法、PWM输出、
ADC采样等功能。
通常可以使用Keil、IAR等集成开发环境来编写和调试程序,也可
以使用Arduino IDE等编程环境进行开发。
这只是一个简单的PID电机调速控制系统的硬件电路设计示例,具体的实现方式和细
节可能会因应用场景和需求的不同而有所不同。
基于51单片机的PWM直流电机调速
基于51单片机的PWM直流电机调速在现代社会,PWM直流电机已经成为各类机械设备不可或缺的动力源。
为了更好地控制电机的转速和输出功率,我们需要进行PWM调速操作。
本文将简要介绍如何基于51单片机实现PWM直流电机的调速。
一、PWM调速原理PWM调速是一种通过改变电机供电电压的占空比来调整电机转速和功率的方法。
当一个周期内高电平所占的时间比较短时,电机得到的平均电流和平均转矩也相应减小,电机的速度和功率也随之降低。
反之,当高电平所占的时间比较长时,电机得到的平均电流和平均转矩也相应增大,电机的速度和功率也随之提高。
因此,通过改变PWM信号的高电平占空比,可以实现直流电机的调速、调功等功能,极大地提高了电机的效率和可控性。
二、硬件电路搭建根据上述PWM调速原理,我们需要搭建一个控制板,将51单片机的PWM输出与直流电机相连。
具体电路如下:1、选择合适的电源供电,一般为12V/24V直流电源。
2、使用L298N模块作为直流电机驱动模块,将模块的电源接到电源供电上,将模块的IN1和IN2引脚分别接到51单片机的P1^0和P1^1引脚上,将直流电机的正负极分别接到模块的OUT1和OUT2引脚上。
3、将51单片机的P1^2引脚连接到一个脉冲宽度计波形滤波器(LCF)的输入端,并将输出端接到L298N模块的ENA引脚上。
4、调整脉冲宽度计波形滤波器的参数,以达到合理的PWM输出波形。
5、建立一个按键,将按键的一端接到51单片机的P3^2引脚上,将另一端接到单片机的地端。
6、根据需要进行其他接线。
三、软件程序设计根据上述硬件电路,我们需要进行相应的软件程序设计,以实现基于51单片机的PWM 直流电机调速。
以下是程序设计的主要步骤:1、在程序中定义需要使用的IO口。
2、调用定时器初始化程序,设置定时器的时钟频率、计数器值和工作方式等参数。
3、编写一个PWM输出函数,实现对PWM信号的输出。
4、编写一个ADC采样函数,读取ADC转换器的值,并根据采样值输出一定的PWM信号。
基于C51单片机的直流电机PWM调速控制(包含原理图及C源代码)
基于C51单片机的直流电机PWM调速控制--SQ这是最近一阶段自己学习所获,现分享与大家。
这里采用A T89C52单片机做主控制芯片,实现两路直流电机的PWM调速控制,另外还可以实现转向、显示运行时间、显示档位等注:考虑小直流电机自身因素,调速范围仅设有四级电路原理图:C语言程序源代码:/******************** 硬件资源分配*********************/数码管:显示电机状态(启停、正反、速度)、运行时间、是否转弯按键:K4 启动/暂停K3 正反转/转弯允许K2 加速/左转/运行时间清零K1 减速/右转/停止定时器:T0 数码管动态显示,输出PWMT1 运行时间记录********************************************************//*******主程序文件PWM.c******/#include <reg52.h>#include "Afx.h"#include "Config.c"#define CIRCLE 5 //脉冲周期//按键定义uchar key,key_tmp=0, _key_tmp=0;//显示定义uchar LedState=0xF0; //LED显示标志,0xF0不显示,Ox00显示uchar code LED_code_d[4]={0xe0,0xd0,0xb0,0x70}; //分别选通1、2、3、4位uchar dispbuf[4]={0,0,0,0}; //待显示数组uchar dispbitcnt=0; //选通、显示的位uchar mstcnt=0;uchar Centi_s=0,Sec=0,Min=0; //分、秒、1%秒//程序运行状态标志bit MotState=0; //电机启停标志bit DirState=0; //方向标志0前,1后uchar State1=-1;uchar State2=-1;uchar State3=0;uchar State4=-1;uchar LSpeed=0;uchar RSpeed=0;//其他uint RunTime=0;uint RTime_cnt=0;uint LWidth;uint RWidth; //脉宽uint Widcnt=1;uint Dispcnt;//函数声明void key_scan(void);void DisBuf(void);void K4(void);void K3(void);void K2(void);void K1(void);void disp( uchar H, uchar n );void main(void){P1|=0xF0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=0xFC;TL0=0x66; //T0,1ms定时初值TH1=0xDB;TL1=0xFF; //T1,10ms定时初值TR0=1;Widcnt=1;while(1){key_scan();switch(key){case 0x80: K1(); break;case 0x40: K2(); break;case 0x20: K3(); break;case 0x10: K4(); break;default:break;}key=0;DisBuf();LWidth=LSpeed;RWidth=RSpeed;}}//按键扫描**模拟触发器防抖void key_scan(void){key_tmp=(~P3)&0xf0;if(key_tmp&&!_key_tmp) //有键按下{key=(~P3)&0xf0;}_key_tmp=key_tmp ;}//按键功能处理/逻辑控制void K4(void){if(State4==-1){State4=1;TR1=1;dispbuf[3]=1;LedState=0x00; //打开LEDMotState=1; //打开电机LSpeed=1;RSpeed=1; //初速设为1}else if(State4==1){State4=0;TR1=0;MotState=0; //关闭电机}else if(State4==0){MotState=1;if(State3==0){State4=1;TR1=1;}else if(State3==1){LSpeed=2;RSpeed=2;}}}void K3(void){if(State4==1)DirState=!DirState;if(State4==0){if(State3==0){State3=1; //可以转向标志1可以,0不可以TR1=1;dispbuf[3]=9;MotState=1;LSpeed=2;RSpeed=2;}else if(State3==1){State3=0;TR1=0;dispbuf[3]=0;MotState=0;}}}void K2(void){if(State4==1&&LSpeed<4&&RSpeed<4){LSpeed++;RSpeed++;}else if(State4==0){if(State3==0){//State4=-1;//LedState=0xF0;MotState=0;Sec=0;Min=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=0;LSpeed=2;RSpeed++;}}}void K1(void){if(State4==1&&LSpeed>1&&RSpeed>1){LSpeed--;RSpeed--;}else if(State4==0){if(State3==0){State4=-1;LedState=0xF0;MotState=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=1;LSpeed++;RSpeed=2;}}}//显示预处理void DisBuf(void){if(RTime_cnt==100){Sec++;RTime_cnt=0;}if(Sec==60){Min++;Sec=0;}if(State4==1){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;if(!DirState) //正转dispbuf[3]=LSpeed;if(DirState) //反转dispbuf[3]=LSpeed+4;}if(State4==0){if(State3==0){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;dispbuf[3]=0;}if(State3==1){dispbuf[0]=RSpeed;dispbuf[1]=LSpeed;dispbuf[2]=Min;dispbuf[3]=9;}}}//LED驱动void disp( uchar H, uchar n ){P1=n;P1|=LedState ;P1|=LED_code_d[H];}//T0中断**显示/方波输出void Time_0() interrupt 1{TH0=0xFC;TL0=0x66;Widcnt++;Dispcnt++;//电机驱动/方波输出if(Widcnt>CIRCLE){Widcnt=1;}if(Widcnt<=LWidth)LMot_P=!DirState&&MotState;elseLMot_P=DirState&&MotState;LMot_M=DirState&&MotState;if(Widcnt<=RWidth)RMot_P=!DirState&&MotState;elseRMot_P=DirState&&MotState;RMot_M=DirState&&MotState;//显示if(Dispcnt==5){disp(dispbitcnt,dispbuf[dispbitcnt]);dispbitcnt++;if(dispbitcnt==4){dispbitcnt=0;}Dispcnt=0;}}//T1中断**运行时间void Time_1() interrupt 3{TH1=0xDB;TL1=0xFF;RTime_cnt++;}/******配置文件Afx.h******/#ifndef _AFX_#define _AFX_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/******IO配置文件Config.c******/#ifndef _Config_#define _Config_#include "Afx.h"#include <reg52.h>//显示定义sbit led=P3^2;//电机引脚定义sbit LMot_P=P2^2; sbit LMot_M=P2^3; sbit RMot_P=P2^0; sbit RMot_M=P2^1;#endif。
