工业控制
步进电机广泛用于控制我们每天看到的众多常见设备。从百叶窗、3D打印机和DVD播放器到安全摄像头和CNC机器,步进电机比您想象的更接近我们的生活。
探索步进电机的第一步是使用28BYJ-48步进电机。它们通常附带有基于ULN2003的驱动电路板,这使得它们非常易于使用。
你知道这些步进电机是如何工作的吗?
这些步进电机使用一个带齿的轮子(有32个齿)和四个在轮子周围形成一个环的电磁铁。
发送的每个高脉冲都会使线圈通电,吸引最靠近齿轮的齿,并以精确且固定的角度增量(称为步进)旋转电机。
向这些线圈发送脉冲的方式会极大地影响电机的行为。
● 脉冲序列决定了电机的旋转方向。
● 脉冲的频率决定了电机的速度。
● 脉冲数决定了电机将转动多远。
28BYJ-48步进电机
28BYJ-48是一款5线单极步进电机,运行电压为5V。
这种电机最大的优势是它可以一次精确地定位一次步进。在需要精确定位的项目中它表现良好,例如打开和关闭通风口。
另一个优点是它的运动相对精确,并且由于电机不使用接触刷而非常可靠。
考虑到它的尺寸,电机在大约15RPM的速度下可提供34.3mN.m的不错扭矩。它即使在静止状态下也能提供良好的扭矩,只要向电机供电就可以保持这种扭矩。唯一的缺点是它有点耗电,即使它不移动也会消耗电力。
引脚排列
28BYJ-48是5线步进电机。引脚排列如下:
28BYJ-48由两个线圈组成,每个线圈都有一个中心抽头。两个中心抽头在内部连接并作为第5根线(红线)引出。
线圈的一端和中心抽头一起形成一个相位。因此28BYJ-48共有4个相位。
红线一直是高电平。当另一条引线拉低时,该相通电。
只有当相位以称为步进时序的逻辑顺序通电时,步进电机才会旋转。
齿轮减速比
根据数据表,当28BYJ-48电机在全步模式下运行时,每步对应于11.25°的旋转。这意味着每转有32步 (360°/11.25° = 32)。
除此之外,电机还有1/64减速齿轮组。 (实际上它是1/63.68395,但对于大多数用途来说,1/64是一个足够好的近似值)
这意味着实际上有2038步(每转 32*63.68395 步 = 2037.8864 大约2038步)。
功耗
28BYJ-48通常消耗大约 240mA。
由于电机消耗大量电流,因此最好直接从外部5V电源为其供电,而不是从Arduino获取电量。
请注意,即使在静止状态下,电机也会消耗电量以保持其位置。
技术规格
以下是完整的规格:
工作电压 | 5VDC |
工作电流 | 240mA(典型) |
相数 | 4 |
齿轮减速比 | 64:1 |
步距角 | 5.625°/64 |
频率 | 100Hz |
牵引扭矩 | >34.3mN.m(120Hz) |
自定位扭矩 | >34.3mN.m |
摩擦力矩 | 600-1200 gf.cm |
拉入扭矩 | 300 gf.cm |
该电机的有关详细信息,请参阅下面的数据手册:28BYJ-48数据手册。
ULN2003驱动板
由于28BYJ-48步进电机消耗大电流,像Arduino这样的微控制器无法直接控制电机。它需要一个像ULN2003这样的驱动器IC来控制电机,所以这个电机通常带有一个基于ULN2003的驱动板。
ULN2003以其大电流和高电压能力而闻名,它提供比单个晶体管更高的电流增益,并使微控制器的低电压低电流输出能够驱动高电流步进电机。
ULN2003由一组七个达林顿晶体管对组成,每对能够驱动高达500mA和50V的负载。该驱动板上使用了七对中的四对。
电路板有一个molex连接器,可以完美地连接电机线,从而非常容易地将电机连接到电路板。有四个控制输入和一个电源连接。
该驱动板有四个LED,显示四个控制输入线上的活动(以指示步进状态)。它们在不进时提供了良好的指示。该板还带有一个开/关跳线,用于隔离步进电机的电源。
ULN2003步进驱动板引脚排列
ULN2003步进驱动板的管脚如下:
IN1 – IN4 引脚用于驱动电机。将它们连接到Arduino上的数字输出引脚。
GND 是公共接地引脚。
VDD 引脚为电机供电。将其连接到外部5V电源。因为电机会消耗大量电流,所以切勿使用Arduino的5V电源来驱动此步进电机。
Motor Connector(电机连接器) 这是电机插入的地方。连接器是键控的,所以它只有这一种连接方式。
将28BYJ-48步进电机和ULN2003驱动器连接到Arduino开发板
现在了解了有关电机的所有信息,我们可以开始将它连接到Arduino。
首先将电源连接到ULN2003驱动器。使用独立的5V电源为步进电机供电。
之后,将该电源的接地连接到Arduino的接地。这非常重要,这样我们就可以在两者之间建立相同的电压基准。
现在将驱动板的IN1、IN2、IN3、IN4分别连接到Arduino数字引脚8、9、10和11。最后将电机电缆从步进电机连接到驱动板。
按照如下所示连接所有组件。
Arduino代码 - 使用内置的Stepper库
对于第一个实验,我们将使用与随Arduino IDE一起安装的Arduino Stepper库。
Stepper库负责处理步进时序,并可以轻松控制各种步进电机,包括单极和双极。
以下是使步进电机顺时针缓慢旋转然后逆时针快速旋转的简单草图。
代码说明
首先在草图代码中包含内置的Stepper库。
接下来,我们定义一个常量stepsPerRevolution,它保存电机完成一圈所需的步数。在例子中,它的值是2038。
28BYJ-48单极步进电机步进顺序为IN1-IN3-IN2-IN4。我们将使用这些信息来驱动电机,方法是创建一个名为myStepper实例,其引脚顺序为8、10、9、11。
确保你做对了,否则电机将无法正常工作。
在setup()函数中无需设置任何内容,因为Stepper库在内部将四个I/O引脚设置为输出。
在loop()函数中,我们使用setSpeed()函数来设置希望步进电机移动的速度,然后使用step()函数告诉它要旋转多少步。将负数传递给step()函数会反转电机的旋转方向。
第一个代码片段使电机顺时针旋转非常缓慢。另一个使电机以非常高的速度逆时针旋转。
全部0条评论
快来发表一下你的评论吧 !