步进电机的控制电路和程序

合集下载

大学毕业设计 C51程序控制步进电机

大学毕业设计 C51程序控制步进电机

题目:简易步进电机控制步进电机控制摘要:本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和按键控制。

由单片机产生的脉冲信号经过分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。

转速的调节和状态的改变由按键进行选择,此过程由程序直接进行控制。

通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。

电机转动的不同状态由液晶LCD1602显示出来。

而设计的扩展部分可以通过红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。

关键字:四相步进电机单片机功率放大 LCD1602步进电机控制 (1)摘要 (1)关键字 (1)前言 (3)1系统总体方案设计及硬件设计 (4)1.1步进电机 (4)1.1.1 步进电机的种类 (4)1.1.2 步进电机的特点 (4)1.1.3 步进电机的原理 (5)1.2 控制系统电路设计 (7)1.3 液晶显示LCD1602 (7)1.4 AT89S52核心部件及系统SCH原理图 (9)1.5 LN2003A驱动 (10)2软件设计及调试 (13)2.1程序流程 (13)2.2软件设计及调试 (14)3 扩展功能说明 (15)4设计总结 (16)5 设计源程序 (16)6 附录 (21)参考文献 (22)附2:系统原理图及实物图 (23)步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。

目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。

分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。

步进电机的控制程序

步进电机的控制程序

mega16的,16和32管脚兼容,只不过flash大小不一样,不过中断向量号也不一样,你看下自己改改。

时钟频率:内部RC 1M 芯片:ULN2003 键值:0 小角度快正转。

1 小角度快倒。

2 大角度快转。

3 大角度快倒。

4 小角度正慢转。

5 小角度倒慢转。

6 大角度正慢转。

7 大角度倒慢转。

