当前位置:首页 > 新型工业化 >通过arduino控制步进电机速度和旋转方向相反(通过arduino控制步进电机速度和旋转方向的关系)

通过arduino控制步进电机速度和旋转方向相反(通过arduino控制步进电机速度和旋转方向的关系)

在本文中,我们将学习如何使用操纵杆和Arduino 开发板控制步进电机。在这里,我们将使用Arduino UNO 板和PS2 操纵杆控制步进电机的速度和旋转方向。

我们使用带内部驱动器的单极5V DC 步进电机28BYJ-48。因此,不需要步进电机驱动。相反,我们将使用ULN2003A 达林顿双电机驱动器IC。 PS2操纵杆由两个10k欧姆电位器组成,一个用于X轴,另一个用于Y轴。它还包括一个按钮。但我们将仅使用X 轴来控制步进电机的运动。

通过arduino控制步进电机速度和旋转方向相反(通过arduino控制步进电机速度和旋转方向的关系)

所需组件

Arduino UNO开发板

28BYJ-48 5V直流步进电机

ULN2003芯片

PS2 摇杆

5V直流电源

什么是步进电机

步进电机是一种无刷直流电机,它将其整个圆周分成多个相等的步长。然后,只要根据扭矩和大小仔细选择电机的尺寸,就可以命令电机的位置移动并保持在其中一个步骤,而不需要任何位置传感器进行反馈(开环控制器)。速度。

步进电机28-BYJ48连接方法

步进电机28-BYJ48 是一款采用5 引线线圈布置的单极电机。四个线圈必须按特定顺序通电。红线连接到+5V,其余四根线将被拉到地以触发相应的线圈。我们使用Arduino 板按特定顺序为这些线圈通电,并使电机执行所需的步数。

步进电机需要驱动芯片才能运行。原因是控制器需要更高的电流才能运行,但步进电机本身无法从其I/O 引脚提供足够的电流来运行电机。因此,采用ULN2003作为驱动模块,对电流进行放大。

连接图

要使用操纵杆和Arduino 控制步进电机,请如下图所示组装电路。

步数

在将代码上传到Arduino板之前需要进行计步

在Arduino中,我们将按4步顺序操作电机,因此我们需要计算步幅角。

步幅角=5.625

Arduino 步骤序列=4

所需的步骤顺序=8

步距角=5.625*2=11.25

每转步数=360/步距角=360/11.25=每转32 步。

源代码/程序:

#include“Stepper.h”

#定义步骤32

//定义步进电机控制引脚

#定义IN1 7

#定义IN2 6

#定义IN3 5

#定义IN4 4

//初始化步进器库

步进器步进器(STEPS、IN4、IN2、IN3、IN1);

//操纵杆电位器输出连接到Arduino A0

#定义操纵杆A0

无效设置()

{

}

无效循环()

{

//从电位器读取模拟值

int val=AnalogRead(操纵杆);

//如果操纵杆在中间===》停止电机

如果((值》500)(值》523))

{

数字写入(IN1,低);

数字写入(IN2,低);

数字写入(IN3,低);

数字写入(IN4,低);

}

别的

{

//沿第一个方向移动电机

而(val 》=523)

{

//映射5 到500 rpm 之间的速度

int speed_=地图(val, 523, 1023, 5, 500);

//设置电机速度

步进器.setSpeed(speed_);

//移动电机(1步)

步进器.step(1);

val=AnalogRead(操纵杆);

}

//向另一个方向移动电机

同时(值

最新资讯

推荐资讯