Arduino程序设计(十五)步进电机驱动(28BYJ-48)


前言

  • 本文介绍28BYJ-48步进电机驱动原理及实验,主要内容有:
  • 1、介绍28BYJ-48步进电机;
  • 2、介绍ULN2003驱动板;
  • 3、自编程序控制步进电机正转;
  • 4、调用库函数控制电机正反转。

一、28BYJ-48步进电机

1、步进电机

  • (1)工作原理

  • 步进电机通过一系列离散的步进动作来实现旋转。每个电脉冲信号驱动电机转动一个固定的角度,称为步距角。步进电机的控制通常通过一个驱动器(步进驱动器)来完成,该驱动器接受来自控制器的脉冲信号,并将其转换为步进电机的相位信号,从而驱动电机按预定的步进角度转动。

  • 简单来说:就是给步进电机不同的相轮流通电,在电磁感应的作用下,每次产生一个很小的角位移,连贯起来就带动了电机的转动,从而驱动负载。

  • 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB),后两种常用。

  • 步进电机控制特点:

  • ① 它是通过输入脉冲信号来进行控制的。

  • ② 电机的总转动角度由输入脉冲数决定

  • ③ 电机的转速由脉冲信号频率决定

  • (2)步进电机控制的基本概念

在这里插入图片描述

2、28BYJ-48

在这里插入图片描述

  • 28BYJ-48是一种常见的单极性五线四相步进电机.

  • “单极性”指线圈中电流的方向是确定的,不可翻转;对应的,“双极性”指线圈冲存在两种不同地电流方向。

  • 五线:电机外部引出五条线。

  • 四相:电机内部的定子上有8个齿,正对着的2个齿上的绕组又是串联在一起的,也就是说正对着的2个绕组总是会同时导通或关断的,如此就形成了4相。
    在这里插入图片描述

  • (1)基本参数:

型号 28BYJ48
相数 4相
驱动方式 1-2 相励磁单极驱动,本文选用ULN2003驱动芯片
步距角 5.625°/64 (输出轴),减速比1/64
工作电压 5VDC(电机端子)
线圈电阻 50Ω±7%/相 25℃
最大空载牵出频率 >900pps
最大空载牵入频率 >900pps
牵入转距 >300gf.cm / 5VDC 100pps
绝缘电阻 在引接线和外壳之间施加500VDC,测得绝缘电阻大于10MΩ。
电气强度 在引接线和外壳之间施加50/60Hz 500VAC,时间1分钟,泄漏电流设置为1mA,(或50/60Hz 600VAC,时间1秒钟,泄漏电流设置为1mA),应无击穿或闪络。在这里插入图片描述
电机绕阻温升 电机在5VDC 100HZ,空载运行条件下,电机温升达到稳定状态时,用电阻法测量电机温升应不大于60K。
  • 关键参数解释如下:

  • ① 相数:4,可独立通电的定子电磁线圈数为4个。

  • ② 驱动方式:1-2相励磁单极驱动,采用一相励磁与二相励磁交替导通的方式。
    在这里插入图片描述

  • 1相励的意思是,在工作瞬间,只能有1个线圈通电。比如上图,我们依次对A、B、C、D相圈通电。完成一轮以后,中间永磁体转子转动一定的角度。

  • 2相励的意思是,在工作瞬间,只能有2个线圈通电。

  • 1-2相励的意思就是工作时,1个线圈、2个线圈交替通电。

  • 这里有个关于这个过程的单位定义,对某相线圈通电,我们叫做一拍,也叫做一步。

  • ③ 步距角:5.625°/64,减速比1/64。
    这里要解释一下,也就是一步转子转动的角度为5.625°。但这里为什么要除以64呢?这是因为28BTYJ-48电极带有减速齿轮箱,可以理解为28BTYJ-48电极是两部分组成,一个步进电机加一个减速部件。这个减速部件将步进电机的转速减慢至1/64。所以最终从转轴上看,每一步转动5.625°/64=0.089°,也就是每一步轴转0.089°。

在这里插入图片描述

  • (2)28BYJ48结构:

