第10章 步进电机控制.docx
- 文档编号:15790022
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:27
- 大小:522.50KB
第10章 步进电机控制.docx
《第10章 步进电机控制.docx》由会员分享,可在线阅读,更多相关《第10章 步进电机控制.docx(27页珍藏版)》请在冰点文库上搜索。
第10章步进电机控制
第10章步进电机控制
10.1概述
步进电机(steppingmotor),顾名思义,就是一步一步行进的电机,是一种将电脉冲转化为角位移的执行元件。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角),它的旋转是以步进角一步一步运行的。
您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
对于转动方向,是沿顺时针还是沿逆时针,则由输入脉冲的先后顺序决定。
由此可见,步进电机非常适合用数字或微型计算机来控制,用单片机控制步进电机自然就顺理成章了。
10.2步进电机
10.2.1步进电机
步进电机的实物图如图10-1所示。
图10-1步进电机的实物图
10.2.2步进电机的分类
目前比较常用的步进电机,包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。
永磁式步进电机一般为两相,步进角一般为7.5度或15度,特点是输出力矩大,动态性能好,但步距角大。
反应式步进电机一般为三相,步进角一般为1.5度,可实现大转矩输出,但噪声和振动都很大。
混合式步进电动机综合了反应式、永磁式步进电动机两者的优点,它的步距角小,输出力矩大,动态性能好,是目前性能最高的步进电动机,其中两相步进角一般为1.8度。
这种步进电机的应用最为广泛。
10.2.3步进电机的工作原理
在结构方面,步进电机与其它类型的电机类似,主要构件依然是定子和转子,且定子和转子上有许多细小的齿。
其中,转子是永久性磁铁,定子上绕有励磁线圈。
步进电机的工作原理简言之就是:
脉冲电流流过定子上的励磁线圈后产生的磁场,将转子上邻近的相异磁极吸引过来,使转子绕轴转动。
给步进电机通入一个脉冲电流,步进电机就转动一步,再通入一个脉冲,它会再转动一步,因此,只要依照特定顺序连续不断地给励磁线圈通入脉冲电流,步进电机就会按照要求连续不断地转动起来。
步进电机转过的角位移量(角度)与输入的脉冲个数成正比,通过控制脉冲个数就可以控制角位移量。
步进电机的转速是由脉冲频率控制的,两个相邻脉冲电流之间的时间间隔越短,单位时间内通入到步进电机的脉冲电流个数就越多,则转子转过的角位移量就越大,也就是角速度越大,步进电机就转得越快。
给多个励磁线圈依次通电的次序将决定转子转动的方向。
10.2.4步进电机的步进角和励磁线圈通电方式
1、步进电机的相线数
依据步进电机定子上励磁线圈的配置不同,步进电机可分为2相、3相、4相、5相等,比较常见的是2相和4相步进电机。
图10-2是2相4线步进电机电路示意图。
图中,红绿为1相,黄蓝为另外1相。
有四根线,所以是2相4线。
图10-3是4相6线步进电机电路示意图。
图中,4相分别是红、黄、绿、蓝。
红白构成1相,绿白构成1相,黄黑、蓝黑也各构成1相,即4相,外加白和黑两根线,便构成4相6线。
图10-22相4线步进电机电路示意图图10-34相6线步进电机电路示意图
2、步进角
若转子上有N个齿,则相邻两个齿之间的距离(齿间距)θ为:
θ=360°÷N;步进角δ为齿间距÷(2×相数)。
对于4相50齿的步进电机而言,齿间距θ=360÷50=7.2°;步进角δ=7.2÷(2×4)=0.9°,即该步进电机每行进一步,转子转过0.9°。
而对于2相50齿的步进电机而言,步进角δ=7.2÷(2×2)=1.8°,即该步进电机每行进一步,转子转过1.8°。
3、励磁线圈通电方式
对于步进电机而言,其励磁线圈的排列顺序,以及通入的脉冲电流的次序,不仅决定了转子的转动方向,还与步进电机的转动力矩、动态特性等紧密相关,所以非常重要。
以下以2相4线步进电机为例(步进角1.8°),说明其励磁线圈通电方式。
◆1相通电
1相通电方式是在任意时刻,只有一个励磁线圈通有脉冲电流,每通入一个脉冲电流,步进电机转过1.8°。
这种通电方式最简单,且步进精度高,但输出的转动力矩较小,振动较大。
这种通电方式一般以四步为一个周期,周而复始地循环。
表10-1具体说明了2相4线步进电机1相通电方式时,各励磁线圈的通电次序。
表10-11相通电方式时各励磁线圈的通电次序
步数
红(A)
黄(B)
绿(A\)
蓝(B\)
16进制值
1
1
0
0
0
0x08
2
0
1
0
0
0x04
3
0
0
1
0
0x02
4
0
0
0
1
0x01
如表10-1所示,从第1步开始,再依次是第2步、第3步,第4步,并按表中所示给具体励磁线圈通入脉冲电流(1代表高电平,表示通入脉冲电流;0代表低电平,表示不通入脉冲电流),步进电机转子就转过了7.2度(假设是顺时针)。
如果需要继续顺时针转动,则又从第1步开始,即步数依照1→2→3→4→1→2……的顺序。
如果要顺时针转一圈,则需要50次从第1步到第4步这样的循环(50×7.2=360)。
如果要逆时针转一圈,同样需要循环50次,但是通电次序与顺时针转动相反,即步数依照4→3→2→1→4→3……的顺序。
◆2相通电
2相通电方式是在任意时刻,有两个励磁线圈通有脉冲电流,每通入一个脉冲电流,步进电机转过1.8°。
这种通电方式下,步进电机的输出力矩大且振动较小,所以这种通电方式被较多使用。
表10-2具体说明了2相4线步进电机在2相通电方式时,各励磁线圈的通电次序。
表10-22相通电方式时各励磁线圈的通电次序
步数
红(A)
黄(B)
绿(A\)
蓝(B\)
16进制值
1
1
1
0
0
0x0C
2
0
1
1
0
0x06
3
0
0
1
1
0x03
4
1
0
0
1
0x09
2相通电方式下的正反转控制、转动一圈所需循环次数,与1相通电方式相同。
此处不再重述。
◆1-2相通电
1-2相通电方式,是1相通电方式与2相通电方式交替通电的方式,每通入一个脉冲电流,步进电机转过0.9°。
这种通电方式下,步进电机的步进角小且振动小,所以在需要精确控制的场合使用较多。
表10-3具体说明了2相4线步进电机在1-2相通电方式时,各励磁线圈的通电次序。
其步数是8步,且转动一圈依旧需要50次循环(0.9×8×50=360)。
表10-31-2相通电方式时各励磁线圈的通电次序
步数
红(A)
黄(B)
绿(A\)
蓝(B\)
16进制值
1
1
0
0
0
0x08
2
1
1
0
0
0x0C
3
0
1
0
0
0x04
4
0
1
1
0
0x06
5
0
0
1
0
0x02
6
0
0
1
1
0x03
7
0
0
0
1
0x01
8
1
0
0
1
0x09
10.2.5步进电机的驱动
由于单片机的输出电流太小,远不能满足步进电机转动的需要,所以步进电机必须要有驱动电路的驱动,才能正常转动。
以下介绍三种常用的驱动电路。
1、基于ULN2803的步进电机驱动电路
对于电流小于0.5A的步进电机,可以使用基于ULN2803的驱动电路。
◆ULN2803芯片简介
ULN2803的PDIP16封装的实物图如图10-4所示,其引脚图如图10-5所示。
图10-4ULN2803的PDIP16封装的实物图图10-5ULN2803的PDIP16封装引脚图
从ULN2803的内部结构可见,ULN2803从本质而言是一个八路非门,内部集成有续流二极管。
输入引脚有I1~I8,对应的输出引脚为O1~O8,GND接地,COMMON端一般接电源,被用作电机驱动时不用外接续流二极管。
为了防止外加12V电压经三极管的基极进入单片机,一般都采用光耦进行隔离,此处选用的是4N35光耦进行隔离。
4N35的实物图如图10-6所示,引脚图如图10-7所示。
图10-6光耦4N35实物图图10-7光耦4N35引脚图
◆基于ULN2803的步进电机驱动电路图
以4相6线步进电机为例。
当单片机51的I/O管脚输出高电平时,对应的隔离光耦不导通,其集电极输出为高电平,此高电平再经ULN2803取反后,自然呈现低电平,而中间抽头(白和黑)是共同连接到12V电源端的,此时此相励磁线圈通电,步进电机转动。
相反,当单片机51的I/O管脚输出低电平时,励磁线圈未通电,步进电机不转动。
所以,在此条件下,单片机I/O口输出高电平可以使步进电机转动。
具体电路图如图10-8所示。
图10-8基于ULN2803的小功率步进电机驱动电路
程序清单如下:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitIN1=P2^3;
sbitIN2=P2^2;
sbitIN3=P2^1;
sbitIN4=P2^0;
voiddelay(void)
{
uinti,j;
for(i=1;i<=2;i++)
for(j=0;j<=150;j++);
}
main()
{
while
(1)
{
/*IN1=1;IN2=0;IN3=0;IN4=0;delay();//1-2相通电
IN1=1;IN2=1;IN3=0;IN4=0;delay();
IN1=0;IN2=1;IN3=0;IN4=0;delay();
IN1=0;IN2=1;IN3=1;IN4=0;delay();
IN1=0;IN2=0;IN3=1;IN4=0;delay();
IN1=0;IN2=0;IN3=1;IN4=1;delay();
IN1=0;IN2=0;IN3=0;IN4=1;delay();
IN1=1;IN2=0;IN3=0;IN4=1;delay();*/
/*IN1=1;IN2=0;IN3=0;IN4=1;delay();//2相通电
IN1=1;IN2=1;IN3=0;IN4=0;delay();
IN1=0;IN2=1;IN3=1;IN4=0;delay();
IN1=0;IN2=0;IN3=1;IN4=1;delay();*/
IN1=1;IN2=0;IN3=0;IN4=0;delay();//1相通电
IN1=0;IN2=1;IN3=0;IN4=0;delay();
IN1=0;IN2=0;IN3=1;IN4=0;delay();
IN1=0;IN2=0;IN3=0;IN4=1;delay();
}
}
其中,第一模块是1-2相通电,第二模块是2相通电,第三模块是1相通电。
若步进电机振动比较明显时,可以通过修改延时时间加以解决。
2、基于TIP122的步进电机驱动电路
图10-9TIP122实物图
TIP122是中功率达林顿晶体管,其电流放大倍数高达1000,在需要大电流的步进电机驱动电路设计中,被常常采用。
TIP122的实物图如图10-9所示。
其正面从左至右,三个管脚依次是:
基极,集电极和发射极。
考虑到51单片机I/O口的输出电流只有μA级别,难以满足TIP122基极输入电流的需要,所以将单片机I/O输出的电流先经方向放大器放大,确保给TIP122的基极提供足够大的电流。
方向器选用74LS00,74LS00是4路两输入与非门,只需将两输入短接,其输出就如同非门。
同时,基极电阻的作用是用来抑制肯定过大的基极电流。
在输出端,要连接一个IN4007的二极管作为励磁线圈的放电续流二极管。
这样,如图10-10所示的就是功能齐全的基于TIP122的步进电机驱动电路。
图10-10基于TIP122的步进电机驱动电路
从图中可见,如果51单片机的I/O口输出低电平,经74LS00非门后变为高电平,此高电平可以使达林顿管TIP122导通,使其集电极输出低电平,连接到步进电机的公共端的电源,恰好给励磁线圈供电,使步进电机转动。
因此,在此电路中,51单片机输出低电平,将使对应的励磁线圈带电。
程序清单如下:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitIN1=P2^3;
sbitIN2=P2^2;
sbitIN3=P2^1;
sbitIN4=P2^0;
voiddelay(void)
{
uinti,j;
for(i=1;i<=2;i++)
for(j=0;j<=150;j++);
}
main()
{
uintm,n;
for(m=1;m<=10;m++)
{
for(n=1;n<=50;n++)
{
/*IN1=0;IN2=1;IN3=1;IN4=1;delay();//1-2相通电
IN1=0;IN2=0;IN3=1;IN4=1;delay();
IN1=1;IN2=0;IN3=1;IN4=1;delay();
IN1=1;IN2=0;IN3=0;IN4=1;delay();
IN1=1;IN2=1;IN3=0;IN4=1;delay();
IN1=1;IN2=1;IN3=0;IN4=0;delay();
IN1=1;IN2=1;IN3=1;IN4=0;delay();
IN1=0;IN2=1;IN3=1;IN4=0;delay();
/*IN1=0;IN2=1;IN3=1;IN4=0;delay();//2相通电
IN1=0;IN2=0;IN3=1;IN4=1;delay();
IN1=1;IN2=0;IN3=0;IN4=1;delay();
IN1=1;IN2=1;IN3=0;IN4=0;delay();*/
IN1=0;IN2=1;IN3=1;IN4=1;delay();//1相通电
IN1=1;IN2=0;IN3=1;IN4=1;delay();
IN1=1;IN2=1;IN3=0;IN4=1;delay();
IN1=1;IN2=1;IN3=1;IN4=0;delay();
}
}
while
(1);
}
其中,第一模块是1-2相通电,第二模块是2相通电,第三模块是1相通电。
若步进电机振动比较明显时,可以通过修改延时时间加以解决。
图10-11L298N实物图图
3、基于L298N的步进电机驱动电路
L298N是专用驱动集成电路,属于H桥集成电路,其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁
阀等,特别是其输入端可与单片机直接相连,从而很方便地受单片机控制。
为了避免电机对单片机的干扰,电路中一般会加入光耦,进行光电隔离,从而使系统能稳定可靠地工作。
L298N的实物图如图10-11所示,其引脚图如图10-12所示。
图10-12L298N引脚图
基于L298N的步进电机驱动电路如图10-13所示。
使用光耦进行隔离和使用IN4007做续流二极管的作用不再赘述。
使用时,L298N的使能端ENA和ENB都接高电平。
从图中不难分析出,51单片机I/O口输出高电平可以使相应的励磁线圈通电。
图10-13基于L298N的步进电机驱动电路
程序清单如下:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitIN4=P2^0;
sbitIN3=P2^1;
sbitIN2=P2^2;
sbitIN1=P2^3;
sbitENA=P2^4;
sbitENB=P2^5;
voiddelay(ucharm)
{
uinti,j;
for(i=1;i<=m;i++)
for(j=0;j<=150;j++);
}
//************************************************
voidcw12p(ucharnquan)//1-2相顺时针
{
ucharn,i;
for(n=1;n<=nquan;n++)
{
for(i=1;i<=50;i++)
{
IN1=1;IN2=0;IN3=0;IN4=0;delay
(2);
IN1=1;IN2=1;IN3=0;IN4=0;delay
(2);
IN1=0;IN2=1;IN3=0;IN4=0;delay
(2);
IN1=0;IN2=1;IN3=1;IN4=0;delay
(2);
IN1=0;IN2=0;IN3=1;IN4=0;delay
(2);
IN1=0;IN2=0;IN3=1;IN4=1;delay
(2);
IN1=0;IN2=0;IN3=0;IN4=1;delay
(2);
IN1=1;IN2=0;IN3=0;IN4=1;delay
(2);
}
}
}
//*************************************************
voidccw12p(ucharnquan)//1-2相逆时针
{
ucharn,i;
for(n=1;n<=nquan;n++)
{
for(i=1;i<=50;i++)
{
IN1=1;IN2=0;IN3=0;IN4=1;delay
(2);
IN1=0;IN2=0;IN3=0;IN4=1;delay
(2);
IN1=0;IN2=0;IN3=1;IN4=1;delay
(2);
IN1=0;IN2=0;IN3=1;IN4=0;delay
(2);
IN1=0;IN2=1;IN3=1;IN4=0;delay
(2);
IN1=0;IN2=1;IN3=0;IN4=0;delay
(2);
IN1=1;IN2=1;IN3=0;IN4=0;delay
(2);
IN1=1;IN2=0;IN3=0;IN4=0;delay
(2);
}
}
}
//*************************************************
voidcw1p(ucharnquan)//1相顺时针
{
uintn,i;
for(n=1;n<=nquan;n++)
{
for(i=1;i<=50;i++)
{
IN1=1;IN2=0;IN3=0;IN4=0;delay(8);
IN1=0;IN2=1;IN3=0;IN4=0;delay(8);
IN1=0;IN2=0;IN3=1;IN4=0;delay(8);
IN1=0;IN2=0;IN3=0;IN4=1;delay(8);
}
}
}
//*************************************************
voidccw1p(ucharnquan)//1相逆时针
{
ucharn,i;
for(n=1;n<=nquan;n++)
{
for(i=1;i<=50;i++)
{
IN1=0;IN2=0;IN3=0;IN4=1;delay(8);
IN1=0;IN2=0;IN3=1;IN4=0;delay(8);
IN1=0;IN2=1;IN3=0;IN4=0;delay(8);
IN1=1;IN2=0;IN3=0;IN4=0;delay(8);
}
}
}
//************************************************
voidcw2p(ucharnquan)//2相顺时针
{
ucharn,i;
for(n=1;n<=nquan;n++)
{
for(i=1;i<=50;i++)
{
IN1=1;IN2=0;IN3=0;IN4=1;delay(4);
IN1=1;IN2=1;IN3=0;IN4=0;delay(4);
IN1=0;IN2=1;IN3=1;IN4=0;delay(4);
IN1=0;IN2=0;IN3=1;IN4=1;delay(4);
}
}
}
//*************************************************
voidccw2p(ucharnquan)//2相逆时针
{
ucharn,i;
for(n=1;n<=nquan;n++)
{
for(i=1;i<=50;i++)
{
IN1=0;IN2=0;IN3=1;IN4=1;delay(4);
IN1=0;IN2=1;IN3=1;IN4=0;delay(4);
IN1=1;IN2=1;IN3=0;IN4=0;delay(4);
IN1=1;IN2=0;IN3=0;IN4=1;delay(4);
}
}
}
//*************************************************
main()
{
ENA=1;
ENB=1;
while
(1)
{
//cw12p(5);//串联接法时,12相延时2ms;并联接法时,1相延时2ms
//ccw12p(5);
//cw1p(5);//串联接法时,1相延时4ms;并联接法时,1相延时8ms
//ccw1p(5);
cw2p(5);//串联接法时,1相延时2ms;并联接法时,1相延时4ms
ccw2p(5);
}
}
10.3步进电机的线路连接
10.3.1二相四线步进电机
二相四线步进电机的电路示意图如图10-14所示,其接线端头一般是红黄绿蓝四种颜色,这种步进电机一般用H桥式驱动电路驱动,例如基于L298N的步进电机驱动。
在步进角为1.8°时,无论是1相通电、2相通电,200个脉冲电流将使其转动一圈,对于1-2相通电,一般是8拍励磁步进角为0.9°,400个脉冲电流将使其转动一圈。
图10-14二相四线步进电机的电路示意图
10.3.2四相六线步进电机
四相六线步进电机的电路示意图如图10-15所示,其接线端头除红黄绿蓝四种颜色,还有一黑一白两根中间抽头,这种步进电机可以用H桥式驱动电路驱动,也可以用基于ULN2803或者TIP122的驱动电路。
不同之处是,在使用基于L298N的H桥式驱动电路驱动时,中间抽头(黑白)可以悬空不接,仍然按照两相四线的连接方法接线。
在使用基于ULN2803或者TIP122的驱动电路时,中间抽头(黑白)要同时连接到电源的正极才可以工作。
其它与两相四线连接相同。
图10-15四相六线步进电机的电路示意图
10.3.3四相八线步进电机
四相八线步进电机的电路示意图如图10-16所示,它的接线端有红长、红短、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 步进电机控制 10 步进 电机 控制