草庐IT

【mcuclub】四相五线步进电机

单片机俱乐部--官方 2024-01-18 原文

一、实物图(四相五线步进电机,型号: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;

   }

}

十、流程设计

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

有关【mcuclub】四相五线步进电机的更多相关文章

  1. STM32F103C8T6编码器电机的使用 - 2

    目录前言一、定时器部分和按键部分二、PWM调速三、电机驱动部分​​​​​​​三、编码器接口部分(测速)四.主函数总结​​​​​​​推荐STM32学习课程:[6-8]编码器接口测速_哔哩哔哩_bilibili[6-8]编码器接口测速是STM32入门教程-2022持续更新中的第20集视频,该合集共计30集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bilibili.com/video/BV1th411z7sn/?p=20&spm_id_from=pageDriver&vd_source=ed36b2700bbc2bac7746c270bc391540OLED显示屏代码

  2. DRV8825步进电机驱动详细说明书————含接线图 - 2

    最近玩步进电机时候,发现步进电机驱动种类多;A4988,drv8825,tb6600,lv8731……;tb6600驱动电流可达4A,1600细分,十分强大,但是体积大,用在平衡车上不太合适。drv8825加散热器驱动电流可达2.5A,32细分,还不错。芯片介绍这里的介绍只介绍其引脚连接。如图是它的说明书中对引脚的解释在这里把它翻译成中文。  为了方便大家使用,说明书还给出了一种典型的连接方式 这样初始化好之后,将AOUT1、AOUT2、BOUT1、BOUT2分别连接到步进电机对应信号线,AOUT1与AOUT2同相,BOUT1与BOUT2同相。判断步进电机信号线是否同相的一个方法是将其中两条接

  3. 【mcuclub】LCD1602显示屏 - 2

    1、实物图2、原理图3、原理介绍LCD1602:LCD1602液晶显示器是一种广泛使用的字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路及其扩展驱动电路,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。用于显示字母、数字和符号等的点阵式LCD,总共可以显示两行数据,每行可以显示16个数据。在哪显示:LCD1602可以显示16*2个字符且通过D0-D7八个引脚传输八位数据,每一个显示的位置都对应上图的一个地址。例如我想在第一行的第三个位置显示,那么就可以锁定上表中的“02”,换算成二进制就是00000010。听上去很简单,但是LCD1602有个特点就是写入显示地址时要

  4. 电机的反电动势了解及步进电机的基本特性 - 2

    电动势,是导体内电子运动的必要条件,也是电子运动趋势的一种表现,因而具有一定的方向性。电动势的方向,规定为从电源的负极,经过电源内部指向电源的正极,即与电源两端电压的方向相反。反电动势,是指由反抗电流发生改变的趋势而产生电动势。反电动势一般出现在电磁线圈中,如继电器线圈、电磁阀、接触器线圈、电动机、电感等。​对于电动机产品,定子部分是电能的输入端,而转子部分则是电机做功的输出端;通过定子部分输入的电能,一部分用于转子部分做功,另一部分则会消耗于线路内阻,以及其他损耗。转子部分产生的反电动势,即电动机做功的要素。反电动势消耗了电路中的电能,但它并不是一种“损耗”,与反电动势对应的那部分电能,将转

  5. L298n电机驱动模块(芯片)快速入门 - 2

    目录l298n模块详解l298n芯片简介 在嵌入式领域中l298n属于最常用的电机驱动模块,该模块稳定,耐用,操作简单备受广大电子爱好者的喜爱,今天小编结合自己开发的经验来给初学者门聊聊如何使用这款模块及芯片的用法l298n模块详解如图所示,模块左右两侧的2P的端子是接入电机的,左右两端分别可以接入一个直流电机。由于直流电机不分正负所以怎样接都是可以的。中间3P的端子分别接12V,GND,5V。黑色排针部分左右两端的跳帽插上代表使能,l298n有两个通道,所以有两个使能跳帽。中间的四个排针是逻辑输入,左边两个为一组,右边两个为另一组,真值表如下图所示下图附带了l298n模块的原理图,想自己di

  6. 【单片机毕业设计】【mcuclub-jj-011】基于单片机的加湿器的设计 - 2

           最近设计了一个项目基于单片机的加湿器系统,与大家分享一下:一、基本介绍项目名:加湿器项目编号:mcuclub-jj-011单片机类型:STC89C52具体功能:1、通过DHT11获取湿度值,当湿度值低于设置最小值,则启动加湿器加湿,大于设置最大值,则停止加湿2、通过液位检测模块检测加湿器中是否还有水,如果没有,则自动停止加湿、声光提醒3、通过按键设置湿度上下限4、通过显示屏显示测量值、手动加湿、切换模式扩展功能:通过蓝牙模块将测量数据发送到手机端,并可以控制是否加湿、切换模式二、51实物图单片机型号:STC89C52板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本

  7. javascript - express 或 express 发电机 : do i need both? - 2

    只是探索node.js并遇到了express;在npm存储库站点上https://www.npmjs.com/package/express它清楚地表明安装是$npminstallexpress但是如果我向下滚动提到快速启动$npminstall-gexpress-generator@4谁能详细解释一下这是怎么回事?我用谷歌搜索并了解到在expressv3中两者被捆绑在一起,但在expressv4中发电机被拉出。所以我需要同时安装两者吗?生成器是否自动安装express而不是相反?我已经有JS疲劳了,我才刚刚开始:-(补充问题:然后让事情更加困惑,我看到另一个问题,问我应该从“npmi

  8. 【嵌入式模块】直流电机驱动L298N,TB6612详解 - 2

    文章目录参考链接概述L298NTB6612FNG参考链接单片机控制直流电机基于L9110S、L298N、TB6612FNG驱动-简书概述  从上面那篇教程我们可以看出,直流电机控制时,只需要给它输入一个PWM波即可,占空比越大,电机运行速度越快。但是一般来说单片机工作电压为5V,且电流较小,而电机运行需要较大的电流,因此往往控制电机运行时,都需要在单片机与电机之间连接一个驱动,即所谓的电机驱动。  目前市面上比较常见的小型车的电机驱动一般有两种:L298N和TB6612FNG,下面分别介绍。L298N引脚定义电气特性  L298N使用时需要用12V供电(9V也行),然后其内部带有稳压模块,如果

  9. QT上位机控制stm32,并利用PID控制编码电机旋转 - 2

    QT上位机控制stm32,并利用PID控制编码电机旋转          由于最近在学习电机控制算法之类的东西,看到论文大多使用PID、或以PID衍生的ADRC作为电机的主流控制,于是自己也写了一个stm32控制L298N以驱动直流电机的程序,并用QT做了一个上位机实现了用软件改变PID的参数、电机转速、转向等功能。一、硬件原理图   实验所用到的硬件有:带霍尔编码器的直流减速电机;    霍尔编码器具体型号为JGB37-520,12V供电,一分钟旋转110转(这里指的时全速运转下的转速),两端红白两线为电机的电源(0、12V),棕蓝两线为霍尔编码器的电源(0、3.3V),中间黄绿两线为霍尔编

  10. Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明 - 2

    陈拓2023/03/24-2023/03/291.ArduinoCNCShieldV3.00电机驱动扩展版注意:板子左侧中间的玻璃管是玻封保险丝。ArduinoCNCShield可以搭载A4988、DRV8825等步进电机驱动模块,用于驱动NEMA17电机(俗称42步进电机)。2.常用的步进电机驱动模块2.1A49882.1.1引脚布局注意:模块使用时需加装散热器。单片机只需要控制两个引脚DIR和STEP即可控制步进电机。2.1.2引脚功能说明从左上角开始,逆时针方向。ENABLE:使能引脚,接低电平使能有效,接高电平模块关闭工作。MS1/MS2/MS3:步进模式细分引脚;不需要使用功能可浮空

随机推荐