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

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

    关注

    54

    文章

    9023

    浏览量

    153392
  • 电位器
    +关注

    关注

    14

    文章

    1026

    浏览量

    68820
  • 步进电机
    +关注

    关注

    152

    文章

    3216

    浏览量

    151567
  • 步进电动机
    +关注

    关注

    0

    文章

    60

    浏览量

    13315
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机怎么控制步进电机

    步进电机作为一种将电脉冲信号转化为角位移的执行机构,其运转依赖于脉冲信号的控制,而单片机作为控制核心,通过输出特定的脉冲信号和
    的头像 发表于 07-24 13:41 418次阅读

    同步电机步进运动性能分析

    摘要:针对常用的步进电机在结构上保留组合电磁铁的特征,导致电动机的容量小,输出功率小,效率低,不能满足人们对大功率步进电动机的需求。为此提出将步进电动机的设计思想从组合电磁铁提高为
    发表于 06-20 17:38

    实时生成步进电机速度曲线

    一种用于步进电机速度的新算法可以实现速度曲线的实时参数化和计算。该算法可以在低端微控制器上运行,只使用简单的定点算术运算并且不使用数据表。
    发表于 05-14 15:09

    步进电机的 LabVIEW 控制与应用

    本文介绍了 RP2350 开发板使用 LabVIEW 上位机串口发送指令,实现步进电机 **单步** 和 **连续** 旋转指定角度的项目设计。进一步结合具体的应用场景,设计了开发板与仪器的联合调用、进而实现数据自动采集的应用
    的头像 发表于 05-05 16:58 843次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>的 LabVIEW <b class='flag-5'>控制</b>与应用

    树莓派 RP2350 实现步进电机精确控制

    。 工作过程 通过控制器(如单片机)发送脉冲信号,驱动电路按顺序切换定子绕组的电流方向。 每切换一次,转子转动一个步距角,连续脉冲使电机连续旋转
    发表于 05-03 15:11

    直线电机旋转电机性能比较

    直线电机旋转电机作为现代工业驱动系统的两大核心组件,各自拥有独特的性能特点和适用场景。本文将从速度、加速度、精度、动态响应、结构及应用领域
    的头像 发表于 03-16 16:55 1444次阅读

    网络笔记分享-实时生成步进电机速度曲线

    一种用于步进电机速度的新算法可以实现速度曲线的实时参数化和计算。该算法可以在低端微控制器上运行,只使用简单的定点算术运算并且不使用数据表。
    发表于 03-04 21:17

    步进电机—4线,6线,8线的电机怎么接线

    步进电机作为一种能将数字输入脉冲转换成旋转或直线增量运动的电磁执行元件,在自动化控制领域具有广泛应用。步进
    的头像 发表于 02-26 09:08 1.2w次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>—4线,6线,8线的<b class='flag-5'>电机</b>怎么接线

    想让步进电机控制更顺滑?微步控制优势与挑战全揭秘

    步进电机依靠控制电脉冲信号的频率和数量来调控转动的步数与速度,具备分步控制的特性。为了让步进
    的头像 发表于 02-25 07:33 994次阅读
    想让<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>更顺滑?微步<b class='flag-5'>控制</b>优势与挑战全揭秘

    伺服电机实现方向改变的方法

    伺服电机是一种高精度、高响应速度电机,广泛应用于工业自动化、机器人、航空航天等领域。在实际应用中,有时需要改变电机旋转
    的头像 发表于 02-12 11:07 2357次阅读

    电机控制器的工作原理

    电机控制器的主要功能包括: 速度控制 :根据设定的速度指令,调整电机的转速。 转矩
    的头像 发表于 01-22 09:31 2870次阅读

    步进电机控制实现方法

          步进电机,作为一种将电脉冲信号转换为相应角位移或线位移的电动机,是现代数字控制系统中不可或缺的重要组件。其工作原理基于电磁学原理,通过接收数字
    的头像 发表于 01-21 16:43 2296次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>实现方法

    测速电机——精准掌控旋转速度的关键?

          测速电机确实可以被视为精准掌控旋转速度的关键,这主要体现在以下几个方面:       一、测速电机的定义与工作原理       测速电机是一种能够测量
    的头像 发表于 01-17 07:36 963次阅读
    测速<b class='flag-5'>电机</b>——精准掌控<b class='flag-5'>旋转速度</b>的关键?

    中空轴步进电机概述

    组成,其中定子上有多个线圈,转子为中空结构,内部有多个磁极。通过控制通电线圈的数量和顺序,可以控制转子的旋转角度和方向
    的头像 发表于 01-06 15:06 1571次阅读
    中空轴<b class='flag-5'>步进</b><b class='flag-5'>电机</b>概述

    通过具体案例,选择合适的步进电机

          步进电机作为一种广泛应用于自动化控制领域的执行元件,其选型过程至关重要。正确的选型不仅能确保系统的高效稳定运行,还能有效降低成本,提升整体性能。本文将从步进
    的头像 发表于 12-13 07:34 2456次阅读
    <b class='flag-5'>通过</b>具体案例,选择合适的<b class='flag-5'>步进</b><b class='flag-5'>电机</b>