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

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

3天内不再提示

Arduino基础:控制电机

张伟 来源:tutu304725938 作者:tutu304725938 2023-02-23 09:47 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

本文最初发布在deviceplus.jp网站上,而后被翻译成英语。

Device Plus网站中介绍了有关Arduino的各种应用和作品示例,但无论创作任何作品,基础知识都很重要!这就是为什么在这篇文章中,我们会探讨Arduino的关键基础知识。今天的分享嘉宾是《始于Arduino基础 的电子工艺品入门》的作者福田和宏先生。

在本文中,将为大家介绍大电流电机的控制方法。

电机可用来驱动各种设备,例如无人机和汽车。电机是一种电子产品,当连接到电源时可以产生旋转运动。通过给轮胎和螺旋桨安装电机,可以利用电机的旋转来完成移动和上升等动作。

使用Arduino也可以控制电机。与LED一样,您可以通过接通和关断提供给电机的电源来控制电机旋转或停止。通过与其他传感器等器件结合使用,还可以实现比如当障碍物接近时电机停动这样的自动控制。

poYBAGPy0LeABND8AABoisA-PBE068.jpg

当电源方向反接时,电机会向相反的方向旋转。也可以通过调整流过的电流量来改变转速。基于这些原理,可以实现很多复杂的动作,比如在电机高速旋转时移动,在逐渐减速时停止在期望的目标位置,在遇到障碍物时回头向另一个方向移动。所以在本文中,我们将一起来了解使用Arduino控制电机的方法。

[目录]

・驱动电机需要驱动器

・将电机连接到Arduino

・通过程序控制电机

・改变电机的转速

驱动电机需要驱动器

通过Arduino的数字输出,可以在High和Low之间切换,我们曾用来控制LED的闪烁。使用该功能,应该还可以为电机供电。但是,实际上,即使您将电机直接连接到Arduino,电机还是无法运行的。

使电机运行需要大电流。例如,在本次使用的电机“RE-280RA”的情况下,可能会流过1A以上的电流。但是,Arduino的数字输出引脚最多只能承受20mA的电流。如果施加比这更多的电流,Arduino本身可能会损坏。因此,我们需要将电机连接到Arduino的输出引脚并对其进行控制。

pYYBAGPy0LmAH26jAAB8M6OeYVQ455.jpg

这里我们使用的是“电机驱动器”。电机驱动器是用来控制电机的电子器件。我们需要准备一个将电机连接到电源以使电机运行的电路,并在其中插入电机驱动器。电机驱动器可通过外部信号导通和关断电机运行电路,并可控制电机的旋转和停止。由于控制信号中几乎不会流过电流,因此即使连接Arduino,也可以毫无问题地控制电机。

poYBAGPy0L2AKm_oAAB4x06EhTA405.jpg

另外,通过电机驱动器,还可以利用控制信号切换旋转方向。电机驱动器配有两个控制引脚,一个设置为High时正转,另一个设置为High时反转。这使得电机驱动器可以控制电机的正转、反转和停止。

将电机连接到Arduino

现在让我们尝试利用Arduino来控制电机。这部分操作将使用以下电子元器件,因此请确保您已经准备好它们。

直流电机

这是电机本体。其中,可以用干电池等的直流电控制的电机称为“直流电机”。这次,我们将使用“RE-280RA”。RE-280RA可施加高达4.5V的电压。

电机驱动器

我们将使用电机驱动器来控制电机。驱动器具有根据来自Arduino的信号给电机供电并控制电机转向等功能。我们将使用ROHM的“BA6956AN”。从带有切口的连接器(图片左侧)开始,引脚分别按照“引脚1”和“引脚2”等命名。

0.1μF 电容器

电容器是可以储存少量电能的电子元件。电机在工作过程中会产生噪声。噪声可能会对其他电子元器件的工作产生不利影响。因此,可以通过在电机的两个引脚上连接电容器来降低噪声。

10kΩ(1/4W)电阻器

