Arduino步进电机接口使用Darlington IC ULN2003A

在本文中,我们发布了一个项目,该项目解释了将步进电机与Arduino接口的不同方面。步进电机是一种特殊设计的直流电动机,它兼具伺服电机和普通直流电动机的优点。与普通直流电机相比,步进电机可以产生的最大转速是很低的。但它们的优势是可以被精确定位。与伺服电机不同,步进电机也可以连续旋转。根据绕组内部的布置方式,步进电机可分为单极绕组和双极绕组。我们这里使用的步进电机是单极步进电机28BYJ-48。经过项目后,您可以运行或转动电机到所需的方向。

让我们开始我们的教程,学习如何接口步进电机Arduino。

计划的目标

  • 了解步进电机的基本工作原理。
  • Arduino的步进电机接口。
  • 生成用于将电机转向所需方向的代码。
  • 使用一个简单的Arduino库实现步进电机接口。

让我们开始构建我们的项目!

组件使用

组件 规范 数量
Arduino Uno 1
步进电机 28 byj-48 1
达灵顿对晶体管 ULN2003A 1
电阻 470欧姆 4
引领 4

Arduino步进电机接口-电路图

Arduino步进电机接口-电路图
Arduino步进电机接口-电路图

如图所示组装电路。下面解释所需的组件和连接

28 byj-48步进电机

如前所述,步进电机根据卷绕装置分为单极和双极步进电机。28ByJ-48是单极步进电机,带有绕组中心敲击并连接到ULN2003A的公共销。根据剩余的绕组的四端的电路连接到达达灵顿IC的输出引脚(ULN2003A)。ULN2003是一款整体达林顿IC,由七个NPN Darlington晶体管对组成,具有高电压和电流能力。它由每个NPN Darlington对的常见阴极钳位二极管组成,这使得该驱动IC可用于切换电感负载。Darlington IC在这里用于Arduino的步进电机驱动器。由于28ByJ工作在5V时,我们将ULN2003A的COM引脚连接到Arduino的5V引脚。

步进电机可以在半步进模式或全步进模式下运行。这里编写的代码是为了让它在全步骤模式下工作。随本文附上的库文件还包括在半步模式下运行电机的规定。当在半步模式下工作时,电机的步进角将减少到全模式下角度的一半。在全步进模式下,两个线圈一次通电。电机的旋转速度可以通过改变延迟来控制,在激励接下来的两个线圈之前。一个28BYJ-48可以产生的最大RPM是15 RPM。

让我们来解释编码部分。

程序/代码

下载Arduino步进电机-程序

下载Arduino步进电机库

下面解释该计划的重要方面和子程序和子程序。

在程序的开始,四个预处理程序被定义,其中提到Arduino引脚,用于接口。接下来是程序中常量的使用。前3个常数是应用延迟之间的两个连续线圈激励。接下来的两个布尔常量用于确定方向。在“setup()”函数中,所使用的Arduino引脚被配置为输出引脚。一个名为“motoInput()”的函数用于给线圈通电,将“1”赋给指定的要通电的线圈,将“0”赋给其余不通电的线圈。因为我们打算运行它在全步模式,我们将激励两个线圈一次。这可以在名为“turnStepper()”的函数中看到。

“Turnstepper()”是以特定角度将电机转向所需方向的功能。可以给出电动机的旋转方向和转速作为参数。“runstepper()”是类似于“turnstepper()”的函数。唯一的区别在于它使用在所需方向和RPM处运行特定的旋转次数。

关于如何使用这些函数的示例写在“loop()”函数中。

本文还附上了单极步进电机28byJ-48的简单库。使用库将使您的程序显得更简单。少数示例也包含在其中,这将显示如何正确使用它。

作者

评论都关门了。