标题: UCN5804 ULN2003步进电机控制 [打印本页]

作者: 51黑科技    时间: 2016-2-4 02:10
标题: UCN5804 ULN2003步进电机控制

      步进电机需要提供具有一定驱动能力的脉冲信号才能正常工作,脉冲信号由单片机输出的激励信号经过脉冲分配产生。脉冲分配可以通过硬件模拟分配电路实现,也可以利用软件方便地实现。一个完整的驱动电路不仅需要激励信号,还需有足够的功率。在一般的电路驱动中,需将由CPU产生的脉冲信号经过功率放大后,再接到步进电机输入端。随着大规模集成电路技术的发展,逐渐出现了很多专门用于步进电机控制的脉冲分配芯片,它们配合功率放大的驱动电路可以实现步进电机的驱动。
12.3.1 一般步进电机驱动电路
在专门的步进电机驱动集成芯片出现以前,一般都是采用电路来驱动步进电机工作。在电路设计中,必须要考虑的是驱动信号的分配和放大。在信号分配方面,采用的均是单片机统一分配的形式;在信号放大方面,则是由各种放大电路来完成的。下面介绍一种利用硬件电路连接而成的脉冲分配驱动电路。
1.电路驱动的工作原理
图12-5所示是一个四相步进电机的驱动电路。A、B、C、D分别接到P1口的P1.4~P1.7。通过软件控制一组脉冲序列,控制步进电机的转速、方向和步距。

在步进电机的驱动线路中,主CPU发出的控制信号经U1放大,传到复合三极管前一级的基极。若CPU送出的数据为0,则前级三极管BG5作为开关三极管不导通,BG1也处于截止状态,电机内的线圈不得电;若CPU送出的数据为1,则前级三极管BG5的基极有了驱动电流,12V电压经电机的线圈、限流电阻和三极管形成通路。在电路图中的A、B、C、D分别代表电机内部的4个线圈,在驱动线中的R5~R8作为限流电阻来限制线圈中的电流值。在电阻和线圈两侧有并联的单向二极管,当CPU信号由1跳变为0时,三极管截止,电机的线圈会产生很大的感应电动势,这时线圈、限流电阻和单向二极管形成回路,保护三极管不被线圈的瞬时感应电动势烧坏。二极管D1~D4也称回流二极管,在选择时要考虑到电源电压及线圈电流。R1~R4和D1~D4组成一条支路,在对应的线圈突然不通电时能够和线圈构成一组循环回路。该电阻的作用是分担支路中的电压,保护二极管。在每个集成放大器的输出端接有一个LED,作为脉冲信号输入的显示器件。CPU送入的数据为0时,LED下端的电位也为低,LED被导通发光;CPU送入的数据为1时,LED的下端电位为高,LED无法导通,不发光。R9~R12为限流电阻,使三极管基极的流入电流不至于过大而烧毁。

图12-5 基于复合三极管的四相步进电机驱动电路

在步进电机工作时,对P1口依次写入1FH、3FH、5FH、7FH,电机正转4步;对P1口依次写入7FH、5FH、3FH、1FH,电机反转4步。
2.控制程序
为方便初学者了解步进电机驱动电路的控制方式,对于每一种驱动电路都给出对应的控制参考程序。
电机正转控制参考程序如下:

电机反转控制参考程序如下:

该程序实现的是在工作时四相线圈中的每一相分别通电,即为四相四拍工作方式。可通过改变脉冲输入方式来改变电机的工作状态(如四相八拍工作方式)。
12.3.2 基于UCN5804芯片的步进电机驱动电路
随着大规模集成电路技术的发展,越来越多的厂家生产出专门用于驱动步进电机的脉冲分配芯片,配合用于功率放大的驱动电路就可以实现步进电机的驱动。下面以UCN5804驱动芯片为例,介绍集成芯片驱动步进电机的工作原理。图12-6所示为UCN5804芯片引脚图。

1.UCN5804芯片引脚介绍

引脚1:对应四相脉冲输出的B相。主CPU给UCN5804输送脉冲,芯片按顺序输出A、B、C、D脉冲信号,该信号接到步进电机的脉冲输入端。

