步进电机(英文:Stepper Motor)内部转子是一个有极性的永磁体(可以理解为一块强磁铁),定子内嵌入若干组线圈。当我们给定子的某些线圈通以一定方向的电流,就会在定子内部形成一个确定方向的磁场。在这个磁场作用下,永磁体定子会根据N极—S极相吸的原理(专业术语:磁阻最小原理)进行定位。我们只要改变外界线圈的电流大小和方向,使定子产生的磁场按照一定的方向和速度进行旋转,就能让转子跟着定子的磁场一起旋转。当然,这只是原理图,市面上买到的步进电机结构远比图要复杂:

步进电机内部工作原理(步进电机的原理和控制)(1)

步进电机是标准件,根据输出扭矩的不同,分为各种大小,可以根据需要选型采购。我们常见的42步进电机为两相四线步进电机(两组线圈,每组线圈引出头尾两根线)。而42电机常用的接头为PH2.0标准的6芯接线端子(如下图),这6芯里面有2芯是空的,只有1、3、4、6四根脚连接着里面的线圈。当然,一般买电机的时候,线也是有配的,不需要自己去做接线头。

怎样才能知道究竟哪两条线对应着电机里的同一个线圈呢?不需要把电机拆开,只要手头有万用表,用“导通测试”档位测试,接到同一组线圈上时会有声响。或者用“欧姆”档位测试,线圈电阻应该非常小。 如果手头连万用表都没有,还有一种办法:先把四根线分开,旋转电机轴,此时应该是比较轻松能转动的。如果同一组线圈的两条线被短接,由于旋转时感应电动势能产生大的感应电流阻碍旋转,电机轴的旋转会变得相当费力。可以用这样的方法辨别。对于两相四线的电机来说,假如我们把线圈分为A、B两组,以 、-代表不同的电流方向,那么一个通电循环可以视作:A 、B 、A- 、B- 。这样一个通电循环,通电次数改变4次,我们称为“4步”。

实际使用的步进电机都不是4步转一圈的,因为这样一方面精度差,另一方面低速性能也很差。我们常用的步进电机一般在结构上设计为200步转一圈,也就是说一步转动360/200=1.8°,我们把这个1.8°称为步进电机的步距角。步距角是步进电机生产出来就确定的参数。

现在我们首先要解决的问题是,怎么用电控制步进电机线圈的通电和断电。可不要指望能直接把控制器的5V电压加到电机上,电机是靠电流产生力矩的(理解一下F=BIL),单片机、PLC这类控制器可以输出电压,但是输出电流的能力很弱(因为内阻非常大)。我们只能把控制器当成一个“开关”,去控制一个大电流的通或者断。这时候需要用到的是功率晶体管(MOSFET,Metal Oxide Semiconductor Field Effect Transistor,金属氧化物半导体场效应管。

步进电机内部工作原理(步进电机的原理和控制)(2)

以左侧的N-channel场效应管为例,source接地,不加电压的时候,drain和source是断开的。当我们在gate端加上一个高电压,drain端和source端就会导通,可以通过大电流。所以用这样的晶体管,就可以做到用电压控制电路的开关。 但是我们的线圈需要的是正向、反向都能通电。怎么样才能做到这样的效果呢?可以把四个晶体管叠在一起形成这样的一个电路:

步进电机内部工作原理(步进电机的原理和控制)(3)

这个电路称为H桥电路,通过控制晶体管的导通和关断,就可以控制电机线圈的电流流向。这个电路也不需要我们自己去搭,市面上有现成的H桥驱动器,比如L298N,这是一个内含两个H桥的驱动芯片,可以驱动一个两相四线步进电机:

步进电机内部工作原理(步进电机的原理和控制)(4)

L298N这个芯片淘宝就可以买到。如果用这个芯片的话,我们就需要通过单片机来单独控制每一个线圈的通和断。但是这样使用是比较麻烦的。第一,这样很浪费资源。这里的“资源”指的是控制器上的接口。控制器此时需要花非常多的精力在控制四个脚的开开关关上。第二,这样控制精度很差。考虑一下我们现在的电机200步转一圈,折算到滑台上就是200步走8毫米,一步走0.04毫米。也就是说直线滑台的定位只能以0.04毫米为单位,这个精度是很差的,定位精度已经如此,加工精度就更差了。首先我们来看看定位精度差的问题怎么解决。刚才我们提到我们通电的顺序是:A 、B 、A- 、B- 。 这种通电方法,是对整组线圈进行通、断控制,这种方法叫做整步运行。如果我们要让定位精度高一倍,那么肯定不能整组线圈只有通断,还要有电流大小的控制,比如: A 、0.707(A &B )、B 、0.707(B &A-)、A-、0.707(A-&B-)、B-、0.707(B-&A )。

步进电机内部工作原理(步进电机的原理和控制)(5)

这里 0.707(A &B )指的是给A 、B 线圈同时通以0.707(二分之一根号二)倍的电流,这样磁场就会指向A 、B 的角平分线方向,并且大小保持一致。这种通电方式,相当于在前面的整步运行的四步中另外插入了四步,总共八步为一周期。这样的话,电机转一圈就需要400步了,每一步的分辨率就提高了。这种工作方式称为细分运行,在这里我们把电机每圈的步数变为原来的两倍,称为2细分。 这样下去,大家很容易知道,可以计算出4细分、8细分、……、256细分等高细分下每一步下每个线圈的电流,从而通过电流细分的方式大大提高步进电机的分辨率。

步进电机内部工作原理(步进电机的原理和控制)(6)

比如常见的16细分,电机转动一圈需要的步数是200*16=3200步,相当于400步一毫米,每一步2.5微米,这个精度就比较好了。此外,细分越多,我们可以发现电机上的电流越接近正弦波,这样电机运行时的噪音也会有所减小。现在大家可能会开始头疼于计算每个细分下的电流大小了。这个工作量可不小,不过不要紧,别人已经帮我们做好了集成的步进电机驱动器。通过集成的驱动器,也可以解决前面所说浪费控制器资源的问题。我们最开始只要买来用就行了。

,