********************************************************************/#include<iom16v.h>#include <macros.h>#define uchar unsigned char#define uint unsigned intuchar a=0,b=0;uchar KEY_num=0xe1;unsigned int m=9000;const uchar f1[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03}; //正转时序3.75度const uchar f2[]={0x04,0x06,0x02,0x03,0x01,0x09,0x08,0x0c}; //倒转时序3.75度const uchar f3[]={0x01,0x02,0x04,0x08}; //正转时序7.5度const uchar f4[]={0x01,0x08,0x04,0x02}; //倒转时序7.5度void delay(int k) //延时{ int i; for(i=0;i<k;i++); }void delay_10ms(uint data){ uint m=2; while(data) { data--; m=2; while(m)m--; } }void zhengzhuan1(void) //正转3.75度{ unsigned char j; for (j=0;j<8;j++) { PORTC=f1[j]; delay(m); } }void daozhuan1(void) //倒转3.75度{ unsigned char j; for (j=0;j<8;j++) { PORTC=f2[j]; delay(m); } }void zhengzhuan2(void) //正转7.5度{ unsigned char j; for (j=0;j<4;j++) { PORTC=f3[j]; delay(m); } }void daozhuan2(void) //倒转7.5度{ unsigned char j; for (j=0;j<4;j++) { PORTC=f4[j]; delay(m); } }void port_int() //初始化端口{ PORTB = 0xf0; DDRB = 0x0F; DDRC=0xff; PORTC=0x01; }void init_devices(void){ CLI(); //禁止所有中断MCUCR = 0x00; MCUCSR = 0x80;//禁止JTAG GICR = 0x00; port_int();SEI();//开全局中断}//按键键值读取程序//返回按键键值,如果没有按键则返回0.void KYY_read(){ //定义按键值存放内存PORTB=0xf0; //行全部送高电平PORTB=0xf0;if((PINB&0xf0)!=0xf0) //有按键{ delay_10ms(1);//延时消抖if((PINB&0xf0)!=0xf0) //确定有按键按下{ PORTB=0xfe; //扫描第一行PORTB=0xfe;if((PINB&0xf0)!=0xf0){ KEY_num=(PINB&0xf0)+1; a=9; }PORTB=0xfd; //扫描第二行PORTB=0xfd;if((PINB&0xf0)!=0xf0){ KEY_num=(PINB&0xf0)+2; } PORTB=0xfb; //扫描第三行PORTB=0xfb;if((PINB&0xf0)!=0xf0){ KEY_num=(PINB&0xf0)+4; } PORTB=0xf7; //扫描第四行PORTB=0xf7;if((PINB&0xf0)!=0xf0){ KEY_num=(PINB&0xf0)+8; } } } //没有按键返回0 }//按键执行程序//送如参数:按键键值KEY_do(uchar data){ uchar KEY_number=data;switch(KEY_number){ case 0xe1:a=0;b=0;daozhuan1();m=5000;break;case 0xd1:a=0;b=1;daozhuan1();m=6000;break;case 0xb1:a=0;b=2;daozhuan1();m=7000;break;case 0x71:a=0;b=3;daozhuan1();m=8000;break;case 0xe2:a=0;b=4;daozhuan2();m=5000;break;case 0xd2:a=0;b=5;daozhuan2();m=6000;break;case 0xb2:a=0;b=6;daozhuan2();m=7000;break;case 0x72:a=0;b=7;daozhuan2();m=8000;break;case 0xe4:a=0;b=8;zhengzhuan1();m=5000;break;case 0xd4:a=0;b=9;zhengzhuan1();m=6000;break;case 0xb4:a=1;b=0;zhengzhuan1();m=7000;break;case 0x74:a=1;b=1;zhengzhuan1();m=8000;break;case 0xe8:a=1;b=2;zhengzhuan2();m=5000;break;case 0xd8:a=1;b=3;zhengzhuan2();m=6000;break;case 0xb8:a=1;b=4;zhengzhuan2();m=7000;break;case 0x78:a=1;b=5;zhengzhuan2();m=8000;break; default:b=0;break;}}void main (void)//主程序{ init_devices();while(1){ KYY_read(); KEY_do(KEY_num); }}#include <reg51.h> //51芯片管脚定义头文件#include <intrins.h> //内部包含延时函数_nop_();#define uchar unsigned char#define uint unsigned intuchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};sbit K1 = P3^4; //正转sbit K2 = P3^5; //反转sbit K3 = P3^6; //停止sbit K4 = P3^7;sbit BEEP = P0^6; //蜂鸣器/********************************************************//*/* 延时t毫秒/* 11.0592MHz时钟,延时约1ms/*/********************************************************/void delay(uint t){uint k;while(t--){for(k=0; k<125; k++){ }}}/**********************************************************/void delayB(uchar x) //x*0.14MS{uchar i;while(x--)for (i=0; i<13; i++){ }}}/**********************************************************/ void beep(){uchar i;for (i=0;i<180;i++){delayB(5);BEEP=!BEEP; //BEEP取反}BEEP=1; //关闭蜂鸣器}/********************************************************/ /*/*步进电机正转/*/********************************************************/ void motor_ffw(){uchar i;uint j;for (j=0; j<12; j++) //转1*n圈{if(K4==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转30度{P0 = FFW[i]; //取数据delay(15); //调节转速}}}/********************************************************/ /*/*步进电机反转/********************************************************/ void motor_rev(){uchar i;uint j;for (j=0; j<12; j++) //转1×n圈{if(K4==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转30度{P0 = REV[i]; //取数据delay(15); //调节转速}}}/********************************************************** 主程序**********************************************************/main(){uchar r,N=5; //N 步进电机运转圈数P2=0xDF;while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ffw(); //电机正转if(K4==0){beep();break;} //退出此循环程序}}else if(K2==0){beep();for(r=0;r<N;r++){motor_rev(); //电机反转if(K4==0){beep();break;} //退出此循环程序}}elseP0 = 0xf0;}}/********************************************************/ULN2803是8路NPN达林顿连接晶体管系列,特别适用于低逻辑电平数字电路,如:TTL,COMS或PMOS/NMOS,和较高的电压/电流要求之间的接口,广泛应用与计算机、打印机、继电器、灯等类似负载中。

步进电机控制电路及应用程序

步进电机控制电路及应用程序

步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。

每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。

步进电机的角位移量与输入的脉冲个数严格成正比,而且在时间上与脉冲同步。