引脚2:接+12V电源。
引脚3:对应四相脉冲输出的D相。
引脚4:接地。
引脚5:接地。
引脚6:对应四相脉冲输出的C相。
引脚7:接+12V电源。
引脚8:对应四相脉冲输出的A相。
引脚9:控制电机脉冲输出方式,若9脚为低电平,则脉冲每次输出两相脉冲信号
图12-6 UCN5804芯片引脚图

(AB-BC-CD-DA-AB),即主CPU每送入一个脉冲,芯片向电机输出两相电脉冲;若9脚为高电平,则芯片每次输出两相脉冲信号(A-B-C-D-A),即主CPU每送入一个脉冲,芯片向电机输出两相电脉冲。

引脚10:控制电机接收脉冲后的步长,若10脚为低电平,则芯片控制电机每步运行一整个步长,即芯片送出的脉冲顺序为A-B-C-D-A或AB-BC-CD-DA-AB;若10脚为高电平,则芯片控制电机每步运行半个步长,即芯片送出的脉冲顺序为A-AB-B-BC-C-CD-D-DA-A。

引脚11:5804芯片的脉冲输入端,信号由主CPU送入。每送入一个信号,芯片送出一个控制信号。CPU不产生输入信号时,芯片不产生输出脉冲。

引脚12:接地。

引脚13:接地。

引脚14:控制电机的正反转,若14脚为低电平,则电机正转;若该脚为高电平,则电机反转。

引脚15:5804芯片的片选信号,该脚为低时芯片可以工作,为高时芯片不工作。

引脚16:接+5V电源。

2.UCN5804芯片概述与工作特点
UCN5804芯片是一块集成步进电机驱动芯片,它的输出引脚可以接到步进电机的输入端,直接驱动步进电机工作。其工作电路如图12-7所示。在信号输出端接一反向二极管后连接到步进电机上,芯片可以承受最大1.5A的反向电流以及最大35V的电压。


图12-7 基于UCN5804芯片的驱动电路图

在实际应用中,UCN5804芯片有多种驱动工作方式,利用9脚和10脚的高低电平组合(见表12-1),可将四相步进电机的运行分为以下几种方式。
表12-1 UCN5804芯片驱动方式真值表
(1)在单脉冲输出状态下,9脚为低电平,10脚为高电平,电机按四相四拍的工作方式(见表12-2)运行(A-B-C-D-A或A-D-C-B-A)。
表12-2 单相驱动脉冲顺序(9脚=L,10脚=H)
(2)在双脉冲输出状态下,若9脚和10脚均为低电平,则电机按四相四拍的工作方式(见表12-3)运行(AB-BC-CD-DA-AB或AD-DC-CB-BA);若9脚为高电平,10脚为低电平,则步进电机将按四相八拍的工作方式(见表12-4)运行(A-AB-B-BC-C-CD-D-DA-A或A-DA-D-CD-C-BC-B-AB-A)。
表12-3 双相驱动脉冲顺序(9脚=L,10脚=L)
表12-4 单双相半步驱动脉冲顺序(9脚=H,10脚=L)
UCN5804芯片驱动脉冲时序分配如图12-8所示。

图12-8 驱动脉冲时序

UCN5804芯片的连接电路以图12-7为例:芯片的脉冲输入端、方向控制、片选分别接到P1口的P1.0、P1.2、P1.3。根据电机运转的实际需要,由主CPU送不同的控制字。在该电路中,电容C1和C2为去耦电容,滤除高频干扰。R1和R2为大功率小阻值电阻,作用是保证步进电机足够的驱动电流,同时电阻可以承受因其阻值过小而产生的大功率。V1~V4为4个二极管,分别与UCN5804芯片的脉冲输出端反接,来传导电机工作某一相工作时的反向电流。

3.控制程序
电机正转控制程序如下:


电机反转控制程序如下:

该程序可实现两相脉冲驱动的四相四拍电机运转方式。可以通过改变引脚的高低电位状态来改变电机的工作方式,方便灵活,适合初学者学习。
12.3.3 基于ULN2003芯片的步进电机驱动电路
ULN2003是另一款电机脉冲分配芯片,由于其结构简单,价格低廉,而且无需外接功率放大电路,因此也常用来作为步进电机的驱动芯片。
1.ULN2003芯片引脚介绍
ULN2003芯片引脚如图12-9所示。


