0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过Arduino控制步进电机速度和旋转方向

454398 来源:一板网 作者:风筝 2020-10-28 16:28 次阅读

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

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

所需的组件

● Arduino UNO开发板

● 28BYJ-48 5V DC步进电机

● ULN2003芯片

● PS2游戏杆

● 5V DC电源

什么是步进电机

步进电动机(stepper motor)是一种无刷直流电动机,它将完整的全周长分为多个相等的步长。然后可以命令电机的位置移动并保持在其中一个步进,而无需任何位置传感器进行反馈(开环控制器),只要在转矩和速度方面仔细选择适合电动机尺寸的电动机即可。

步进电机28-BYJ48的连接方式

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

步进电机需要借助驱动器芯片才能进行操作。原因是控制器需要较高的电流才能运行,但是仅步进电机将无法从其I / O引脚提供足够的电流来使电机运行。因此使用ULN2003作为驱动模块,电流被放大了。

连接电路图

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

步数计算

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

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

步幅角= 5.625°

Arduino步骤顺序= 4

所需步骤顺序= 8

步数角度= 5.625 * 2 = 11.25

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

源代码/程序:

#include 《Stepper.h》

#define STEPS 32

// define stepper motor control pins

#define IN1 7

#define IN2 6

#define IN3 5

#define IN4 4

// initialize stepper library

Stepper stepper(STEPS, IN4, IN2, IN3, IN1);

// joystick pot output is connected to Arduino A0

#define joystick A0

void setup()

{

}

void loop()

{

// read analog value from the potentiometer

int val = analogRead(joystick);

// if the joystic is in the middle ===》 stop the motor

if( (val 》 500) && (val 《 523) )

{

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

else

{

// move the motor in the first direction

while (val 》= 523)

{

// map the speed between 5 and 500 rpm

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

// set motor speed

stepper.setSpeed(speed_);

// move the motor (1 step)

stepper.step(1);

val = analogRead(joystick);

}

// move the motor in the other direction

while (val 《= 500)

{

// map the speed between 5 and 500 rpm

int speed_ = map(val, 500, 0, 5, 500);

// set motor speed

stepper.setSpeed(speed_);

// move the motor (1 step)

stepper.step(-1);

val = analogRead(joystick);

}

}

}
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    53

    文章

    8302

    浏览量

    147233
  • 电位器
    +关注

    关注

    14

    文章

    1015

    浏览量

    67040
  • 步进电机
    +关注

    关注

    152

    文章

    3121

    浏览量

    147942
  • 步进电动机
    +关注

    关注

    0

    文章

    60

    浏览量

    12828
收藏 人收藏

    评论

    相关推荐

    行星减速步进电机步进电机的区别

    步进电机是一种将电脉冲信号转变为角位移或线位移的开环控制电机。其工作原理是通过电子电路将直流电分为多相序
    的头像 发表于 11-16 15:11 442次阅读
    行星减速<b class='flag-5'>步进</b><b class='flag-5'>电机</b>与<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的区别

    步进电机转速怎么控制高低

    步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过
    的头像 发表于 10-22 15:55 812次阅读

    步进电机的伺服控制方法有哪些

    和脉冲序列,使电机准确移动到目标位置。这种控制模式适用于需要精确定位的应用场景。 2. 速度模式 定义 :在速度模式下,步进伺服
    的头像 发表于 09-04 09:48 749次阅读

    无刷电机遇到旋转方向相反,应如何处理

    在处理无刷电机旋转方向相反的问题时,需要从多个角度进行分析和解决。 1. 无刷电机的基本原理 无刷电机(BLDC)是一种没有电刷的
    的头像 发表于 09-03 14:16 2131次阅读

    丝杆步进电机和普通步进电机有什么区别

    丝杆步进电机和普通步进电机有以下几个主要区别:  结构不同:   步进电机
    的头像 发表于 09-02 13:38 662次阅读

    基于STM32单片机的步进电机控制系统设计

    系统内使用按键进行步进电机控制,可以控制步进电机的启动和关闭,使用按键进行加速和减速以及进行
    的头像 发表于 06-25 14:14 1305次阅读
    基于STM32单片机的<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>系统设计

    步进电机控制器电路图 步进电机控制器的分类及其特点

      步进电机控制器是一种专门用于控制步进电机的设备,它通过
    的头像 发表于 06-24 17:12 3789次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器电路图 <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器的分类及其特点

    旋转编码器控制电机速度

    旋转编码器控制电机速度
    发表于 06-24 09:16 4次下载

    什么是步进电机控制器?步进电机控制器电路图

    步进电机控制器是一种专门用于控制步进电机运行的装置。步进
    的头像 发表于 06-20 16:14 2326次阅读
    什么是<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器?<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器电路图

    如何改变步进电机方向的方法

    步进电机作为一种精密的控制电机,其方向控制对于许多应用至关重要。本文将详细介绍几种改变
    的头像 发表于 06-14 09:56 3015次阅读

    步进控制要点多,你可知晓?

    通过控制脉冲的个数来控制角位移,从而达到精确定位的目的;同时通过控制脉冲频率可以控制
    的头像 发表于 06-13 09:00 327次阅读

    步进电机旋转角度与哪个参数有关

    步进电机旋转角度的影响,以及如何通过调整这些参数来实现精确控制步进
    的头像 发表于 06-12 09:51 1230次阅读

    步进电机通过什么控制转动角度

    步进电机是一种电磁驱动的旋转电机,它具有精确控制转动角度的特性。步进
    的头像 发表于 06-12 09:49 1889次阅读

    步进电机控制器怎么调速度

    引言 步进电机是一种将电脉冲信号转换为角位移的电机,具有控制精度高、响应速度快、结构简单等优点。在自动化设备、机器人、数控机床等领域得到了广
    的头像 发表于 06-12 09:17 2428次阅读

    步进电机如何减速?

    步进电机是一种直接将电脉冲转化为机械运动的机电装置,通过控制施加在电机线圈上的电脉冲顺序、 频率和数量, 可以实现对
    的头像 发表于 03-23 08:42 546次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>如何减速?