因而只要控制脉冲的数量、频率和电机绕组的相序,即可获得所需的转角、速度和方向。

步进电机主要是由定子、定子绕组和转子组成。

涉及的基本概念如下:1.相——步进电机有几个定子绕组(线圈)就是几相。

2.线——步进电机引出有几根连接的导线。

3.极性——分为单极性和双极性。

如果步进电机的线圈是可以双向导电的,那么这个步进电机就是双极性的,相反,如果步进电机的线圈是只允许单向导电的,那么这个步进电机就是单极性的。

4.极数——每个电机每相含有的磁极个数就是极数。

由于磁极是成对出现的,所以电机有2、4、6、8……极之分。

步进电机结构示意图步进电机分类——按结构分类反应式反应式步进电机定子上有绕组、转子由软磁材料组成。

结构简单、成本低、步距角小,可达1.2°、但动态性能差、效率低、发热大,可靠性难保证。

噪声振动大,多为三相。

永磁式永磁式步进电机永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。

其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为7.5°或15°)。

混合式混合式步进电机其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。

其特点是输出力矩大、动态性能好,步距角小,但结构复杂、成本相对较高。

二相和五相。

步进电机分类——按定子绕组步进电机按定子上绕组来分,共有二相、三相、四相和五相等系列。

最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。

该种电机的基本步距角为1.8°/步,配上半步驱动器后,步距角减少为0.9°,配上细分驱动器后其步距角可细分达256倍(0.007°/微步)。

步进电机工作原理及控制电路

步进电机工作原理及控制电路

//按键标志变量
flag1=0;
//步进数标志变量
init();
//液晶初始化子程序
while(1)
{
keyscan();
//键盘扫描子程序
if(flag==1)
{
zz();
//正转子程序
}
else if(flag==3) {
fz(); } writebjs(8,count); } }
//反转子程序
it 动机正转,其励磁顺序如图所示。若励磁信号反向传送,则步进电动机反转。励
磁顺序: A→AB→B→BC→C→CD→D→DA→A
A-B 表4.3 1-2 相励磁法
步进电动机的负载转矩与速度成反比,速度愈快负载转矩愈小,当速度快至 其极限时,步进电动机即不再运转。所以在每走一步后,程序必须延时一段时间。 下面介绍的是国产20BY-0型步进电机,它使用+5V直流电源,步距角为18度。电 机线圈由四相组成,即A、B、C、D四相,驱动方式为二相激磁方式,电机示意图 和各线圈通电顺序如图4.2和表4.1所示:
6
法增大起动电流,以提高步进电机转动力矩,即提高其工作频率。由于步进电机
是感性负载,所以进入绕组的电流脉冲是以指数形式上升,即这时电流脉冲i为:
i = IH (1 − e−1/Tj )
(4.4)
公式
其中:i是电流脉冲瞬时值;
IH 是在开关回路电压为u时的电流稳态值;
Tj 是开关回路的时间常数,Tj = L / ( RL + RC )
θ s = 2Π / Nrk
公式(4.1) 或
θ s = 360o / Nrk
公式(4.2)
其中:k是步进电机工作拍数,Nr是转子的齿数。

步进电机控制系统原理

步进电机控制系统原理
• CH250环形脉冲分配器是三相步进电动机的理想脉冲分配器, 通过其控制端的不同接法可以组成三相双三拍和三相六拍的不 同工作方式,如图7、图8所示.
图7 CH250三相双三拍接法
图8 CH250三相六拍接法
CH250环形脉冲分配器的功能关系如表1所列
讨论:
• 单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的 通断.
二、由软件完成脉冲分配工作
• 用微型机代替了步进控制器把并行二进制码转换成 • 串行脉冲序列,并实现方向控制. • 只要负载是在步进电机允许的范围之内, • 每个脉冲将使电机转动一个固定的步距角度. • 根据步距角的大小及实际走的步数,只要知道初始 • 位置,便可知道步进电机的最终位置. • 特点:由软件完成脉冲分配工作,不仅使线路简化,成本下
LOOP2: MOV A,R3 ADD A,#07H MOV R3,A AJAMP LOOP1
DELAY:
;求反向控制模型的偏移量 ;延时程序
POINT
COUNT POINT
DB 01H,03H,02H,06H,04H,05H,00H ;正向控制模型 DB 01H,05H,04H.06H,02H,03H,00H ;反向控制模型 EQU 30H, EQU 0150H
01 100
3、步进电机与微型机的接口及程序设计
总之, 只要按一定的顺序
改变 P1.0~P1.2 三位通电的状况, 即可控制步进电机依选定的方向步进.
3、步进电机与微型机的接口及程序设计
由于步进电机运行时功率较大,可在微型机与驱动器 之间增加一级光电隔离器,以防强功率的干扰信号反 串为进什么主步控进系电统机.功如率图驱所动示电路. 采用光电隔离?
2、步进电机控制系统原理