为了防止流过突发大电流损坏电子元器件,可以使用电阻器来抑制电流。此次,为了能给电机提供指定的电压,我们在Arduino的3.3V引脚上连接了电机驱动器。通常情况下,几乎没有电流流过,但由于在某些情况下可能会有流过大电流的风险,因此连接了一个10kΩ的电阻器以防止流过大电流。这个10kΩ电阻器上印有“棕黑橙金”四色颜色代码。

电池

电池扣

我们将使用干电池作为驱动电机的动力源。在这里使用的是可提供9V电压的006P。另外,还会使用电池扣将电池连接到面包板上。

鳄鱼夹线s

电机有引脚,需要连接到面包板。通常是将导线焊接到引脚上。但是如果您使用鳄鱼夹线,只需将鳄鱼夹夹住电机的引脚即可实现接线,可以省去焊接的麻烦。

准备好所需组件后,如下所示进行连接。

pYYBAGPy0NOAX1S1AAChmyXxnfw632.jpg

用鳄鱼夹夹住电机引脚,将电机连接到电机驱动器的引脚2和4。注意,在电机工作期间可能会产生噪声,噪声可能会影响其他设备工作,因此,需要将电容器连接到电机的两个引脚来降低噪声。

电机可以由单独准备的电池供电。因此,可以通过将电池连接到电机驱动器的引脚5和3来实现电池供电。

此外,本次使用的电机的供电电压范围为4.5V以内。因此,使用9V电池时,电压过高,可能会损坏电机。因此,请在电机驱动器的引脚1处指定输出至电机的最大电压。本次我们为电机提供3.3V的电压。将Arduino 3.3V电源连接到引脚1并指定最大电压值。电机旋转可以通过电机驱动器的引脚7和9来控制。这意味着需要分别连接到Arduino的引脚5和6,通过Arduino的输出对其进行控制。

通过程序控制电机

完成连接后,让我们实际尝试使用程序来控制电机。电机的旋转可以通过Arduino引脚5和6的输出来控制。旋转、停止和旋转方向都可以通过将这两个引脚设置为High或Low来控制。在BA6956AN的情况下,可以进行如下控制:

poYBAGPy0NWANmSiAABzjLvOTqg771.png

要正转时,使引脚5输出High,使引脚6输出Low。将以下程序写入Arduino,电机将开始正转。

在第10行设置了引脚5输出High,在第11行设置了引脚6输出Low。

如果要反转,则需要使引脚5输出Low,使引脚6输出High。

程序如下:

在第10行设置了引脚5输出Low,在第11行设置了引脚6输出High。如果要使电机停止运转,则需要让引脚5和6都输出Low。

程序如下:

另外,如果引脚5和6都输出High,则会启动制动器,可以让电机在比两个引脚都置Low时更短的时间内停止运转。

改变电机的转速

上次,我们通过使用“PWM”这种输出方法成功地改变了LED的亮度。在电机上,也可以通过使用PWM控制来改变转速。通过在短时间内切换High和Low,电机在旋转和停止之间交替切换,转速实际上比正常速度慢。High的时间越长,转速越快;反之High的时间越短,转速越慢。

对于电机而言,通过PWM来输出想要旋转的方向的控制引脚,并使另一个引脚始终保持在Low的状态。正转时,通过PWM输出引脚5 并使引脚6保持在Low状态。反转时,通过PWM输出引脚6,并使引脚5保持在Low状态。下面是控制正转速度的程序:

在程序中,在第10行设置为向引脚5输出PWM比率的一半(最大为255),在第11行使引脚6保持在Low状态。当您改变第10行的数字时,速度也会随之改变。但是,如果High小于某个特定的比率,电机将不会旋转。如果减小该值电机不旋转,就请尝试指定更高的值。您可以通过逐渐增加或减少引脚5输出的值来逐渐改变速度。在接下来的程序中,转速将从停止状态逐渐提高,当达到最大值时,速度将会逐渐降低并最终停止运转。

在本文中,我们了解了通过Arduino控制LED和电机等电子产品的方法。下一篇将介绍如何通过Arduino确认开关的状态。

