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

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

    关注

    149

    文章

    2929

    浏览量

    146044
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184815
收藏 人收藏

    评论

    相关推荐

    如何调整二相步进电机步进角度,控制步进角度的功能?

    在当今的自动化设备中,二相步进电机作为一种常见的驱动元件,其精确控制步进角度的功能尤为重要。那么,博扬智能如何调整二相步进
    的头像 发表于 03-25 17:49 713次阅读
    如何调整二相<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>角度的功能?

    什么是步进电机的细分控制步进电机为什么要细分,如何细分?

    什么是步进电机的细分控制步进电机为什么要细分,如何细分? 步进
    的头像 发表于 02-18 09:39 1602次阅读

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机步进电机是一种电动机,可以通过下达特定的指令来
    的头像 发表于 02-14 16:29 604次阅读

    步进电机控制器电路图分享

    步进电机控制器是一种能够发出均匀脉冲信号的电子产品,主要用于控制步进电机的运动。它发出的信号进入
    的头像 发表于 02-07 17:57 1166次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器电路图分享

    步进电机控制方法 步进电机和伺服电机的区别

    步进电机控制方法 步进电机是一种将电信号转化为机械转动的电动机,其输出转角是按照电脉冲控制信号的
    的头像 发表于 01-22 17:18 407次阅读

    步进电机控制方法 步进电机控制器参数设置

    步进电机是一种在控制系统中常见的电机类型,它以步进角度为单位进行旋转,并且可以精确控制位置和速度
    的头像 发表于 01-19 10:50 784次阅读

    步进电机控制方法及需要哪些控制信号

    步进电机是一种将电子信号转化为机械运动的电动机,广泛应用于机器人、打印机、数码相机等领域。步进电机由于其精度高、固有扭矩大、容易控制等特点,
    的头像 发表于 12-20 11:21 1081次阅读

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

    该项目利用51单片机实现了一个步进电机控制系统,可以实现步进电机的正反转、加减速、启动和停止,并通过LCD显示
    的头像 发表于 12-06 16:39 1254次阅读
    基于单片机的<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>系统设计

    步进电机定位控制的常用方法

    步进系统=步进驱动器+步进电机步进电机步进驱动器
    发表于 10-30 11:30 1289次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>定位<b class='flag-5'>控制</b>的常用方法

    步进电机开环控制与闭环控制有什么区别?

    步进电机开环控制和闭环控制的区别概述:步进电机是一种特殊的
    的头像 发表于 10-28 08:07 1612次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>开环<b class='flag-5'>控制</b>与闭环<b class='flag-5'>控制</b>有什么区别?

    基于PLC S7-200与步进电机的运动控制

      步进电机的运行要有一电子装置进行驱动,这种装置就是步进电机驱动器,它是把控制系统发出的脉冲信号,加以放大以驱动
    发表于 10-19 10:59 331次阅读
    基于PLC S7-200与<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的运动<b class='flag-5'>控制</b>

    步进驱动器+步进电机+西门子PLC控制案例

    步进系统=步进驱动器+步进电机步进电机步进驱动器
    发表于 08-25 11:15 798次阅读
    <b class='flag-5'>步进</b>驱动器+<b class='flag-5'>步进</b><b class='flag-5'>电机</b>+西门子PLC<b class='flag-5'>控制</b>案例

    plc如何控制步进电机的速度和方向?

    plc作为一种工业控制计算机,具有模块化结构、配置灵活、高速的处理速度、精确的数据处理能力、PLC对步进电机也具有良好的控制能力,利用其高速脉冲输出功能或运动
    的头像 发表于 08-07 08:09 1190次阅读
    plc如何<b class='flag-5'>控制</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>的速度和方向?

    步进电机控制原理是什么?如何实现步进电机控制

    先来看一下硬件原理图,可看到控制步进电机的管脚分别为:GPIO6[2]、GPIO6[3]、GPIO6[4]和GPIO1[15]。使用的是一路四相五线步进
    发表于 08-04 14:45 2850次阅读
    <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>?

    步进电机控制器原理 步进电机控制器的应用设置

    步进电机控制器是一种能够发出均匀脉冲信号的电子产品,它发出的信号进入步进电机驱动器后,会由驱动器转换成
    发表于 05-05 14:16 4次下载
    <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>器的应用设置