找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9582|回复: 0
收起左侧

ULN2003步进电机驱动原理及应用程序

[复制链接]
ID:262 发表于 2016-8-15 14:00 | 显示全部楼层 |阅读模式
ULN2003步进电机驱动原理及应用程序
0.png


步进电机的基本原理我就不说了,百度能找出一大片来,,简而言之就是能够通过输入脉冲的个数,确定旋转的角位移,一般用他来控制小车轮子的偏移角度等。
来看看步进电机:
  
型号为MP28GA的步进电机(左)和ULN2003APG的驱动芯片(右),具体参数如下:
   电压
  DC.V
  
   电阻(25°C)
  Ω
  
   步距角
  °
  
  
减速比
  
   牵入转矩
  mN.m
  
  自定位转矩
  mN.m
   
  
  
5
  
  
50
  
  
5.625/64
  
  
1/64
  
  
≥40
  
  
≥34.3
  
   空载牵入频率
  Hz
  
   空载牵出频率
  Hz
  
   绝缘电阻
  DC.500V
  
   绝缘介电强度
  AC.600V.1mA.1S
  
   温升
  K
  
   噪音
  dB(A)
  
  
≥500
  
  
≥900
  
  
≥50MΩ
  
  
无击穿或飞弧
  
  
40
  
  
40
  
MP28GA的步进电机相关参数
步进电机相励磁的励磁顺序如下表所示:
  
接线端
  
  
导线
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
序号
  
  
颜色
  
  
1
  
  
2
  
  
3
  
  
4
  
  
5
  
  
6
  
  
7
  
  
8
  
  
5
  
  
  
  
+
  
  
+
  
  
+
  
  
+
  
  
+
  
  
+
  
  
+
  
  
+
  
  
4
  
  
  
  
-
  
  
-
  
  
  
  
  
  
  
  
  
  
  
  
-
  
  
3
  
  
  
  
  
  
-
  
  
-
  
  
-
  
  
  
  
  
  
  
  
  
  
2
  
  
  
  
  
  
  
  
  
  
-
  
  
-
  
  
-
  
  
  
  
  
  
1
  
  
  
  
  
  
  
  
  
  
  
  
  
  
-
  
  
-
  
  
-
  

ULN2003APG
的驱动芯片驱动原理图如下所示:
FOSC = 12MHz
说得通俗uln2003相当于继电器的作用,例如7个继电器的一端连某电压[也即uln2003电源电压]<50)在一起,而另一端作为则作为输出,又好如一个二极管,只不过因电路集成功能的因素,输出的电压等同于uln2003的电压罢了,常用于步进电机
;--------------------------------------------------
;
步进电机的驱动信号必须为脉冲信号!!! 转动的速度和脉冲的频率成正比!!!
;
本步进电机步进角为 5.625 . 一圈 360 , 需要64个脉冲完成!!!
;--------------------------------------------------
; A
组线圈对应 P2.4
; B
组线圈对应 P2.5
; C
组线圈对应 P2.6
; D
组线圈对应 P2.7
;
正转次序: AB--BC--CD--DA (即一个脉冲,正转5.625)
;------------------------------------------------
ORG 0000H
    LJMP    MAIN
ORG 0100H
MAIN:
;----------------------------
正转
    MOV R3,#192     ;
正转3圈共192个脉冲
START:
    MOV R0,#00H
START1:
    MOV P2,#00H
    MOV A,R0
    MOV DPTR,#TABLE
    MOVC    A,@A+DPTR
    JZ  START       ;
A的判断,A=0时则转到 START
    MOV P2,A
    LCALL   DELAY
    INC R0
    DJNZ    R3,START1
    MOV P2,#00H
    LCALL   DELAY1
;-----------------------------
反转
    MOV R3,#64      ;
反转一圈共64个脉冲
START2:
    MOV P2,#00H
    MOV R0,#05
START3:
    MOV A,R0
    MOV DPTR,#TABLE
    MOVC    A,@A+DPTR
    JZ  START2
    MOV P2,A
    CALL    DELAY
    INC R0
    DJNZ    R3,START3
    MOV P2,#00H
    LCALL   DELAY1
    LJMP MAIN
;---------------------------
转速控制
DELAY:  MOV R7,#40      ;
步进电机的转速
M3: MOV R6,#248
    DJNZ    R6,$
    DJNZ    R7,M3
    RET
;---------------------------
延时控制
DELAY1:     MOV R4,#20  ;2S
延时子程序
DEL2:   MOV R3,#200
DEL3:   MOV R2,#250
    DJNZ    R2,$
    DJNZ    R3,DEL3
    DJNZ    R4,DEL2
    RET
;---------------------------
正反转表
TABLE:
    DB  30H,60H,0C0H,90H;  
正转表
    DB  00;  
正转结束
    DB  30H,90H,0C0H,60H;  
反转表
    DB  00;  
反转结束
END
/**************************************/
/*
杭州电子&计算机工作室   */
/*
步进电机演示程*/
/*
目标器件:AT89S51 */
/*
晶振:11.0592MHZ  */
/*
编译环境:Keil7.50A    */
/****************************/
/*************
包含头文件*******/
#include
/**************
端口定义****************/
sbit key = P1^4

/*********************************
函数功能:延时子程序
入口参数:
出口参数:
*****************************************/
void delay(void)
{
       int k;
       for(k=0;k<500;k++);
}
/*************************************
函数功能:主程序
入口参数:
出口参数:
********************************/
void main()
{
      P1=0x00;            //
输出全高
      key=1;          //
按键置输入状态
      while(1)        //
主循环
             {
             if(key==1)    //
无键按下正转
                    {
                           P1=0xFC;    //1100
                           delay();
                           P1=0xF6;     //0110
                           delay();
                           P1=0xF3;     //0011
                           delay();
                           P1=0xF9;     //1001
                           delay();
                    }
                    else //
有键按下反转
                    {
                           P1=0xFC;    //1100
                           delay();
                           P1=0xF9;     //1001
                           delay();
                           P1=0xF3;     //0011
                           delay();
                           P1=0xF6;     //0110
                           delay();}}}
1.
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。签于上述情况,我们决定以广泛的感应子式步进电机为例。叙述其基本工作原理。望能对广大用户在选型、使用、及整机改进时有所帮助


ULN2003步进电机驱动原理及应用程序.zip

8.2 KB, 下载次数: 36, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表