审核编辑:汤梓红

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

    关注

    240

    文章

    23060

    浏览量

    656977
  • Arduino
    +关注

    关注

    187

    文章

    6456

    浏览量

    186488
  • 控制电机
    +关注

    关注

    0

    文章

    234

    浏览量

    18049
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino的蓝牙控制伺服电机

    使用伺服电机在机器人技术中很常见,以实现精确控制。在这里,在本教程中,我们将向您展示如何通过蓝牙连接将伺服电机Arduino UNO和Android设备无线使用。我们已经使用
    发表于 11-16 16:19 3378次阅读
    如何使用<b class='flag-5'>Arduino</b>的蓝牙<b class='flag-5'>控制</b>伺服<b class='flag-5'>电机</b>

    如何使用Arduino控制多个伺服电机

    在这里,我们将向您展示如何使用Arduino控制多个伺服电机。将多个伺服电机Arduino连接似乎很容易,但是如果我们将所有伺服连接到
    的头像 发表于 11-16 17:19 6171次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>多个伺服<b class='flag-5'>电机</b>

    [2.5.2]--2.5.2Arduino控制电机

    机器人
    jf_75936199
    发布于 :2023年01月07日 23:09:25

    树莓派可发射“炮弹”和实时视频的超级坦克(上)

    伺服系统通过串行端口与Arduino通信Arduino控制电机控制继电器和点火器用于点炮)第三步:炮的部分[tr]大炮是这项目最酷的部分。
    发表于 01-15 14:55

    Arduino控制电机驱动,下面的电路能实现吗?

    Arduino控制电机驱动,下面的电路能实现吗?
    发表于 06-09 11:59

    请问Arduino控制电机驱动器,下了个ide是不是得串口通信?

    Arduino控制电机驱动器,下了个ide,是不是得串口通信啊?我在网上看了用romeo,它是直接连得电机
    发表于 06-13 09:03

    请问怎么用蓝牙控制直流电机

    哪位大神可以教教我怎么用蓝牙控制直流电机我看了些教程,arduino控制直流电机或者用蓝牙模块通过ar
    发表于 08-13 23:31

    arduino控制电机驱动相关资料分享

    = 3; // 把电位计连在模拟端口3int A=2;//数字端口2、3控制电机启停和转向int B=3;int PWMpin = 9; // 数字端口9输出PW...
    发表于 06-28 08:13

    arduino如何控制电机驱动?

    arduino如何控制电机驱动?
    发表于 10-09 07:21

    萌新求助,求大佬分享一个arduino控制电机正反转的仿真

    萌新求助,求大佬分享一个arduino控制电机正反转的仿真
    发表于 10-14 09:03

    利用PAJ7620U2 Gesture Sensor手势识别控制小车

    模块发送至ArduinoArduino 控制电机达到作出相应动作。视频很快奉上,设计思路和部分代码解释都.
    发表于 01-05 07:44

    Arduino基础入门篇(认识开发板和面包板)

    与外部硬件设备协同工作。比如利用Arduino配合各种传感器来感知环境,使用Arduino控制电机来驱动机械臂、机器人和无人机,您更可以用Ardui
    发表于 01-17 11:17 6次下载
    <b class='flag-5'>Arduino</b>基础入门篇(认识开发板和面包板)

    如何使用MATALB和Arduino控制步进电机

    今天我们将学习如何使用 MATALB 和 Arduino 控制步进电机
    发表于 11-01 17:45 2667次阅读
    如何使用MATALB和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>步进<b class='flag-5'>电机</b>

    Arduino无刷电机控制教程

    在本教程中,我们将学习如何使用 Arduino 和 ESC 控制无刷电机。如果您想了解更多 BLDC 电机的工作原理,您可以查看另一篇文章或观看以下视频,其中包含无刷
    发表于 05-05 11:34 2次下载
    <b class='flag-5'>Arduino</b>无刷<b class='flag-5'>电机</b><b class='flag-5'>控制</b>教程

    arduino控制步进电机代码

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