步进电机的工作原理与编程方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ME300B型51/AVR单片机学习开发系统应用实例步进电机模块的应用步进电机是一种将电脉冲信号变换成相应的角位移的机电执行元件。控制步进电机的输入脉冲数量、频率及电机各项绕组的接通顺序,可以得到各种需要的运行特性。尤其与数字设备配套时,体现了更大的优越性,因此广泛应用于数字控制系统中。伟纳电子为了能让单片机学习者能在ME300系列单片机开发板上进行有关步进电机知识的学习,专门推出的一款如图1所示的步进电机模块。通过使用步进电机模块,使大家学习与掌握步进电机的基本工作原理和步进电机的控制方法。本文将介绍如何使用ME300B单片机开发系统+步进电机模块实现对步进电机的数字化控制。在这个控制系统中,ME300B担负着产生脉冲,发送控制命令的任务,步进电机模块担负着执行命令的任务。图1一、步进电机模块简介1、步进电机性能指标2相6线式步进电机步距角7.5度工作电压12V(实验时也可以用5V供电,只是力矩变小)额定静力矩>240g/cm动力矩>80g/cm外形:φ35×15mm步进电机结构则如图2所示包含两组带有中间抽头的线圈,A-COM1-C为一组,B-COM2-D为另一组。整个电机共有六条线与步进电机模块J3连接。M桔红黄棕红黑COM1COM2ABCD图22、步进电机模块的工作原理:步进电机模块中使用的驱动芯片为ULN2003A,它是集电极开路输出的功率反相器,并且每个输出端都有一个连接到共同端(COM)的二极管,为断电后的电机绕组提供一个放电回路,起放电保护作用。内部逻辑如图3所示。因此,ULN2003A非常适合驱动小功率的步进电机。图3步进电机模块原理图如图4所示。单片机的P1.0-P1.3输出的脉冲信号经J2送到ULN2003A的IN1-IN4输入端,经ULN2003A放大和倒相后的输出脉冲信号通过J3来驱动步进电机作相应的操作。ULN2003A的COM端和步进电机的COM1、COM2连接到VCC。D1-D4发光二极管可以同步显示驱动步进电机的脉冲信号。二极管D5起外接电源极性保护作用。例如:当单片机的P1.0输出高电平时,ULN2003A的IN1输入端则为高电平,经过ULN2003A放大和倒相后在OUT1输出端输出低电平,使步进电机的A相得电旋转一个步距角,同时D1也被点亮。IN11IN22IN33IN44IN55IN66IN77OUT116OUT314OUT413OUT512OUT611OUT710OUT215COM9GND8U1ULN2003A123456J3步进电机D1D2D3D4470R1470R2470R3470R4VCCVCCVCCABCD12J11234J2D5100uFC2VCCIN1IN2IN3IN40.1uFC15-12V电源图43、与ME300系列开发板上的连接方法使用伟纳定做的20CM杜邦头实验连接线,可以很方便的将ME300B与步进电机模块连接起来。在ME300B上使用时,先将J1(ICE)上的P1.0-P1.3用杜邦头实验连接线连接到步进电机模块J2的IN1-IN4上。再从J7上引出5V电源到步进电机模块J1上。注意:对于V1.5以下版本的ME300B硬件,由于J7输出的5V电源有保护,接上电机后可能引起过载保护,可以将J7的负端切断后直接连到电源负极,这样即可取消J7的过载保护功能。V1.5以上硬件的J7没有经过保护,可以直接输出电源给步进电机模块。二、步进电机的工作原理当步进电机接收到一个脉冲信号,步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度,从而达到调速的目的。步进电机的这些特性非常适合使用单片机来控制,控制信号由单片机产生,步进电机则根据控制信号来动作。1、步进电机的常用术语步距角:表示控制系统每发一个步进脉冲信号,步进电机转子所应转动的角度的理论值。Qn=2π/ZN式中:Z---转子的齿数N---运行拍数,通常等于相数或相数的整数倍,即N=kN1N1---步进电机相数从式中可以看出,运行拍数和转子的齿数不同时,步距角不同,且步距角与运行拍数或转子的齿数成反比。八拍运行方式的步距角要比四拍运行方式的步距角小一半。齿距角:相邻两齿中心线间的夹角,通常定子和转子具有相同的齿距角。Qz=2π/Z式中:Z---转子的齿数步距角与齿距角之间的关系:Qn=Qz/N=2π/NZ式中:N---步进电机工作拍数Z---转子的齿数步进电机转速:n=60×f/N×Z(转/分)式中:f=脉冲频率(Hz)N---步进电机工作拍数Z---转子的齿数从这个公式可以看出步进电机以八拍运行方式工作的转速是以四拍运行方式工作的转速的一半。步进电机的相数:是指步进电机内部的线圈组数。运行频率:是指拖动一定负载使频率连续上升时,步进电机能不失步运行的极限频率。启动频率:是指在一定负载下直接启动而不失步的极限频率。对于步距角为7.5度的步进电机而言:Qn=7.5度Qz=Qn×N=7.5×4=30度(齿距角)Z=2π/Qz=360/30=12(转子的齿数)2、步进电机的基本控制(1)、控制换相顺序步进电机的通电换相顺序严格按照步进电机的工作方式进行。通常我们把通电换相这一过程称为脉冲分配。例如,步进电机的八拍工作方式,其各相通电的顺序为A-AB-B-BC-C-CD-D-DA(正转)或DA-D-CD-C-BC-B-BA-A(反转),通电控制脉冲必须严格这一顺序分别控制A,B,C,D相的通电和断电。(2)、控制步进电机的转向如果按给定的工作方式正序通电换相,步进电机就正转;如果按反序通电换相,则步进电机就反转。(3)、控制步进电机的速度如果给定步进电机一个控制脉冲,它就转一步,再发一个控制脉冲,它就会再转一步。两个脉冲的间隔时间越短,步进电机就转得越快。因此,脉冲的频率决定了步进电机的转速。调整单片机发出脉冲的频率,就可以对步进电机进行调速。调整单片机输出的步进脉冲频率的方法:A、软件延时方法改变延时的时间长度就可以改变输出脉冲的频率,但这种方法使CPU长时间等待,无法进行其它工作,因此没有实用价值。在单独进行步进电机的演示时可以采用。B、定时器中断方法在中断服务子程序中进行脉冲输出操作,调整定时器的定时常数就可以实现调速。这种方法占用CPU时间较少,是一种比较实用的调速方法。用单片机对步进电机进行速度控制,实际上就是控制每次换相的时间间隔。升速时,使脉冲频率逐渐升高,降速时则相反。3、步进电机的三种运行方式(1)、单四拍运行方式当电机绕组通电时序为A-B-C-D时为正转,通电时序为D-C-B-A时为反转。见表1这种驱动方式是如何一个时间,只有一组线圈被激磁,因此产生的力矩较小。表1单四拍运行时序表正转0F1H0F2H0F4H0F8H反转0F8H0F4H0F2H0F1HN=4步距角:Qn=Qz/N=2π/NZ=360/4*12=7.5°则步进电机转一圈所需步进脉冲数:360°/7.5°=48(2)、双四拍运行方式当电机绕组通电时序为AB-BC-CD-DA时为正转,通电时序为DA-CD-BC-AB时为反转。见表2这种驱动方式是在任何一个时间内,有二组线圈同时被激磁,因此产生的力矩较大。表2双四拍运行时序表正转0F3H0F6H0FCH0F9H反转0F9H0FCH0F6H0F3HN=4步距角:Qn=Qz/N=2π/NZ=360/4*12=7.5°则步进电机转一圈所需步进脉冲数:360°/7.5°=48(3)、八拍运行方式当电机绕组通电时序为A-AB-B-BC-C-CD-D-DA时为正转,通电时序为DA-D-CD-C-BC-B-BA-A时为反转。见表3这种驱动方式又承为“半步驱动”,每个驱动信号只驱动半步。表3单双八拍运行时序表正转0F1H0F3H0F2H0F6H0F4H0FCH0F8H0F9H反转0F9H0F8H0FCH0F4H0F6H0F2H0F3H0F1HN=8步距角:Qn=Qz/N=2π/NZ=360/8*12=3.75°则步进电机转一圈所需步进脉冲数:360°/3.75°=96八拍运行方式的步距角要比单四拍和双四拍运行方式的步距角小一半,所以步进精度高一倍。三、步进电机控制的编程方法通过上面的简单介绍,我们知道了步进电机是通过输入脉冲信号来进行控制的,即步进电机的总转动角度由输入脉冲数决定,步进电机的转速由脉冲信号频率决定,而步进电机的转动方向由改变加在步进电机绕组上的脉冲工作时序的相序来决定。(1)、控制换相顺序首先要确定步进电机运行的工作方式,然后根据所选用工作方式的换相顺序进行脉冲分配。例如:选用八拍运行方式,根据该工作方式的换相顺序编写正转脉冲时序表和反转脉冲时序表。TABLE_F:;正转脉冲输出时序表DB0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9HDB00;正转结束TABLE_R:;反转脉冲输出时序表DB0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1HDB00;反转结束三种运行方式的工作时序如表1、表2和表3所示。在内存ROM区域开辟一个区域来存储这两个脉冲输出时序表,然后根据需要来分别调用。由于ME300B在P1.4-P1.7端口接了4个独立按键,所以时序表中数据的高四位均设为“F”使P1.4-P1.7端口处于输入状态,方便使用独立按键控制步进电机的工作状态。P1.0-P1.3输出的步进电机控制脉冲设为高电平导通,低电平截止。(2)、控制步进电机的转向程序按照步进电机正反转的要求依次将存储在内存ROM区域相应的脉冲输出时序表的内容取出去驱动步进电机,就可实现步进电机运行方向的转换。MOVDPTR,#TABLE_F;选择转向(正转)MOVCA,@A+DPTRMOVP1,A;发送驱动脉冲MOVDPTR,#TABLE_R;选择转向(反转)MOVCA,@A+DPTRMOVP1,A;发送驱动脉冲(3)、步进电机的速度控制控制步进电机的运行速度实际上就是控制单片机发出脉冲的频率,输出频率的高低是由延时时间的长短来决定的。DELAY:MOVR5,RATEDEL2:MOVR7,#5DEL3:MOVR6,#250DJNZR6,$DJNZR7,DEL3DJNZR5,DEL2RET延时子程序的延时时间由RATE的值来决定,当RATE的值大时,延时时间长,步进电机的控制脉冲的频率就低,步进电机的转速就慢;当RATE的值小时,延时时间短,步进电机的控制脉冲的频率就高,步进电机的转速就快。因此,通过改变延时时间就可以控制步进电机的转速。(4)、步进电机的总转动角度控制对于7.5度的步进电机在四拍运行方式(俗称整步)下,每输入一拍控制脉冲它就转动7.5度,四拍转动30度(齿距角)。对于7.5度的步进电机在八拍运行方式(俗称半步)下,每输入一拍控制脉冲它转动7.5/2=3.75度,八拍转动30度(齿距角)。步进电机转动一圈需要调用360/30=12次运行时序表。FFW:MOVR3,#5;转5圈MOVR0,#00HMOVR1,#12;调12次运行时序表FFW1:;一次转动30度MOVA,R0MOVDPTR,#TABLE_F;选择运行方向MOVCA,@A+DPTRMOVP1,ALCALLDELAYINCR0JNZFFW1;1次运行时序表是否调完?MOVR0,#00HDJNZR1,FFW1;一圈是否转完?MOVR1,#12DJNZR3,FFW1;设定的圈数是否转完?MOVP1,#0F0H;步进电机停止运行RETTABLE_F:;正转运行时序表DB0F3H,0F6H,0FCH,0F9HDB00H;正转结束标记TABLE_R:;反转运行时序表DB0F9H0FCH,0F6H,0F3HDB00H;反转结束标记在这个程序中只要修改给R3的赋值,就可以调整步进电机的转动的圈数。(5)、步进电机的加减速控制用单片机对步进电机进行加减速控制,实际上就是在步进电机运行过程中逐渐改变控制脉冲的频率。加速时,控制脉冲的频率逐渐升高;恒速时,控制脉

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功