Arduino基础: 控制电机

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

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

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

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

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

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

control the motor

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

[目录]

・驱动电机需要驱动器

・将电机连接到Arduino

・通过程序控制电机

・改变电机的转速

驱动电机需要驱动器

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

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

operating the motor requires a driver

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

control signal from arduino

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

将电机连接到Arduino

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

直流电机

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

DC motor

电机驱动器

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

motor driver

0.1μF 电容器

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

condenser

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

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

resistor

电池

电池扣

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

9v battery

battery snap

鳄鱼夹线s

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

electrical clip jumper wires

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

prepare each of the components

用鳄鱼夹夹住电机引脚,将电机连接到电机驱动器的引脚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的情况下,可以进行如下控制:

要正转时,使引脚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确认开关的状态。

DevicePlus 编辑团队
DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

相关文章

  1. Arduino基础: 调节LED的亮度

  2. LDR being measured

    实用光敏电阻—构建LDR光敏电阻电路实际操作指南

  3. camera sensor

    CMUcam5 Pixy视觉相机传感器简介

  4. Mojo EPGAs简介—第2部分

  5. DIY electric skateboard

    基于Arduino的DIY电动滑板

  6. Arduino Bluetooth Gloves

    Arduino蓝牙手套第一部分—基础

  7. reprap 3d printer

    适用于初学者的DIY RepRap 3D 打印机教程—第1部分:构建

  8. arduino home security system

    采用ROHM传感器套件的DIY Arduino家庭安防系统 第2部分- Cayenne设置

  9. esp-wroom-02

    使用ESP-WROOM-02 Wifi模块作为Arduino MCU

TECH INFO

  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • 热设计
  • 仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


PICK UP!

  1. 刘铭
  2. ROHM开发出业界先进的第4代低导通电阻
PAGE TOP