第3章步进电动机的控制

第3章步进电动机的控制
ƒ
升速 恒速 减速 低速
起点
终点
(时间) t
图3-24
点、位控制中的加减速控制
15
变速控制的方法有:
改变控制方式的变速控制:最简单的变速控制可利用改变步进电 机的控制方式实现。例如:对于三相步进电机系统,启动或停止时 用三相六拍,大约0.1s以后,改用三相三拍,快到达终点时再采用 三相六拍,以达到减速控制的目的。 均匀地改变脉冲时间间隔的变速控制:步进电机的加速(或减速) 控制,可以用均匀地改变脉冲时间间隔来实现。 采用定时器的变速控制:单片机控制系统中,用单片机内部的定 时器来提供延时时间。方法是将定时器初始化后,每隔一定的时间, 由定时器向CPU申请一次中断,CPU响应中断后,便发出一次控制脉 冲。此时只要均匀地改变定时器时间常数,即可达到均匀加速(或 减速)的目的。这种方法可以提高控制系统的效率。
脉冲 方向控制
步进控制器
功率放大器
步进电机
负载
图3-19 步进电机控制系统的组成
2
随着电子技术的发展,除功率驱动电路之外,其它硬件电路均可由软 件实现。采用计算机控制系统,由软件代替步进控制器,不仅简化了 线路,降低了成本而且可靠性也大为提高,同时,根据系统的需要可 灵活改变步进电机的控制方案,使用起来很方便。典型的微型机控制 步进电机系统原理图如图3-20所示。 使用微型机对步进电机进行控制有串行和并行两种方式。 步 进 电 机
6
二、步进电动机的闭环控制

在开环步进电动机系统中,电动机的输出转矩在很大程度上取决于驱 动电源和控制方式。对于不同的步进电动机或同一种步进电动机而不 同负载,励磁电流和失调角发生改变,输出转矩都会随之发生改变, 很难找到通用的控速规律,因此,也很难提高步进电机的技术指标。 闭环系统是直接或间接地检测转子的位置和速度,然后通过反馈和适 当处理自动给出驱动脉冲串。因此采用闭环控制可以获得更精确的位 置控制和更高、更平稳的转速,从而提高步进电动机的性能指标。 步进电动机的输出转矩是励磁电流和失调角的函数。为了获得较高的 输出转矩,必须考虑到电流的变化和失调角的大小,这对于开环控制 来说是很难实现的。

PLC实训程序--步进电机的PLC控制

PLC实训程序--步进电机的PLC控制

步进电机的PLC控制一、实验目的1、掌握PLC控制的基本原理,掌握移位寄存器的使用。

2、掌握步进电机的工作原理,掌握环形分配器的使用方法。

3、掌握运用PLC驱动步进的方法。

二、实验器材1、PLC-2型可编程控制器实验台1台2、步进电机的PLC控制演示板1块3、PC机或手持编程器1台4、编程电缆1根5、自锁式连接导线若干图16.1三、实验原理与实验步骤1、步进电机的PLC控制演示板如图16.1所示。

2、实验原理本演示装置采用的四相步进电机,运用PLC设计一个步进电机的环形分配器的软件程序。

以此来实现步进电机的单步,连续运转。

四相步进电机的结构如下图所示。

演示板上四个LED发光管分别代表步进电机的四个相位。

