步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。

    步进电机没有编码器,是开环的,但我们可以通过控制**脉冲频率**来控制电机转动的速度和加速度,从而达到调速的目的。

    在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数(区别于PWM:PWM通过占空比来改变高低电平变换,改变了输出的频率从而改变转速),而不受负载变化的影响。

    步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,
    常见的通电方式有:
    单(单相绕组通电)四拍(A-B-C-D-A)
    双(双相绕组通电)四拍(AB-BC-CD-DA-AB)/ 八拍(A-AB-B-BC-C-CD-D-DA-A)

    28BYJ-48步进电机的步距角是5.625度,也就是说每个脉冲转5.625度,而360/5.625=64,所以64个脉冲转一圈,但这是指电机的转子,而转子到输出轴有齿轮减速器连接,减速比为64,那么转子转64圈,输出轴转一圈,所以结论是6464=*4096个脉冲才能使输出轴转一圈。
    图片.png

    电机控制顺序及数学模型
    1 2 3 4 5 6 7 8
    A 1 1 0 0 0 0 0 1
    B 0 1 1 1 0 0 0 0
    C 0 0 0 1 1 1 0 0
    D 0 0 0 0 0 1 1 1
    0x08 0x0C 0x04 0x06 0x02 0x03 0x01 0x09
    1. #define MotoA 0x08
    2. #define MotoAB 0x0C
    3. #define MotoB 0x04
    4. #define MotoBC 0x06
    5. #define MotoC 0x02
    6. #define MotoCD 0x03
    7. #define MotoD 0x01
    8. #define MotoDA 0x09

    驱动步进电机:周期输出脉冲
    / 依照A->AB->B->BC->C->CD->D->DA 驱动,异或反向驱动 /
    停止步进电机:关闭输出脉冲

    步进电机只发生抖动,却不旋转,可能原因:看速度,是不是太快,速度太高发出高频声音,太低会产生一种沉闷的声音导致其抖动不转,要根据不同的现象做出调整。