更新时间:06-17 编辑老师:佚名
1. 前言 步进电机是一种新型增量式电机,是数字控制系统的一种执行元件。它利用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或线位移的电动机。易于启停正反转以及变速。用步进电机作为驱动装置构成的控制系统,具有成本低,控制简单,容易维护等优点。步进电机现在广泛应用于各个领域。作为机床控制,电子瞄准,工业自动化,办公自动化和机器人运动控制中应用的重要执行部件,显示出广阔的发展
2. 总体设计框图
如图1所示,按系统功能实现要求,控制系统采用AT89S52单片机,用ULN2003A作为步进电机的驱动电路,按钮开关控制步进电机的启动、停止、正反转及速度。
3.硬件系统设计
3.1 单片机最小系统
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。40个引脚,256 字节的随机存取数据存储器(RAM),32位可编程输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,3个16位定时器/计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。另外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件选择节电模式。空闲模式下,CPU结束工作,而RAM、定时/计数器、串行口、中断系统可继续工作,掉电模式冻结振荡器而RAM的数据被保存,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、PLCC和TQFP等三种封装形式,以适应不同产品的需求。
本次设计用到P1、P2等相关接口:
P1口:是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可当输入口使用。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和定时/计数器2的触发输入(P1.1/T2EX)。
P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。被外部拉低的引脚因为内部电阻会输出一个电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
XTAL1:振荡器反相放大器的内部时钟发生器的输入端。
XTAL2:振荡器反相放大器的输出端。
3.2 正反转控制及速度调节电路
图3正反转控制及速度调节电路
图3,软件设计的需要,我们给出按钮的作用,便于程序的编写,S2作为启动停止开关,令1为启动,s3正反转控制开关,=1:正转;=0:反转,s4~s5速度调节开关。
3.3驱动电路
图4 驱动电路
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。 ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。ULN2003是一个非门电路,包含7个单元,但独每个单元驱动电流最大可达350mA。
ULN2003的作用:ULN2003是最大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿阵列,由七个硅NPN达林顿管组成。ULN2003的每一对达林顿都串连一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动系统。
ULN2003A引脚图及功能:
ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。 经常在以下电路中使用,作为显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。ULN2003 的封装采用DIP—16 或SOP—16 。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,达林顿管还可并联使用以达到更高的输出电流能力。
3.4 步进电机原理
步进电机是将电脉冲信号转变为角位移或线位移的控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
四相步进电机的正反转控制如下:
图5中所示,该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图6 步进电机步进示意图
图6为步进电机的示意图,开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方转动。
4. 硬件电路原理图
图7 原理图
图7,该系统采用多个模块的方式来实现对步进电机的控制。控制模块采用单片机AT89S52来控制ULN2003A,ULN2003A驱动电机的转动。
5. 软件系统
5.1软件设计流程图
设计思路:加减速度有两中方案:线性加/减速度控制和等步距加/减速度控制。前者规定从加速度开始,每一加速度周期指令电机速度递增相同的增量△f;后者则是要求每一加速度周期电机走过相同的步数。等步距加/减速度控制的优点,在于加/减过程中电机走的步数可以非常精确的计算,这一点对于加/减的位置控制非常重要,但从电机要克服惯性力来看,线性加速方案好些。开始启动时,速度随时间变化上升,然后达到最大速度进行匀速转动,当停止时,步进电机不是马上停止转动,而是进行减速转动,直到速度为零。
5.2 P2口输出信号
拍数P2.7~P2.0P2口值
AB11111100FCH
BC11111001F9H
CD11110011F3H
DA11110110F6H
5.3步进电机加/减速控制程序
;- -------------------------正转加速-----------------------------------------
DOJ1: MOV R2, #1
DOJ11: MOV A, R2
MOV DPTR, #TAB1
MOVC A,@A+DPTR
MOV P2, A
MOV A, R2
MOV DPTR, #TAB2
MOVC A,@A+DPTR
MOV R6, A
LCALL DEL1
INC R2
CJNE A, #0FFH, DOJ11
采用查找表法,采用90拍加速,表格在最后的程序中给出,上段程序为正转加速程序。
----------------------------------正转减速-----------------------------------
JIANSU: MOV R2, #1
DOJ12: MOV A, R2
MOV DPTR, #TAB1
MOVC A,@A+DPTR
MOV P2, A
MOV A, R2
MOV DPTR, #TAB3
MOVC A,@A+DPTR
MOV R6, A
LCALL DEL1
INC R2
CJNE A, #0FFH, DOJ12
;------------------------------------反转加速------------------------------------
DOJ2: MOV R2, #16
DOJ21: MOV A, R2
MOV DPTR, #TAB1
MOVC A,@A+DPTR
MOV P2, A
MOV A, R2
MOV DPTR, #TAB3
MOVC A,@A+DPTR
MOV R6, A
LCALL DEL1
DEC R2
CJNE A, #00H, DOJ21
;--------------------------------------反转减速-----------------------------------
JIANSU2: MOV R2, #90
DOJ22: MOV A, R2
MOV DPTR, #TAB1
MOVC A,@A+DPTR
MOV P2, A
MOV A, R2
MOV DPTR, TAB2
MOVC A,@A+DPTR
MOV R6, A
LCALL DEL1
DEC R2
CJNE A, #00H, DOJ22
MOV A, #0FFH
MOV P1, A
MOV A, P1
ANL A, #0CH
;----------------------------加速和减速延时程序------------------------------
DEL1: MOV R7, #0FAH
DJNZ R7, $
DJNZ R6, DEL1
RET
;---------------------------匀速延时程序------------------------------------
DEL0Y: MOV A, #0FFH
MOV P1, A
MOV A, P1
ANL A,#70H;读p1.2-p1.3
SWAP A
MOV R5,A ;根据p1.2-p1.3计算延时
DEL1Y: MOV R7, #0FAH
DJNZ R7, $
DJNZ R5, DEL1Y
RET
总述及致谢
本例实现了一个基于AT89S52单片机控制的步进电机系统,用户可以根据键盘输入命令控制步进电机的运行。以AT89S52单片机为核心,包括键盘按钮单元和步进电机驱动单元及相应的软件设计出控制步进电机转速的功能。
此次毕业设计,我学到了很多东西,也知道了要想学到有用的知识,在上课间学到的很少,学到有用的东西都是在实践中,我们在今后的学习生活中,不是老师说什么你就怎么去做,而是在实践中发现问题,然后不断的去解决问题。
在这个过程中,段玉垒老师付出的最多,给予了我指导,为我讲解,为我检查错误,在此表示感谢,这次的毕业设计非常成功。