基于AT89C51单片机的步进电机控制及驱动电路设计引言国内控制器的研究起步较晚,运动控制技术为一门多学科交叉的技术,是一个以自动控制理论和现代控制理论为基础,包括许多不同学科的技术领域。如电机技术、电力电子技术、微电子技术、传感器技术、控制理论和微计算机技术等,运动控制技术是这些技术的有机结合体。总体上来说,国内研究取得很大的进步,但无论从控制器还是从控制软件上来看,与国外相比还是具有一定差距。传统上由纯电路设计的步进电机控制和驱动电路一般较复杂,成本又高,而且一旦成型就难于修改,可移植性差,难以适应一些智能化要求较高的场合。单片机的普及与应用,为步进电机的应用开辟了广阔的前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,将会避免复杂电路的设设计,既降低了硬件成本又提高了控制的灵活性、可靠性及多功能性。本文主要介绍了步进电机的基本原理及AT89C51单片机的性能特点。设计主要研究了一种基于AT89C51单片机和ULN2003驱动芯片的步进电机控制及驱动电路系统。该系统可分为:控制模块、驱动模块、显示模块、人机交互模块四大部分。其中采用AT89C51单片机作为控制模块的核心,利用单片机编程实现了对步进电机启动停止、正转反转、加速减速等功能的基本控制。驱动模块由芯片ULN2003A驱动步进电机工作;显示部分由七段LED共阴数码管组成;人机互换部分由相应的按键实现相应的功能。通过实际测试表明本设计系统的性能优于传统步进电机控制器,具有结构简单、可靠性高、实用性强、人机接口简单方便、性价比高等特点。目录1设计原理及方案....................................................41.1设计原理...........................................41.2设计方案...........................................41.2.1方案一......................................................51.2.2方案二......................................................61.2.3方案比较及选择..............................................72设计实现...........................................................82.1主要元器件介绍...............................................82.1.1四相六线步进电机的介绍......................................82.1.2AT89C51单片机芯片介绍......................................102.1.3ULN2003芯片介绍............................................112.1.4LED七段数码管介绍..........................................112.2步进电机控制及驱动系统电路设计实现.....................122.2.1硬件设计...................................................122.2.2软件设计...................................................153电路调试..........................................................163.1软件的仿真...................................................163.2硬件电路的调试..............................................174数据分析及总结...................................................184.1测试数据及说明..............................................184.2总结..........................................................19参考文献.............................................................20附录..................................................................211设计原理及方案1.1设计原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机、交流电机在常规下使用。步进电机必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。1.2设计方案设计要求:设计步进电机控制器硬件电路图,并使用相应的软件实现硬件和软件的仿真、调试。实现功能如下:(1)控制步进电机实现正转和反转;(2)控制步进电机转速;(3)设计步进电机的脉冲放大电路,能驱动相电压位12V、相电流位为0.4A的步进电机工作;(4)实现对步进电机圈数的预置;(5)同步显示步进电机所转圈数及速度。根据步进电机的特点,步进电机的控制及驱动电路系统的设计可以有不同的方案。系统可以划分为:控制模块、驱动模块、显示模块、人机交互模块及电源电路五大部分,如图1步进电机控制驱动系统图所示。为实现各模块的功能,分别对两种不同的设计方案分别进行论证及比较,最终确定一个最优方案。图1步进电机控制驱动系统图1.2.1方案一方案一:基于FPGA的步进电机控制器及驱动的电路设计。整个系统分为五个部分组成:FPGA系统中央控制器、驱动电路及步进电机、光电编码器、键盘输入液晶显示部分、以及电源电路组成,如图2所示。此方案是用基于FPGA的系统中央控制器产生的PWM环形脉冲信号经过驱动电路的信号分配以及功率放大传送给步进电机实现对步进电机的角位置或直线位移控制。键盘用于设定给定转速、位置。采用光电编码器对步进电机的转速、位置进行采样检测实现闭环控制。以上过程中的多个变量、参数可以在液晶显示屏上得到直观地反映。图2基于FPGA的步进电机控制器及驱动系统图(1)控制器模块采用FPGA为系统的控制器,FPGA可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。通过输入模块将参数输入给FPGA,FPGA通过程序设计控制步进电机运动,但是由于本设计对数据处理的时间要求不高,FPGA的高速处理的优势得不到充分体现,并且由控制模块人机交互模块驱动模块显示模块电源步进电机键盘输入及液晶显示部分FPGA系统中央控制器光电编码器驱动电路及步进电机电源电路给定转速、位置转速位置显示读取采样结果给定PWM方波信号检测转速、位置于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。(2)驱动模块电路结构设计需要脉冲信号、信号分配、功率放大三部分组成。控制模块产生一个脉冲序列和方向控制信号,使用脉冲分配器将脉冲序列分解形成四相正反相序,然后经功率放大驱动步进电机。使用多个功率放大器件驱动电机,通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂,参数选择困难,且需要多级放大,同时又要考虑功率的放大。(3)显示模块采用液晶显示器。液晶显示器不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本显示等功能,并具有功耗小、体积小、质量轻等优点。但设计仅需显示步进电机的转速和所转圈数,该方案虽然显示直观,但能实现更多的显示的特点不能很好的发挥,并且器件昂贵。(4)人机交互模块采用4乘4矩阵键盘,查询工作方式。该方案程序复杂,但在同样多的I/O口线条件下,行列式键盘能带更多的按键,查询工作方式也不用另接门电路。软件虽然较难但电路较简单。1.2.2方案二方案二:基于AT89C51单片机的步进电机控制及驱动电路设计。整个系统可分为:AT89C51单片机系统控制器、驱动电路、数码管显示、按键输入模块及电源电路五大部分,如图2.9所示。本设计方案采用AT89C51单片机作为控制模块的核心,利用软件编程使单片机输出脉冲序列和方向控制信号,以此实现对步进电机启动停止、正反转、加减速的控制。驱动电路部分由芯片ULN2003A和必要的外围电路组成,单片机产生的信号经驱动电路使其功率放大,达到电机所需的驱动电压和电流由此驱动步进电机工作。由七段LED共阴数码管实现步进电机预置圈数和所转圈数的同步显示。用相应的按键实现预置圈数设置和清零的功能。图3基于AT89C51单片机的步进电机控制及驱动系统图(1)控制模块采用AT89C51单片机作为系统控制的核心。利用单片机编程产生步进电机所需脉冲序列和方向控制信号。单片机算术运算功能强、软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低,且可对其进行扩展,附带显示设备,键盘输入等设备,使用方便。还可通过软件编程实现对步进电机的位置、速度预设及显示。步进电机位置和速度实际上跟单片机产生脉冲的个数和脉冲频率是一一对应关系,而方向由导电顺序决定。并且,由于单片机芯片引脚少,软硬件连接简便灵活,硬件容易实现。(2)驱动模块直接采用ULN2003芯片进行功率放大。它的内部结构是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC电流200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动步进电机。ULN2003芯片自身功耗小、驱动能力强、可靠稳定、体积小、使用方便、价格不高、50V/0.5A以下的电路均可使用。(3)显示模块采用LED七段共阴数码管进行动态显示。AT89C51单片机输出的脉冲序列经过上拉电阻驱动数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、显示信息清晰、器件价格低廉,但占用单片机I/O口较多。(4)人机交互模块采用独立式按键。总共设置了15个按键,其中四个按键分别执行对步进电机的启动/停止、正转/反转、加速、减速四种控制功能。四个按键不可同时按下,当其中一个按下时控制电机的某一种状态。按键0~9完成预置步进电机所转圈数的功能,剩余一个按键实现清零的功能。采用独立式按键,中断工作方式。该方案原理易懂,程序简单,但占用I/O口线较多,软件较容易,硬件电路较繁琐。1.2.3方案比较及选择方案比较:AT89C51单片机系统控制器按键输入电源电路驱动电路数码管显示预置数控制清零脉冲序列方向控制信号步进电机功率放大信号同步显示圈数及转速(1)控制模块:方案一:是以FPGA