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

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

3天内不再提示

怎样控制步进电机

454398 来源:工程师吴畏 2019-07-26 09:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

为什么要使用步进电机

步进电机是带有许多内齿的无刷直流电机,通过周围的铜线圈磁性锁定到位。与无刷电机不同,为步进电源供电电机不会转动。相反,它锁定到给定输入指定的位置,顺时针或逆时针转一小步。

虽然这使得步进电机的驱动更加复杂,但与无刷直流电机相比具有一个主要优势:它们的角位置可以非常精确地指定。例如,如果您希望电机正好旋转270度,那么使用普通直流无刷电机(没有某种形式的反馈)几乎是不可能的,但使用步进电机会很轻松。

步进电机需要多个步进脉冲才能到达您想要的位置。此外,步进电机线圈始终通电,大大增加了保持转矩,但强制转动则很困难。这些优势解释了为什么步进电机常用于许多应用,包括CNC机床和CD/DVD驱动器

步进电机电动机分为两个阶段:单极和双极。单极电机包含连接所有线圈的公共电源,而双极电机具有分离的线圈。

本文仅介绍单极电机,因为双极电机需要以不同的方式驱动。

怎样控制步进电机

由Digikey提供(原理图)

单极输入和步进

单极电机通常有5根输入线 - 两根成对线控制线圈,第五根线连接到为每个线圈提供公共分接头。

虽然线路颜色因电机而异,但这里有连接在本文中使用:

下表显示了如何驱动每个输入以旋转电机。向前移动(即从步骤1到2)使电机顺时针转动,而向后移动则使电机逆时针转动。

表1.电机旋转状态

步进电机可能需要的电流远远超过微控制器的限制,这就是微控制器必须从不直接连接到电机的原因。电机还可能产生反电动势,可能会损坏I/O端口,并且绝对必须使用钳位二极管

然而,驱动带有四个分立晶体管的步进电机会浪费和笨重,这就是为什么必须使用ULN2003步进驱动器IC 。该IC包含七个达林顿晶体管,每个晶体管都包含二极管保护,能够提供500mA,50V输出(实际上比Arduino Uno可以处理的更多)。

编码步进电机

步进电机的编码步骤可以通过switch语句和一些I/O位完成,但有一种更简单的方法:使用内置的Stepper Library!

虽然Arduino是一个方便而简单的平台,但它的库支持使它成为最好的平台之一市场上的模块通过Arduino库兼容。对于步进电机,我们可以使用步进器库轻松控制它们,无需对每一步进行编码。

#include

#define STEPS_PER_REV 513

// Create our stepper motor object

Stepper motor(STEPS_PER_REV, 2, 3, 4, 5);

void setup() {

motor.setSpeed(10); // Motor speed of 10 RPM

}

void loop()

{

motor.step(STEPS_PER_REV); // Step clockwise one whole revolution

motor.step(STEPS_PER_REV / 2); // Step clockwise half revolution

motor.step(-STEPS_PER_REV); // Step counter clockwise one whole revolution

}

要使用步进电机库我们首先要包括步进电机库头:

#include

下一步(可选但推荐)是定义电机在一整圈内旋转的步数。本教程中使用的电机有32个步骤,并连接到比率为1:16的减速齿轮,因此一次旋转的步数为513.

#define STEPS_PER_REV 513

现在我们有了定义的步数,我们需要创建一个步进电机对象。该对象初始化为五个变量:每转的步数和连接步进电机的四个引脚。

Stepper motor(STEPS_PER_REV, 2, 3, 4, 5);

在设置功能中,我们可以定义速度(以RPM为单位)我们希望我们的电机转动。对于这个例子,我们将RPM设置为10.

void setup() {

motor.setSpeed(10); // Motor speed of 10 RPM

}

主循环包含转动电机所需的代码。正数表示电机等于前进的次数,而负数表示电机向相反方向旋转。

此示例中的三行代码显示STEPS_PER_RPM如何用于将电机转动已知量。

motor.step(STEPS_PER_REV); // Step clockwise one whole revolution

motor.step(STEPS_PER_REV / 2); // Step clockwise half revolution

motor.step(-STEPS_PER_REV); // Step counter clockwise one whole revolution

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

    关注

    152

    文章

    3216

    浏览量

    151563
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ‌DRV8821 双路步进电机控制器与驱动器技术文档总结

    该DRV8821提供双微步进步进电机控制器/驱动器 打印机、扫描仪和其他办公自动化设备应用的解决方案。 两个独立的步进电机驱动电路包括
    的头像 发表于 10-21 11:27 406次阅读
    ‌DRV8821 双路<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器与驱动器技术文档总结

    伺服电机步进电机的核心区别

    大家在运动控制的时候是用伺服电机的还是用步进电机做定位控制了?为什么有时候用伺服电机,有时候又
    的头像 发表于 10-15 14:32 1373次阅读
    伺服<b class='flag-5'>电机</b>和<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的核心区别

    基于MT6835磁编码器IC的步进电机全闭环伺服控制策略

    步进电机作为一种常见的执行元件,因其结构简单、控制方便等优点被广泛应用于工业自动化、机器人、医疗设备等领域。然而,传统的开环控制方式存在失步、振荡等问题,难以满足高精度应用场景的需求。
    的头像 发表于 08-27 17:55 689次阅读

    单片机怎么控制步进电机

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

    步进电机和伺服电机的区别是什么?

    启动速度不同 步进电机启动需要200-400毫秒而伺服电机只需要几毫秒是步进电机的上百倍 控制
    发表于 06-18 13:27

    数据采集卡与步进电机

    本文介绍了步进电机的工作原理,以及如何使用数据采集卡控制步进电机动作。
    的头像 发表于 05-26 15:53 1093次阅读
    数据采集卡与<b class='flag-5'>步进</b><b class='flag-5'>电机</b>

    如何应对步进电机的各种干拢问题

    步进电机的干扰问题是一个复杂且常见的话题,这些干扰可能来源于步进电机本身,也可能来自外部环境。为了有效地应对这些干扰,可以从以下几个方面进行考虑和解决。 一、
    的头像 发表于 05-11 17:38 869次阅读
    如何应对<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的各种干拢问题

    刹车步进电机的特点

    刹车步进电机作为一种结合了步进电机精确控制与制动功能的特种电机,其独特的设计和工作原理使其在需要
    的头像 发表于 04-25 15:34 1087次阅读
    刹车<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的特点

    步进电机—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 986次阅读
    想让<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>更顺滑?微步<b class='flag-5'>控制</b>优势与挑战全揭秘

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

    电子发烧友网综合报道,电机控制和驱动的分类方式多种多样,若按电机类型划分,可分为直流电机驱动、交流电机驱动和
    发表于 02-19 00:47 2273次阅读

    步进电机控制实现方法

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

    中空轴步进电机概述

    中空轴步进电机是一种特殊设计的步进电机,其核心工作原理基于电磁感应定律。当导线线圈中的电流发生变化时,会在其周围产生磁场,这个磁场会对附近的线圈产生力,导致该线圈的运动。中空轴
    的头像 发表于 01-06 15:06 1551次阅读
    中空轴<b class='flag-5'>步进</b><b class='flag-5'>电机</b>概述

    步进电机的详解解答

    步进电机,别名脉冲马达,是一种将电脉冲信号转变为角位移或线位移的开环控制电机。它是现代数字程序控制系统中的主要执行元件,广泛应用于数控机床、
    的头像 发表于 12-29 09:41 1567次阅读

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

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