28BYJ-48

Posted DO_Tonight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28BYJ-48相关的知识,希望对你有一定的参考价值。

28BYJ-48

"28"指的是电机最大外径。

“B”指的是步进式电机。

“Y”指的是永磁式电机。

“J”指的是减速型电机。

“48”表示可以4拍或者8拍。

步进电机的类型

永磁式、反应式、混合式。

永磁式:步距角大(缺点)

反应式:扭力小(缺点)

混合式:综合了以上两种的优点,步距角小,扭力大。

总而言之,我们还是要根据实际情况的需要来进行选择,比如说永磁式加了减速比之后,精度我觉得也还是可以的。

永磁式步进电机的驱动方式

满步驱动、半步驱动、微步驱动。

满步驱动:就是一次控制一个步距角,比如说4相4拍,就是一个周期控制4次

半步驱动:就是一次控制半个步距角,比如说4相8拍,就是一个周期控制8次

微步驱动:就是利用两个电极分别输出两种波形,使之合起来的波形是成一个线性变化的。这里附上一张图:

步进电机的参数分析

这是28BYJ-48的参数图,我这里主要解释一下几个参数:

空载牵入频率:它是步进电机空载启动的最大频率。(频率太大的话启动不了)

空载牵出频率:它是步进电机正常工作时,所能达到的最大频率(速度)。

步距角:这里除以了64是因为,该电机是有1:64的减速比的,电机内部的步距角是5.625°,但是在外部看来它的一个步距角是5.625°/64。

这里就牵扯到一个小的知识点:我们启动步进电机可以用小一点的频率,然后正常工作时是可以加速的,即“加减速启动”。

步进电机的驱动器

ULN2003

这里我们只需要看这个图就够了。

从本质上来看,这是一个达林顿管的结构,共集电极输出,是对电流的一个放大,因此该驱动器其实就是一个电流放大器,因为单片机的引脚输出电流太小,无法驱动步进电机,通过该驱动器进行放大。

TMC260

听说是一个非常好的步进电机驱动器,可以使用方波控制,也可以使用单片机SPI通信控制。但是他有一个缺点,那就是比较昂贵。

如何驱动步进电机正常旋转

如果事先对步进电机的驱动原理有一定了解的,可以直接往下阅读,如果是完全不懂的,我这里推荐一个视频,看完你就懂了:

完美的讲解了步进电机的基本知识

因此,要使步进电机朝着一个方向进行旋转,就得持续不断的给出四个相的电平。以28BYJ-48为例:

他的步距角是5.625°/64 = 0.08789°,也就是说我们换一次相,电机转过这么多的角度,如果我们想要它正常的旋转,我们就得一直给他进行换相。同理,如果我们想要让它旋转一个固定的角度,我们就可以控制换向的次数后,关闭换向(注意不能持续通电,通路时的大电流容易使得电机线圈发烫和使驱动器ULN2003发烫)

如果我们想要它旋转90度,我们要给它1024次换向。

但是在实际测试的时候发现它只需要换向512次,有没有读者可以给我解答一下为什么?

步进电机的失步处理

梯形加减速算法

优点:可以在启动和停止的瞬间防止丟步。

缺点:在加速到匀速和匀速到减速的瞬间还是会有一个比较大的突变,可能会产生丟步现象(因为我还没有实际实现这个方案,暂时还不可知),针对这一个缺点,于是提出了S型加减速算法。

由于我目前手头的驱动器ULN2003无法做到这样的控制,因此无法实际操作。这里只提供一个理论基础。

具体的可以参考野火给出的:我觉得讲的很清晰,自己可以顺着他的数学公式推到一遍:

野火的文章 野火的视频

S型加减速算法

现有条件失步处理的猜想

首先手头有1024线编码器, 可以很好的做到闭环控制。

其次,针对特殊的应用场合,我们可以采用别的传感器进行一个闭环的反馈,例如光电传感器等等。

以上是关于28BYJ-48的主要内容,如果未能解决你的问题,请参考以下文章

28BYJ-48

Ardunio使用ULN2003驱动28BYJ-48步进电机

MicroPython TPYBoard v102 驱动28BYJ-48步进电机

ESP8266 驱动步进电机(28BYJ-48电机 ULN2003 驱动板)

Arduino Stepper库驱动28BYJ-48步进电机测试程序

28BYJ-48步进电机