Arduino步进电机接口使用达灵顿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是一款单片达林顿集成电路,由七对NPN达林顿晶体管组成,具有高电压和电流能力。它由每个NPN-Darlington对的公共阴极箝位二极管组成,这使得该驱动IC可用于切换电感负载。达林顿IC在这里用作Arduino的步进电机驱动器。由于28BYJ在5V下工作,我们将ULN2003A的com引脚连接到Arduino的5V引脚。

步进电机可以在半步模式或全步模式下运行。这里编写的代码使其在全步骤模式下工作。本文附带的库文件还包括在半步模式下运行电机的规定。在半步模式下工作时,电机的步进角将减少到全步模式下的一半。在全步进模式下,两个线圈同时通电。电机的旋转速度可以通过改变在给下两个线圈通电前施加的延迟来控制。28BYJ-48可以产生的最大转速是15转。

让我们来解释编码部分。

程序/代码

下载Arduino步进电机-程序

下载Arduino步进电机库

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

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

“旋转步进电机()”是将电机以特定角度旋转到所需方向的功能。电机的角度、旋转方向和转速可作为参数给出。“runStepper()”的函数类似于“turnStepper()”。唯一的区别是,它用于在所需的方向和rpm上运行电机特定数量的旋转。

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

本文还附带了一个单极步进电机库28BYJ-48。使用库将使您的程序看起来更简单。其中也包含了一些示例,说明了如何正确使用它。

作者

评论都关门了。

Baidu