在这里插入图片描述

  • (3)28BYJ-48工作原理
    在这里插入图片描述

  • (4)工作方式:

  • 四拍驱动:这是最简单的步进电机驱动方式。这种方式,电机在每个瞬间只有一个线圈导通。
    在这里插入图片描述
    在这里插入图片描述
    通俗解释:按顺序给相应引脚拉高(1)拉低(0)。 一个拉高,其他三个拉低。

  • 八拍驱动:就是在上述四拍切换过程中穿插两个线圈同时拉高的情况。
    在这里插入图片描述
    在这里插入图片描述

  • (5)八拍模式绕组控制顺序表(28BYJ-48电机)

线 1 2 3 4 5 6 7 8
P1-红 VCC VCC VCC VCC VCC VCC VCC VCC
P2-橙 GND GND GND
P3-黄 GND GND GND
P4-粉 GND GND GND
P5-蓝 GND GND GND
  • 四拍驱动:1→3→5→7
  • 八拍驱动:1→2→3→4→5→6→7→8
  • 注意:实际使用时,上表中空白格默认填充高电平。

二、ULN2003驱动板

  • 由于28BYJ-48步进电机消耗大量功率,因此无法直接由Arduino等微控制器控制。为了控制电机,需要使用ULN2003等驱动IC;因此,该电机通常配备基于 ULN2003 的驱动板。
  • ULN2003是一个单片高电压(最高可达50V)、高电流(单个额定输出500mA)的达林顿晶体管阵列集成电路。 它是由7对NPN达林顿晶体管组成的,它的高电压输出特性和阴极钳位二极管可以转换感应负载。每个晶体管对可驱动高达 500mA 和 50V 的负载,达林顿管并联可以承受更大的电流。
  • ULN2003可以作为继电器驱动器,字锤驱动器、灯驱动器、显示驱动器(LED气体放电),线路驱动器和逻辑缓冲器。ULN2003的每一对达林顿晶体管的基极都有一个2.7k的串联电阻,可以直接和TTL或者5V的CMOS装置连接。它实际上就是一个功率放大器,输出端具有较大的驱动能力(电流较大)。
  • ULN2003内部原理图和引脚定义如下所示:

在这里插入图片描述

  • 该驱动板使用7对NPN达林顿晶体管中的四对,并且有四个控制输入和一个电源连接。

  • 此外,还有一个与电机上的连接器兼容的 Molex 连接器,允许将电机直接插入其中。

  • 该板包括四个 LED,用于指示四个控制输入线上的活动。它们在行走时提供良好的视觉指示。

  • 板上有一个开/关跳线,用于在需要时禁用步进电机。

1、驱动模块介绍

在这里插入图片描述

  • 上图是五线四相步进电机驱动模块也叫ULN20003驱动板,该模块使用ULN2003大功率达林顿芯片驱动步进电机。A、B、C、D发光二极管指示四相步进电机工作状态,配有步进电机的标准接口,使用时可直接插拔。驱动板基本参数如下:
    在这里插入图片描述

2、硬件电路连线

Arduino开发板引脚 ULN2003驱动板 功能
GND GND(黑色) 负极
5V VCC(红色) 正极
D4 IN1 驱动信号1
D5 IN2 驱动信号2
D6 IN3 驱动信号3
D7 IN4 驱动信号4

3、steper库常用函数

steper库函数 说明 语法 参数
Stepper mystepper() 输入参数步数,引脚 Stepper mystepper(STEPS,pin1,pin2,pin3,pin4) STEPS: 电机旋转一周的步数(整数型);pin1, pin2: 连接电机的引脚编号(整数型);pin3, pin4: (可选参数)连接电机的引脚编号(整数型)
mystepper.setSpeed() 设定步进电机速度为SPEED rpm mystepper.setSpeed(SPEED) 设定转速,单位为rpm,比如setSpeed(200),就是转速为200转每分钟。但这里的转速是不带减速比的。
mystepper.step() 步进电机走steps步 mystepper.step(steps) steps: 电机运行的步数(整数型)。
  • 注意:
  • (1) arduino自带的steper驱动库,查看stepper函数的源代码,使用的是2相励驱动,而规格书中,是1-2相励驱动,所以不可以直接使用
  • (2)修改Stepper.cpp源代码,支持1-2相励模式,Stepper.cpp改动后另存为Stepper_28BYJ48.cpp和Stepper_28BYJ48.h文件。
  • &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值