基于89C51单片机的步进电动机控制系统设计
2014-01-17李美艳
李美艳
(西安外事学院 陕西 西安 710077)
随着数字化技术的快速发展,数字控制技术在工业控制方面得到了极其广泛的应用。由步进电动机组成的控制系统具有结构简单、功能强大、成本低廉等诸多优点,能满足工业控制的基本性能需求和大规模商用要求,因此在工业自动化设备等领域得到了广泛而深入的应用。步进电动机是一种将电脉冲信号转变成对应角位移或线位移的电动机,实际上是一个D/A转换器,也即是一个数字/角度转换器。步进电机的角位移与控制脉冲间实现精确同步,若将步进电机的角位移的改变转换为线位移、位置、体积、流量等物理量的变化,便可实现对它们的控制。步进电动机是数字控制电动机,能将脉冲信号转换成角位移,电动机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,在非超载状态下,根据上述线性关系,再加上步进电动机只有周期性误差而无累积误差,因此步进电机适用于单片机控制。由于步进电动机具有快速启停,可直接接收计算机输出的数字信号以及精度高等显著特点,因此,步进电机现已成为工业过程控制中的重要控制元件之一[1-2]。
由于单片机技术的成熟发展和成本优势,使得使用单片机控制的步进电动机系统具有成本低廉、使用灵活等优点,可以广泛应用在数控机床、机器人,工业自动控制以及各种可控的有定位要求的机械工具等应用领域中[3-4]。
1 步进电动机工作原理
步进电动机按其相位数不同,可以分为二相、三相、四相、五相和六相。本文以三相为例来说明步进电动机的工作原理。电动机的定子上有6个等分的磁极,A——A’、B——B’、C——C’,相对的两个磁极组成一组,每个磁极上都有5个均匀分布的小齿轮。转子上由40个小齿轮均匀分布在圆周上,相邻两齿轮之间的夹角为3600/40=90。当电流通过某一绕组时,该绕组对应的两个磁极即可形成N——S极,并产生磁场,与转子形成磁路。若定子的小齿轮此时与转子的小齿轮没有对齐,则在该磁场的作用下,转子就会进行一定角度的旋转,使转子的小齿轮与定子的小齿轮进行对齐,选择的角度即为步距角[5]。
在单三拍控制方式下,当A相通电,B、C相断电时,在磁场作用下,使转子小齿轮与A相的定子小齿轮对齐。若假定与A相中心对齐的为0号齿轮,A相所在角度为00。由于三相磁极相差1200,此时转子13号齿轮与B相的中心相差角度为1 200-90*13=30,转子27号齿轮与C相的中心相差角度为2 400-90*27=-30,若此时让B相通电,A、C相断电,在磁场作用下,要使转子小齿轮与B相定子齿轮对齐,转子需顺时针旋转30。若此时让C相通电,A、B相断电,在磁场作用下,要使转子小齿轮与C相定子齿轮对齐,转子需逆时针旋转30。若通电顺序为:A——B——C——A,转子则顺时针旋转,若通电顺序为:A——C——B——A,转子则逆时针旋转,从而实现对电机的正反转控制[6]。
2 控制系统设计
步进电机控制系统主要由单片机、PC上位机、驱动电路、步进电动机、4*4键盘和LED显示等模块组成,下图l为步进电机控制系统是总体结构图。单片机产生脉冲信号并将脉冲信号传送给步进电动机,完成对步进电动机的步数和圈数的准确计数,从而实现对步进电动机的转速控制。PC上位机模块是系统的核心,通过串口向单片机发送控制命令,实现PC机对步进电动机的实时控制,并实时显示步进电动机的运行状态。4*4键盘模块实现指令输入,LED显示模块可显示步进电动机的转速和转向等运行状态。为保护单片机控制系统硬件电路,在单片机和步进电机之间增加过驱动电路。
图1 系统总体结构图Fig.1 Structure diagram of the power control unit test system
由于步进电动机的驱动电流比较大,步进电动机较大驱动电流的通断会造成电磁干扰,进而会影响单片机的正常工作。因而单片机与步进电动机之间的驱动电路就显得尤为重要。本系统采用74LS04非门与有光电隔离的4N29达林顿管组成驱动电路,这样不仅避免了在驱动电路发生故障,造成高电压、大电流进入单片机而烧毁器件。同时割断了驱动电路与单片机控制电路之间的电气连接。另外步进电动机的启停和正反转分别由S1,S2控制。硬件接线图如图2所示。
图2 步进电机与单片机硬件接线图Fig.2 Stepping motor and single-chip microcomputer hardware wiring diagram
3 软件实现
单片机程序判断步进电机是否启动;若启动则进一步判断其旋转方向;然后按照既定的旋转方向传送控制脉冲序列,再加上脉宽延时即可。每走一步步数减1,并判断步数是否为零,从而决定是否送下一个脉冲序列。其控制状态如表1所示。
表1 三相单三拍控制模式Tab.1 Three-phase single-shot mode control
由表1可以看出,输出的不同状态字,表示不同的励磁方式。P1=0x06H,表示A相通电,其它两相断电;P1=0x05H,表示B相通电,其它两相断电;P1=0x03H,表示C相通电,其它两相断电。若以次给P1口送0X06H,0X05H,0X03H,则步进电机通电顺序为A——B——C——A相。反之若以次给P1口送0X03H,0X05H,0X06H,则步进电机通电顺序为C——B——A——C相。从而用软件实现了步进电机的正反转控制。步进电机的旋转速度可以用脉冲宽度,即送出控制状态字后的延时时间长短来控制。
软件设计流程框图如图3所示。
图3 步进电动机控制流程图Fig.3 Stepper motor software flow chart diagram
4 结束语
本系统通过89C51单片机控制步进电动机,操作方便、可靠性高,步进电动机的步距角非常精确,且不受外界环境温度,湿度等因素的影响。本系统只需要简单的改变输出状态字序列,及状态字的输出频率,便可实现对步进电机的精度及速度控制。由PC上位机程序可以完全控制步进电动机的各种运行方式,使系统能够应用于恶劣环境中,保证使用人员的安全,且适用范围较广,该系统在数控铣床进给伺服机构的驱动电动机进行试用,实用价值较高,因此本系统具有很好的应用前景。
[1]温希东,路勇.计算机控制技术[M].西安电子科技大学出版社,2005.
[2]刘帅,祖静,张红艳.基于单片机的步进电机控制系统设计[J].电子设计工程,2010(4):38-40.LIU Shuai,ZU Jing,ZHANG Hong-yan.Design of control system of stepper motor based on microcontroller[J].Electronic Design Engineering,2010(4):38-40.
[3]余世超,高志,邵鹏.基于单片机的步进电机控制系统设计与研究[J].煤矿机械,2010(5):210-212.YU Shi-chao,GAO Zhi,SHAO Peng.Design and research of MCU-based control system for stepper motor[J].Coal Mine Machinery,2010(5):210-212.
[4]张占立,康春花,郭士军,等.基于单片机的步进电机控制系统[J].电机与控制应用,2011(3):28-31.ZHANG Zhan-li,KANG Chun-hua,GUO Shi-jun,et al.Control system of step-motor based on microntroller unit[J].Electric Machines&Control Application,2011(3):28-31.
[5]马昊伟,董继先.基于STC89C51单片机的步进电动机的控制系统设计[J].煤矿机械,2012(7):222-223.MA Hao-wei,DONG Ji-xian.Design of stepping motor control system based on STC89C51 microcontroll[J].Coal Mine Machinery,2012(7):222-223.
[6]蔡晶晶,钱珊珠,闫双红.基于单片机的步进电动机伺服控制器的设计[J].内蒙古农业大学学报,2012(7):153-156.CAI Jing-jing,QIAN Shan-zhu,YAN Shuang-hong.Design of stepping motor servo controller based on single-chip computer[J].Journal of Inner Mongolia Agricultural university,2012(7):153-156.