基于单片机的步进电机驱动控制系统的设计与实现
2018-06-14孙硕夏妍
孙硕 夏妍
(中国电子科技集团公司第五十三研究所,天津 300000)
现阶段在过程控制当中,步进电机作为一项重要的控制元件,因其结构并不复杂却具有众多强大功能,并且成本极低,性能稳定性较高,因此也在包括医疗设备、数控机床等各个领域当中得到了大范围地运用。为了能够更好地完成对步进电机的驱动控制,本文将通过结合单片机的优越性,尝试设计一种基于单片机的步进电机驱动控制系统,希望能够为相关研究人员提供必要参考。
1 步进电机及驱动控制系统的简要概述
工作原理。田聪、苏畅(2017)在其研究著述当中提出,步进电机就是通过在对数字脉冲信号进行直接接收之后转化成应角位移、线位移的一种脉冲电机。脉冲信号频率以及脉冲数直接决定的电动机转速控制及具体的停止位置,因此在步进电机当中并不存在累积误差,但在个别情况下会出现周期性误差[1]。将某一脉冲信号施加给电机之后,其在完成信号接收后将会从与之相对应的步距角转过。因此在对步进电机进行控制的过程中,关键在于对脉冲信号的有效控制。学者付家翰(2017)经过研究发现,利用单片机将控制信号直接发送至步进电机驱动电路当中,便能够高效、精准地控制步进电机,因此本文将采用其研究观点,尝试使用单片机设计一种步进电机驱动控制系统[2]。
2 基于单片机的步进电机驱动控制系统硬件电路设计
2.1 驱动模块
考虑到基于单片机的步进电机驱动控制系统当中,最为关键与重要的部件便是单片机。其性能直接影响着整体驱动控制系统的控制成效,因此本文在对基于单片机的步进电机驱动控制系统进行设计的过程中,选择使用当前市面上一款功耗相对较低但性能较高,且具有8KFlash存储器以及CMOS8位控制器的AT89C51单片机。这一单片机支持在线编程,能够与相关驱动控制系统设计要求相吻合。而在步进电机中,本文通过选用常见的直径为28mm的四相五线减速步进电机,其步进和减速比分别为5.625×1/64以及1/64。前文提及,基于单片机的步进电机驱动控制系统中从单片机当中输出的信号因其功率极小,因此无法直接完成对步进电机的成功驱动,需要额外增加一个驱动电路[3]。
为了能够尽可能减少成本,本文选择使用步进电机专用驱动芯片即ULN2003功放芯片作为单片机下的步进电机驱动控制系统的驱动模块,其提供电流的最高值能够达到0.5A。将其输入端和输出端分别与单片机P1口以及步进电机进行相互连接,同时在按键电路上设有三个按键,用对分别对步进电机的启停、正反转进行有效控制,在脉冲信号下能够有效完成对步进电机的驱动。
2.2 驱动电路
在本文设计的单片机的步进电机驱动控制系统的驱动电路当中,驱动芯片ULN2003引脚7到引脚9均为步进电机细分设置管脚,在与上拉电阻相互连接之后再与拨码开关进行相互连接,进而能够实现包括1/1、1/2等在内的细分模式,共计五种。监视管脚则为引脚1和25,在与上拉电阻以及发光二极管进行相互连接后,再与VCC进行连接。管脚18则是步进电机的使能管脚,管脚21为该步进电机的速度控制管脚,而管脚22则为该步进电机的方向控制管脚。在与单片机芯片相应管脚进行相互连接下,利用接收脉冲,对步进电机的速度以及方向进行相应改变[4]。而管脚19和管脚5则分别为该步进电机中的复位管脚以及调节驱动电流的管脚,与变位进行相互连接。管脚23在与电容进行相互连接后,直接同管脚2、管脚13以及管脚17进行并联接地。A相的电流调节段为管脚15,B相的电流调节端则为管脚11,在与电阻值为0.2Ω的电阻进行相互连接后再进行接地。其余管脚如管脚10、管脚12等则均直接与该步进电机进行相互连接。
除此之外,为了能够使得本文设计的基于单片机的步进电机驱动控制系统具有较高的稳定性以及可靠程度,尽可能防止出现负载变化所导致的过电流,最终使得控制芯片、驱动芯片被烧损的情况。因此在设计过程中,本文额外使用了光电耦合器,用于对信号转换电平进行有效控制,同时将各个器件相互隔离,并对控制信号进行相应整形,使得系统的控制精准性得到了极大提升。而这一模块在发挥自身效用的过程中,需要确保位于光耦两侧电路的电源电路彼此相互独立,因此本文在设计基于单片机的步进电机驱动控制系统的过程中,还在供电模块设计当中分别使用了具有良好独立性的供电电路,确保可以获得预期的隔离成效。在隔离模块的作用下,控制与驱动相互分离,即便负载出现变化导致产生电流冲击,也并不会直接损伤主控制芯片。同时本文还将隔离保护模块分别设置在点击以及驱动信号输出端,对控制信号进行相应保护,避免其出现滞后、畸变等问题。
图1 步进电机正转
图2 步进电机反转
图3 系统初始化运行界面示意图
3 基于单片机的步进电机驱动控制系统软件设计
在对基于单片机的步进电机驱动控制系统的软件进行设计的过程中,首先对上电系统进行初始化设置,将I/O口进行初始化后,立即进入到上位机输入预订信息的读取程序中。而后对定时中断进行查询,对编码器反馈数据进行读取,如果返回值与定值相一致,则直接返回。此时在液晶显示模块当中将自动显示速度值,而如果经过判定之后发现返回值同定值直接不相等,则需要对I/O口电平进行相应调整,使得电机旋转走向发生改变,在精准计算出具体的脉冲个数之后,由使能计数寄存器对计算的脉冲个数进行判定,如果脉冲个数为零,则到达最终目标,此时在液晶显示模块当中将直接显示出最终结果。而如果判定的计算脉冲个数不为零,则需要重新对脉冲个数进行计算,直至使能计数寄存器将其判断为零。
系统中将按键作为输入,单片机的P0.0以及P0.1口分别为控制方向,通过对两个口的状态进行严格查询,即可有效完成对步进电机的运行方向的驱动控制。而电机绕组的通电顺序对步进电机正转、反转起着局定性的作用。当通电顺序为顺时钟旋转的情况下,步进电机将进行正转。反之如果通电顺序为逆时针选装,则此时步进电机将实现反转。所产生的所有状态字统一放置在程序存储器ROM当中,依托查表形式完成状态字的读取。系统一方面控制转向,另一方面需要及时精准地判断出速度,尤其是需要对加速键按下与否进行科学判断,一旦判断加速键被按下,则需要立即作出相应反映。如图1、2所示。
4 仿真测试
为有效保障本身设计的单片机的步进电机驱动控制系统具有较高的使用性能,需要对其进行仿真测试。为此,本文通过专门使用Proteus ISIS这一专业的单片机仿真设计软件,对系统开机界面显示、运行LCD显示以及其他各个方面进行综合测试。该仿真平台带有嵌入式系统交互仿真性能,具有包括键盘、显示系统仿真以及数字、模拟电路等在内的众多功能,同时在其软件内部还集成了示波器、动态指针等电路检测仪器。根据最终的仿真结果显示,单击仿真按键,系统可以进行初始化函数的自动调用,随后顺利进入到开机界面中。当系统正式启动运行后,通过单击按键正转和反转系统,并对系统的启动与停止、加速和减速运转进行调试,仿真测试结果均与相关标准要求相符。利用时钟脉冲,所有按键均可以严格遵循相应规则进行有效驱动控制,顺利将LCD从初始化界面向控制界面进行切换,因此证明了本文所设计的基于单片机的步进电机驱动控制系统基本成功[5]。如图3、4所示。
而由于本文为了能够增加系统的可靠程度和稳定性能,因此在设计过程中增加了光电耦合器以及去抖延迟程序,使得在系统实际运行的过程中,即便键盘出现抖动使得引脚电平出现瞬间下降或是突然提高等情况,系统并不会将其作为一次按键操作,并对相应命令进行执行,因此使得系统的稳定与可靠程度得到明显大幅提升。相比于以往使用触发器构成的控制系统,本文所设计的基于单片机下的步进电机驱动控制系统只通过将外围电路以及驱动电路进行相互结合,便可以有效完成对步进电机转向、启停以及速度等控制工作,其成本更加低廉、操作方便易行并且具有较高的可靠性与通用性。依照具体情况,对端口控制以及编程进行相应变化,便可以对各个相数步进电机进行有效控制。
图4 单片机引脚产生的控制脉冲
5 结语
本文在对基于单片机下的步进电机驱动控制系统进行简要分析研究的过程中,对其工作原理以及总体结构进行明确,立足单片机对步进电机驱动控制系统的驱动模块、驱动电路以及复位电路进行设计。利用相关专业编程程序对基于单片机的步进电机驱动控制系统软件进行设计之后,采用仿真测试的方式验证了系统的有效性与可行性,证明该系统具有较高的通用性和交互性,可以精准高效地完成步进电机的驱动控制。
[1]田聪,苏畅.基于51单片机的步进电机控制系统设计与实现[J].电子测试,2017,(22):5-6+19.
[2]付家翰.基于单片机的高精度步进电机控制研究[J].中国新通信,2017,19(05):150.
[3]陈丽颖.基于TA8435H的煤矿步进电机驱动控制系统的研究[J].煤矿机械,2017,38(01):59-60.
[4]魏印龙,张向阳,孔令扬.基于AT89C51单片机的步进电机控制系统设计[J].科技广场,2016,(08):184-189.
[5]高琴,刘淑聪,彭宏伟.步进电机控制系统的设计及应用[J].制造业自动化,2012,34(O1):150-152.