图12-9 ULN2003芯片引脚图

引脚1:CPU脉冲输入端,端口对应一个信号输出端。
引脚2:CPU脉冲输入端。
引脚3:CPU脉冲输入端。
引脚4:CPU脉冲输入端。
引脚5:CPU脉冲输入端。
引脚6:CPU脉冲输入端。
引脚7:CPU脉冲输入端。
引脚8:接地。
引脚9:该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,实现续流作用。如果该脚接地,实际上就是达林顿管的集电极对地接通。
引脚10:脉冲信号输出端,对应7脚信号输入端。
引脚11:脉冲信号输出端,对应6脚信号输入端。
引脚12:脉冲信号输出端,对应5脚信号输入端。
引脚13:脉冲信号输出端,对应4脚信号输入端。
引脚14:脉冲信号输出端,对应3脚信号输入端。
引脚15:脉冲信号输出端,对应2脚信号输入端。
引脚16:脉冲信号输出端,对应1脚信号输入端。

ULN2003的内部结构可参见图12-10。在ULN2003芯片内部为达林顿管阵列,其工作原理与上一节电路驱动相似。由于该电路为芯片的内部结构,仅供初学者理解芯片的工作方式用,在芯片使用时可以忽略。


图12-10 ULN2003芯片内部结构
2.ULN2003芯片概述与特点
ULN2003芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。ULN2003芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。

ULN2003芯片是可以专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。ULN2003芯片的输出端允许通过电流200mA,饱和压降约1V。输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。硬件接线图见图12-11。


图12-11 ULN2003芯片驱动电路(驱动口改P1口)

ULN2003芯片的每一对达林顿都串联一个2.7k.的基极电阻,也可以不用限流电阻而直接由51的P口驱动。在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003芯片工作电压高,工作电流大,灌电流可达500mA,并且能够在关态(有低电平输入时,输出为高电平)时承受50V的电压,输出还可以在高负载电流并行运行。
信号脉冲通过P1口送出,可经4.7k.上拉电阻接到ULN2003芯片的输入端口。P1.4~P1.7分别对应ULN2003的1C、2C、3C、4C输出端。在使用步进电机时,对P1口赋予不同的值来送出电机正转或反转的脉冲信号。

3.控制程序
电机正转控制程序为:


电机反转控制程序为:

该程序实现的也是分别驱动四相电机中的相邻两相线圈,使电机在双脉冲驱动四相四拍方式下工作。通过改变CPU脉冲来控制电机的工作方式。
12.3.4 步进电机应用实例
在步进电机的实际应用中,总是通过CPU接收处理一些信号来控制电机的运动状态。常见的如光线、温湿度、水位等。这里以光作为CPU控制步进电机的信号为例。
采用对射光电开关作为光信号发射接收装置。对射光电开关FS048W能够发射出一束细小的光线,当光线碰到障碍物时反射回来,由光电开关的接收管接收。光电开关电路图如图12-12所示。

图12-12 光电开关检测电路图

当接收管没有接收到发射回来的光信号时,光电开关内部的感光三极管不导通,比较器的输入端为高电位,比较器输出点的电位为高(CPU接收信号为1);当接收管接收到发射回来的光信号时,光电开关内部的感光三极管导通,比较器的输入端为低电位,比较器输出点的电位为低(CPU接收信号为0)。由于光线照射到不同颜色上时会有不同的反射率,通过比较器反相输入端电阻的调节,可以使光电开关在一定的距离上判断出不同的颜色。如光线照射在白色物体上时,由于白色物体对光线的反射率高,反射回的光线强,接收管可以容易地接收到反射光线信号;相反的,光线照射到黑色物体上时,由于黑色物体的反射率较低,即有吸收光线的特性,反射光线很弱,在相同的距离上接收管无法接收到反射回来的微弱光信号。 将电机和对射光电开关组合使用,可以用于检测执行机构及各种伺服机构。下面将以步进电机小汽车的循迹为例,介绍在实际应用中的电机工作特性。具体应用流程图及程序见12.4节。




作者: 3310mad2    时间: 2016-12-5 22:12
两相四线步进电机的时序是怎么算出时序参数表的?
作者: 章章章    时间: 2017-5-22 18:09
 
两相四线步进电机的时序是怎么算出时序参数表的?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1