李 娟,马利祥
(安徽信息工程学院电气与电子工程学院,安徽 芜湖 241199)
近年来,随着电子技术的发展,直流电机的成本大大降低。由于直流电机具有优良的启动、调速等性能,其应用越来越广泛[1-5]。同时,直流电机还具有比较简单的控制理论[6]。目前,直流电机调速已成为一项应用性很强的技术,用其设计的低成本、易携带的家用电器受到欢迎[7-11]。传统直流电机调速控制方法存在电机调速时稳定性差的缺点[12-15]。而现在虽然有大量先进的控制方法,例如滑模控制、模糊控制、神经网络控制、遗传算法控制以及灰色理论控制等[16],但这些方法的计算量大、过程相对复杂。因此,本文设计了一种基于51 单片机的直流电机调速控制和测速系统。该系统不仅稳定性好,而且电路简单、可靠性强。
本文所设计的基于51 单片机的直流电机调速控制和测速系统主要包括单片机控制部分、显示电路、按键电路、霍尔元件测速电路、电机驱动电路、复位电路和晶振电路。
本设计以STC89C51 单片机最小系统为控制核心,通过数码管来显示电机的转速挡位和转速,由PNP 型三极管8550 驱动数码管,采用4 个独立式按键分别控制电机的起动/暂停、加速、减速和复位。数码管的位选位由单片机的P2口控制;数码管的段选位由单片机的P0口控制,并用三极管8550 驱动电机控制直流电机的转动,通过霍尔传感器测速。单片机控制可实现直流电机的加减速。对于不同型号的单片机,只需要相应地改变地址即可。硬件系统具有很好的通用性,以及很高的实际使用价值。系统总体设计如图1 所示。
图1 系统总体设计图Fig.1 Overall system design
控制电路主要由单片机控制,通过程序使单片机发出脉冲宽度调制(pulse width modulation,PWM)脉冲来实现对驱动的控制。新一代的单片机增加了很多功能,其中包括PWM 功能。单片机通过初始化设置,使其能自动发出PWM 脉冲波,只有在改变占空比的时候CPU 才干预。
显示电路如图2 所示。LED 数码管是一种半导体发光器件。这种半导体器件是发光二极管,当给了不同发光二极管的管脚相对的电流,就会使二极管发光,从而显示出数字。可以显示的内容包括:时间、日期、距离等可以用数字表示的参数。
图2 显示电路Fig.2 Display circuit
本文采用了四位数码管,用动态驱动显示具体的数值,即将数码管的8 个显示段“a、b、c、d、e、f、g、dp”的同名端连在一起;然后给每个数码管的公共端设置位选通控制电路,通过各自独立的I/O 线控制。当单片机的P0口输出字形码时,数码管就都能够接收到相同的字形码。数码管会显示出哪个字形码,是由单片机的21 引脚到24 引脚位选通端控制的。因此,只要将需要显示的数码管的选通控制打开,该位就显示出字形,而没有选通的数码管则不会亮。
通过分时轮流控制各个数码管的位选通端。每个数码管会轮流显示,也就是动态驱动。发光二极管单元按连接方式分为共阳极数码管和共阴极数码管。当数码管中的发光二极管的阳极全部连接在一起作为公共端,即为共阳极数码管。共阳极数码管的公共端接+5 V 直流电源。当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。
按键电路如图3 所示。本文所设计的电路有4 个独立按键,如图3 中3 个按键分别为起动/暂停键K1(用来控制电机的起动或暂停)、电机转速挡位加键K2和电机转速挡位减键K3。这3 个独立按键一端接地,另一端接单片机的I/O 口。当按键按下以后,对应的I/O 口会接收到1 个低电平。单片机通过判断是否接收到低电平来判断对应的按键是否按下,接着执行相应的程序。
图3 按键电路Fig.3 Key circuit
测速电路如图4 所示。
图4 测速电路Fig.4 Speed measuring circuit
该电路采用霍尔元件A44E,1 引脚接电源、2 引脚接地、3 引脚是它的数据输出端。在3 引脚还接了1个上拉电阻,使其电平处于稳定状态。3 引脚的输出端接单片机的P3.3口(13 引脚),用来测量直流电机的转速。霍尔元件是磁敏元件。根据其测速原理,霍尔传感器测速是在被测电机的转轴上装了1 个码盘。码盘的上面装2 个磁体。当电机旋转时,电机的转轴也跟着旋转,轴上装的码盘和码盘上的磁体会跟着一起旋转。旋转时,每当磁体经过霍尔元件,霍尔元件就发出一个信号,经放大整形得到脉冲信号。也有的霍尔元件可以直接输出脉冲信号,发送运算。2 个脉冲的间隔时间就是周期。由周期可以换算出转速,也可计算单位时间内的脉冲数,再换算出转速。通过霍尔元件测量当前直流电机的转速,并通过数码管实时显示。通过对PWM 的调节,可实现对电机转速的控制。
电机驱动电路如图5 所示。
图5 电机驱动电路Fig.5 Motor drive circuit
图5 中:B1为电机,Q5为PNP 三极管,R6为限流电阻,D1为续流二极管。基极电阻接的是单片机的P1,3口(4 引脚)。其为控制端口,用于控制电机的起动和停转。当单片机的P1.3口输出低电平时,三极管导通,电机开始工作。当单片机的P1.3口输出高电平时,三极管截止,电机停转,续流二极管用于消耗掉电机产生的反电动势。
单片机的复位电路如图6 所示。
图6 复位电路Fig.6 Reset circuit
复位由路包含一个独立按键。本设计中的复位电路包含上电复位和手动复位。要使单片机复位,需要给单片机的9 引脚一个持续20 μs 以上的高电平。系统刚上电时,C1电容开始充电,通过一个10 kΩ 的下拉电阻,RST 端口会从低电平变为高电平,持续一段时间的高电平使单片机复位;然后RST 变成低电平。手动复位是通过按下K4按键来实现的。由于手动按键的时间肯定是大于20 μs 的,这段时间内复位引脚接电源,使得单片机复位。
单片机的晶振电路如图7 所示。图7 中:Y1是晶振,一般采用12 MHz 或者11.059 2 MHz 的晶振。本文采用的是12 MHz 的晶振。晶振接到单片机的18 引脚和19 引脚,然后外接2 个30 pF 的电容再接地,用于稳定晶振的正常工作。
图7 晶振电路Fig.7 Crystal resonance circuit
程序功能流程如图8 所示。
图8 程序功能流程图Fig.8 Program function flowchart
图8 中,通过单片机的程序控制,电机可以显示出转速挡位、转速的变化、加速或者减速,以及电机的起动和停止。主要功能包括:起动/暂停键K1用于控制电机的起动和暂停按键;加速按键K2用于控制电机的转速,可以增加电机的当前转速;减速按键K3用于控制电机的转速,可以减缓电机的当前转速。
仿真电路如图9 所示。图9 中,数码管左边第一位表示的是电机转速的挡位,用户可以通过其设置不同的挡位。图9 中右侧两位数码管代表的是电机当前的转速。当电机按加速键从1 挡变为2 挡后,电机会从当前的转速加速到2 挡的一个稳定转速并保持。在这个过程中,数码管会实时显示电机当前的转速。由于仿真软件里没有霍尔元件,所以图9 中后两位不能实时显示电机当前的转速。通过仿真,验证了电路的基本功能。
图9 仿真电路Fig.9 Simulation circuit
试验结果如图10 所示。图10 中,数码管的左边1~5代表电机转速的挡位。本设计中设计了5 挡电机转速,可通过调节独立按键对其挡位进行加减。数码管右边两位实时显示电机的当前转速,图10(a)为1 挡时的稳态转速,其他挡位的稳态转速如图10(b)~图10(e)所示。
图10 试验结果Fig.10 Experimental results
本文以直流电机调速控制和测速系统为研究对象,设计了基于51 单片机的直流电机调速控制和测速系统。该系统实现了直流电机的精确稳定控制,使得电机转速可在1~5 挡内连续可调,并且速度挡位和速度大小可通过程序进行调节。经Keil 程序仿真、Proteus 仿真以及试验,证实了本设计的正确性和可行性。