3、设计要求:按照步进电机的工作方式,设四相线圈分别为A、B、C、D,公共端为E、F。

当电机正向转动时其工作时序如下:A→AB→B→BC→C→CD→D→DA当电机反向转动时其工作时序如下:A←AB←B←BC←C←CD←D←DA要求慢速度为I S—格,快速度为0.1S—格。

4、实验步骤:(1)打开PLC-2型实验台电源,编程器与PLC连接。

(2)根据具体情况编制输入程序,并检查是否正确。

(3)实验台与PLC-DOME008连接,检查连线是否正确。

(4)按下启动按钮,观察运行结果。

四、设计程序清单1、I/O地址分配清单:输入地址:正向启动X0 反向启动X1停止X2 速度控制X3 输出地址: A Y0 B Y1C Y2 C Y3E\F COM2、程序(1)指令表0 LD X0001 OR S02 ANI X0013 ANI X0024 OUT S06 LD X0017 OR S18 ANI X0009 ANI X00210 OUT S112 LD X00313 CJ P0 16 LDI T33 26 OUT Y01527 LDI X00328 CJ P131 P032 LDI T3333 OUT T32 K136 LD T3237 OUT T33 K140 OUT S242 OUT Y01543 P144 LD S245 PLS M1051 ANI M552 ANI M653 ANI M754 AND S155 LDI M256 ANI M357 ANI M458 ANI M559 ANI M660 ANI M761 ANI M862 AND S063 ORB68 AND S069 SFTR M0 M1 K8 K178 MPP79 AND S180 SFTL M0 M2 K8 K189 LD M190 OR M291 OR M892 OUT Y00093 LD M294 OR M395 OR M496 OUT Y00117 OUT T32 K520 LD T3221 OUT T33 K5 24 OUT S2101 LD M6102 OR M7 47 LDI M148 ANI M249 ANI M350 ANI M4103 OR M864 OUT M065 LD M800266 OR M1067 MPS104 OUT Y00397 LD M498 OR M599 OR M6100 OUT Y002105 END梯形图接线图※FX系列的输出继电器的公共端:FX2N-32MR为COM0~COM4;FX2N-48MR为COM0~COM5; FX1N-60MR为COM0~COM7五、思考题1、如果是三相步进电机,工作方式为三相六拍,程序该如何编制?2、如果是E、F公共端不接,作为二相时机使用,程序又该如何处理?。

步进电机控制实验实验报告及程序

步进电机控制实验实验报告及程序

实验九步进电机控制实验姓名专业通信工程学号成绩一、实验目的1.掌握keil C51软件与proteus软件联合仿真调试的方法;2.掌握步进电机的工作原理及控制方法;3.掌握步进电机控制的不同编程方法;二、实验仪器与设备1.微机1台2.keil C51集成开发环境3.Proteus仿真软件三、实验内容1.用Proteus设计一四相六线步进电机控制电路。

要求利用P1口作步进电机的控制端口,通过达林顿阵列ULN2003A驱动步进电机。

基本参考电路见后面附图。

2.编写程序,实现步进电机的正反转控制。

正反转时间分别持续10S时间,如此循环。

3.设计一可调速步进电机控制电路。

P3.2~P3.5分别接按键k1~k4,其中k1为正反转控制按键,k2为加速按键,k3为减速按键,k4为启动/停止按键,要求速度7档(1~7)可调,加减速各设3档,复位时位于4档,要求每档速度变化明显。

该步进电机控制电路在以上电路的基础上自行修改。

四、实验原理1.步进电机控制原理:1)步进电机是利用电磁铁的作用原理,步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

每来一个电脉冲,步进电机转动一定角度,带动机械移动一小段距离。

特点A.来一个脉冲,转一个步距角。

B.控制脉冲频率,可控制电机转速。

C.改变脉冲顺序,可改变转动方向。

2)以反应式步进电机为例说明步进电机的结构和工作原理。

三相反应式步进电动机的原理结构图如下,定子内圆周均匀分布着六个磁极,磁极上有励磁绕组,每两个相对的绕组组成一相。

转子有四个齿。

给A相绕组通电时,转子位置如图(a),转子齿偏离定子齿一个角度。

