|
ULN2003步进电机驱动原理及应用程序
步进电机的基本原理我就不说了,百度能找出一大片来,,简而言之就是能够通过输入脉冲的个数,确定旋转的角位移,一般用他来控制小车轮子的偏移角度等。
来看看步进电机:
型号为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.步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。签于上述情况,我们决定以广泛的感应子式步进电机为例。叙述其基本工作原理。望能对广大用户在选型、使用、及整机改进时有所帮助
|
|