• 【mcuclub】四相五线步进电机


    一、实物图(四相五线步进电机,型号:28BYJ-48-5V)

    二、原理图

    编号名称功能
    1IN1脉冲输入端
    2IN2脉冲输入端
    3IN3脉冲输入端
    4IN4脉冲输入端
    8GND电源地
    9COM续流二极管负极的公共端,接电源正
    13OT4脉冲输出端
    14OT3脉冲输出端
    15OT2脉冲输出端
    16OT1脉冲输出端

    三、简介(工作原理)

    步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速和角加速度与脉冲频率成正比(在非超载的情况下)。因此,步进电动机又称脉冲电动机。步进电机作为一种可控制用的特种电机,利用其没有累计误差的特点,广泛的用于各种开环控制。

    四、步进电机分类

    1、按励磁方式分为:磁阻式(VR)、永磁式(PM)和混磁式(HS);

    磁阻式(又称反应式),定子上有绕组、转子由软磁材料组成。结构简单、成本低、步距角小,可达1.2°、但动态性能差、效率低、发热大,可靠性难保证。

    永磁式:永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为7.5°或15°)。

    混合式:混合式步进电机综合了反应式和永磁式的优点,其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。其特点是输出力矩大、动态性能好,步距角小,但结构复杂、成本相对较高。

    2、按相数分为:单相、两相、三相和多相等形式;

    3、按控制方式来看:开环控制系统、闭环控制系统和半闭环控制系统。

    五、步进电机参数

    1、相数:步进电机的线圈对数(常见的相数为二、三、四、五相,电机相数不同,步距角也不同)

    2、拍数:转子转动一周,定子绕组通电的次数

    3、步距角:步进电机接收到一个脉冲信号后,驱动电机按设定的方向转动的一个固定角度。(由转子齿数和运行拍数决定的,一般较大),可以称之为电机固有步距角,并不一定是电机工作时的真正步距角。

    步距角θ=360°/mzc

    注:m为定子相数;z为转子齿数;c为通电方式(1:单相轮流通电,双向轮流通电;2:单双向轮流通电方式)。

    转速公式:n=60f/P(n为转速;f为脉冲频率;P为磁极对数)

    扭矩公式:T=9550P/n(P为输出功率,单位Kw;n为电机转速,单位r/min)

    4、保持转矩(静转矩):步进电机通电但没有转动时,定子锁住转子的力矩。通常步进电机在低速时的力矩接近保持转矩。步进电机的输出转矩随着速度的增大而不断衰减,输出功率也随着速度的增大而变化。

    5、精度:一般步进电机的精度为步进角的3-5%,且不累计。

    6、空载启动频率:步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,电机的启动频率应更低。应经过低启动频率,然后慢慢到达高频。

    7、线数:步进电机引出线的条数

    8、定位转矩:电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波和机械误差造成的)

    9、失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。

    六、步进电机的步进方式

    1、单拍:(单四拍工作方式)

    每次只给一个线圈通电,通过改变每次通电的线圈从而使步进电机转动。以五线四相步进电机为例,假设它的四个线圈叫做 A、B、C、D,那么在单拍工作方式下,线圈的通电方式依次是:A、B、C、D;

    2、双拍:(双四拍工作方式)

    每次给两个线圈通电,通过改变通电的线圈从而使步进电机转动。

    以五线四相步进电机为例,在双拍工作方式下,线圈的通电方式依次是:AB、BC、CD、DA;

    3、单双拍(八拍工作方式)

    单拍工作方式和双拍工作方式交替进行。

    以五线四相步进电机为例,线圈的通电方式依次是:A、AB、B、BC、C、CD、D、DA;

    七、步进电机的角度

    步距角θ=360°/mzc

    注:m为定子相数;z为转子齿数;c为通电方式(1:单相轮流通电,双向轮流通电;2:单双向轮流通电方式)。

    以四相八拍步进电机为例,此时步距角最小,为5.625°。但是此步进电机还配有减速齿轮,减速比为1:64。因此,实际上每拍电机转动5.625/64≈0.08789°,即转动一圈需要4096拍。

    八:驱动芯片(ULN2003A)

    ULN2003是一种新型的七路高耐压、大电流达林顿晶体管驱动IC。可用于驱动继电器、电磁阀、步进电机等。每路输出电流可达500mA。

     九、程序

    /****

    *******T0计时中断函数

    *****/

    void Timer0_Handler(void) interrupt 1

    {

       static uchar motor_bujin_count = 0;

       static uint motor_step = 0;

       TH0 = (65536-921)/256;           //重新赋初值

       TL0 = (65536-921)%256;

       switch(motor_step % 8)           //步进电机八步解析

       {

          case 0:  MOTOR_IN1=1; MOTOR_IN2=0; MOTOR_IN3=0; MOTOR_IN4=0; break;

          case 1:  MOTOR_IN1=1; MOTOR_IN2=1; MOTOR_IN3=0; MOTOR_IN4=0; break;

          case 2:  MOTOR_IN1=0; MOTOR_IN2=1; MOTOR_IN3=0; MOTOR_IN4=0; break;

          case 3:  MOTOR_IN1=0; MOTOR_IN2=1; MOTOR_IN3=1; MOTOR_IN4=0; break;

          case 4:  MOTOR_IN1=0; MOTOR_IN2=0; MOTOR_IN3=1; MOTOR_IN4=0; break;

          case 5:  MOTOR_IN1=0; MOTOR_IN2=0; MOTOR_IN3=1; MOTOR_IN4=1; break;

          case 6:  MOTOR_IN1=0; MOTOR_IN2=0; MOTOR_IN3=0; MOTOR_IN4=1; break;

          case 7:  MOTOR_IN1=1; MOTOR_IN2=0; MOTOR_IN3=0; MOTOR_IN4=1; break;

       }

       if(flag_bujin_foreward == 1)        //步进电机正转过程

       {

          motor_bujin_count++;

          if(motor_bujin_count > MOTOR_SPEED)

          {

             motor_bujin_count = 0;

             if(motor_step < (MOTOR_ANGLE/180.0*256) * 8)

                motor_step++;

             else

             {

                flag_bujin_foreward = 0;

                flag_bujin_state = 1;

             }

          }

       }

       else if(flag_bujin_reversal == 1)   //步进电机反转过程

       {

          motor_bujin_count++;

          if(motor_bujin_count > MOTOR_SPEED)

          {

             motor_bujin_count = 0;

             if(motor_step > 0)

                motor_step--;

             else

             {

                flag_bujin_reversal = 0;

                flag_bujin_state = 0;

             }

          }

      }

      else                       //步进电机停止

       {

          motor_bujin_count = 0;

          MOTOR_IN1=0; MOTOR_IN2=0; MOTOR_IN3=0; MOTOR_IN4=0;

       }

    }

    十、流程设计

    首先初始化引脚,然后初始化定时器,在定时器中断函数中进行步进电机八步解析,然后根据正转或反转标志位决定正反转。另外,通过比较时间计数值决定步进电机转速,比较节拍数决定步进电机转动角度。

  • 相关阅读:
    《架构整洁之道》读书笔记(下)
    C++函数重载详解
    技术应用:C# System.Data.DataTable().Compute 基本用法
    一文读懂IP定位技术的优缺点
    Ubuntu20.04下载opencv3.4--未完善
    【Spatial-Temporal Action Localization(六)】论文阅读2021年
    大模型Agent最新论文及源码合集,覆盖构建、应用、评估
    lmbench----lmbench性能测试工具迁移至openEuler操作系统实践
    数据湖浅析(以hudi为例)
    141.环形链表
  • 原文地址:https://blog.csdn.net/weixin_61121477/article/details/127763032