由于励磁磁通力图沿磁阻最小路径通过,因此对转子产生电磁吸力,迫使转子齿转动,当转子转到与定子齿对齐位置时(图b),因转子只受径向力而无切线力,故转矩为零,转子被锁定在这个位置上。

由此可见:错齿是助使步进电机旋转的根本原因。

3)三相反应式步进电动机的控制原理①三相单三拍:A 相→ B 相→ C 相→ A 相②三相六拍:A→AB →B →BC →C → CA→ A③三相双三拍:AB →BC →CA→AB4)步距角计算公式:θ—步距角 Z r—转子齿数 m —每个通电循环周期的拍数2、ULN2003A:七达林顿阵列ULN2003A是集成达林顿管反相驱动电路,内部还集成了一个消线圈反电动势的二极管,可用来驱动电机、继电器等功率器件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

步进电机的控制电路和程序
先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。

上图是我们将要使用的51单片机综合学习系统硬件平台,本期实验我们用到了综合系统主机、步进电机,综合系统其它功能模块原理与使用详见前几期《电子制作》杂志及后期连载教程介绍。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

步进电机分类与结构
现在比较常用的步进电机分为三种:反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)。

本章节以反应式步进电机为例,介绍其基本原理与应用方法。

反应式步进电机可实现大转矩输出,步进角一般为1.5度。

反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。

常用小型步进电机的实物如图1
所示。

图1步进电机实物图

2 步进电机内部图
步进电机现场应用驱动电路
综合系统使用的是小型步进电机,对电压和电流
要求不是很高,为了说明应用原理,故采用最简单
的驱动电路,目的在于验证步进电机的使用,在正
式工业控制中还需在此基础上改进。

一般的驱动电
路可以用图3的形式。

图3 一般驱动电路
在实际应用中一般驱动路数不止一路,用上图的分立电路体积大,很多
场合用现成的集成电路作为多路驱动。

常用的小型步进电机驱动电路可以用
ULN2003或ULN2803。

本书配套实验板上用的是ULN2003。

ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。

ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。

ULN2003内部结构及等效电路图如图4:
图4 ULN2003内部框图及等效电路图
ULN2003A型高压大电流达林顿晶体管阵列电路的典型应用电路框图如图5所示。

钳位二极管用于保护线圈通断时的反电动势击穿集成电路,可以看出,该电路的应用非常简单。

图5 典型应用图
步进电机的程序设计
实现功能:开发板上电时电机正转,按住51单片机综合学习
系统上的按键SW20(P14)时反转。


6 步进电机实验演示图
电机正反转的环形脉冲分配表如下:
步数P00 P01 P02 P03 A B /A /B
1 1 1 0 0
2 0 1 1 0
3 0 0 1 1
4 1 0 0 1 表1:正转环形脉冲分配表
步数P00 P01 P02 P03 A B /A /B
1 1 1 0 0
2 1 0 0 1
3 0 0 1 1
4 0 1 1 0
表2:反转环形脉冲分配表
硬件原理图
图7 硬件原理图
程序流程图
图8 软件流程图
/*步进电机演示程序*/
/*目标器件:AT89S51 晶振:11.0592MHZ*/
/*编译环境:Keil 7.50A*/
/*********************************包含头文件********************************/ #include <reg51.h>
/*********************************端口定义**********************************/ sbit key = P1^4;
/*************************************************************
函数功能:延时子程序
入口参数:
出口参数:
************************************************************/
void delay(void)
{
int k;
for(k=0;k<2000;k++);
}
/************************************************************
函数功能:主程序
***********************************************************/
void main()
{
P0=0x00; //输出全高
key=1; //按键置输入状态
while(1) //主循环
{
if(key==1) //无键按下正转
{
P0=0xFC;//1100
delay();
P0=0xF6;//0110
delay();
P0=0xF3;//0011
delay();
P0=0xF9;//1001
delay();
}
Else //有键按下反转
{
P0=0xFC;//1100
delay();
P0=0xF9;//1001
delay();
P0=0xF3;//0011
delay();
P0=0xF6;//0110
delay();
}
}
}。

相关文档
最新文档