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的主要内容,如果未能解决你的问题,请参考以下文章
Ardunio使用ULN2003驱动28BYJ-48步进电机
MicroPython TPYBoard v102 驱动28BYJ-48步进电机
ESP8266 驱动步进电机(28BYJ-48电机 ULN2003 驱动板)