【常见直流电机驱动模块与arduino使用最全教程】

这篇具有很好参考价值的文章主要介绍了【常见直流电机驱动模块与arduino使用最全教程】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人

介绍

驱动直流电机是基于微控制器设计的一种非常常见的应用,电机驱动器的选择可能非常重要。
如果您的唯一要求是在不考虑控制速度或方向的情况下打开和关闭电机,那么继电器或 MOSFET 就可以解决问题。但在大多数应用中,您会希望能够调整电机参数,为此,您需要一个电机驱动器。
我们今天将研究七种不同的电机驱动器,用于控制各种不同尺寸的电机。其中一些驱动器是双驱动器,换句话说,它们驱动一对电机,而其他驱动器仅用于单个电机。
所有这些驱动程序都可以由任何微控制器和可能是大多数微型计算机驱动。我们将要研究的驱动程序之一也有一个内置控制器,因此您甚至可能不需要微控制器。
我将使用 Arduino Uno 进行这些演示,但代码可以轻松移植到任何其他微控制器。

选择直流电机驱动器

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人许多 Arduino 设计都采用老式的忠实 L298N 双 H 桥模块。然而,这不一定是最好的解决方案,事实上,它很少是,因为更高效的驱动程序可以取代它。它也不适用于大型或非常小的电机。

但为您的项目挑选电机驱动器真的不应该那么难,您需要做的就是将驱动器与您的电机规格相匹配

直流电机规格

如果您足够幸运,拥有直流电机的数据表,您会注意到这些设备具有多种规格。我们可以将这些规格分为两大类:

机械的
电气
机械规格包括电机尺寸、安装方法、最大速度和扭矩。您将选择规格适合您的项目的电机,但此选择不会直接影响您的电机驱动器选择。

电气规格是您用来选择合适的直流电机驱动器的依据。与机械规格一样,有多种电气规格需要通过,但您真正需要的只是一些基本规格:

工作电压

这是运行电机的建议电压,也是测量所有其他规格的电压。请注意,我将其称为“建议”电压,因为直流电机实际上消耗的是电流,而不是电压。

您通常可以在工作电压的一半甚至更低的电压下运行直流电机。您不应超过 30% 以上,因为这可能会导致电机消耗过多电流以使其线圈无法处理。

当前的
这可以说是最重要的电气规格,至少在选择电机驱动器方面是这样。

平均电流是电机在正常负载下运行时消耗的电流量。

理想情况下,您将选择额定电流高于电机平均电流的电机驱动器,30 – 50% 的净空是完美的。

失速电流

失速电流是电机在轴被卡住时消耗的电流量。

选择电机驱动器时,这将对应于峰值电流。理想情况下,驱动器将能够处理该电流至少一分钟。

H 桥电机驱动器

反转直流电机只需反转施加在其上的电压的极性即可。最常见的方法是使用称为“H 桥”的设计。

可以使用以下配置中的四个开关来说明 H 桥的操作:

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人请注意,电机位于 H 桥的“桥”部分。如果所有开关都打开,如上图所示,则电机将没有电压并保持静止。

如果我们关闭其中两个开关,则允许直流电流流过电机。注意电流的极性,以这种方式连接电机会使其顺时针旋转。

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人如果我们现在打开这些开关并关闭另外两个,电机将接收相反极性的直流电压,使其逆时针旋转。

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人自然要注意不要把两个开关关错了,把电源短路了!

在现实世界中,我们很少为 H 桥使用开关,尽管您可以使用 DPDT 开关或继电器来完成所有切换。相反,我们使用晶体管。

较旧的 H 桥设计采用双极晶体管。虽然这使得设计简单且具有成本效益,但它也有使其效率相当低的缺点。

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人问题在于双极型晶体管在导通时在发射极和集电极之间存在压降。对于双极功率晶体管,该压降通常为 0.7 伏。由于我们同时使用两个开关,因此总压降约为 1.4 伏。

这意味着如果您向 H 桥施加 12 伏电压,电机实际上只会接收到 10.6 伏电压。“丢失”的电压在功率晶体管中转化为热量,这就是双极设计通常需要散热器的原因。

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人较新的设计使用 MOSFET 来提高性能。MOSFET 漏极和源极上的电压降非常小,通常为 0.1 伏或更低,因此这是一种效率更高的设计。此外,MOSFET 设计通常可以做得更小,而且很多都不需要散热器。

带 PWM 的速度控制

我们已经了解了如何控制直流电机的方向,但我们如何调整电机速度呢?

当给电机施加额定电压时,它会以最大速度旋转。似乎只是降低电压就会降低速度,但这并不是一个好的电机控制方法。虽然速度确实会下降,但扭矩也会成比例下降。

相反,更好的方法是使用脉冲宽度调制或 PWM。

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人顾名思义,PWM 系统会改变驱动电机的脉冲序列的宽度。脉冲宽度越宽,电机旋转得越快。
arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人通过向电机发送能量脉冲,我们可以在控制速度的同时保持扭矩。它起作用是因为我们改变的是电机的平均功率,而不是它的电压。

微控制器非常适合精确计时,因此可以成为出色的 PWM 控制器。许多微控制器的 PWM 引脚数量有限,例如,在 Arduino Uno 上有六个。

用微控制器控制速度和方向

所以我们知道我们可以用 PWM 控制电机的速度,我们可以打开几个晶体管来控制电机方向。我们如何将所有这些接口连接到我们的微控制器?

我们今天要使用的七款电机驱动器可以分为三种类型的接口:

PWM + 2 控制
arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人
PWM + 2 控制方法使用 PWM 的输入加上两个输入来控制方向。

查看真值表,我们可以看到两个控制引脚的状态决定了电机轴旋转的方向。我还可以停止电机或施加“制动”。

“制动”功能施加电流以将电机轴固定到位。它对于非齿轮设计很有用,但您应该谨慎使用,因为许多电机在启动前只能承受几分钟的制动
PWM + 1 控制
arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人这可能是最简单的方案。

在这种安排中,您有两个电机驱动器输入。一种是PWM输入,它采用PWM脉冲来控制电机速度。另一个是 DIRECTION 或 DIR 输入,一个控制方向的逻辑信号。

改变方向就像改变 DIR 输入的状态一样简单。
2脉宽调制
arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人通过这种安排,您将需要两个都支持 PWM 的 I/O 引脚。

使用 2 PWM 控制方法的电机驱动器有两个输入,通常称为 IN1 和 IN2。在将 IN2 保持为低电平的同时向 IN1 施加 PWM 信号将使电机沿一个方向旋转。将 IN1 保持在低电平并将 PWM 应用于 IN2 将导致它以相反的方向旋转。

这是我们今天将看到的最常见的速度和方向控制方法,因为七个模块中有四个使用它。

中小型电机驱动器

我们将通过查看一些用于中小型电机的较小模块来开始我们的电机驱动器冒险。

这些对于实验者来说很常见,因为这些电机价格低廉且易于获得。

此范围内的电机用于玩具和小家电。我们在车间的那些小型“机器人汽车”项目中使用它们。

L298N 双 H 桥

介绍

L298N 可以说是周围最受欢迎的 H 桥驱动器,至少有标记。它几乎随处可见,而且非常易于使用。

这是一种基于双极晶体管的旧设计,并且由于它的产量如此之大,因此价格非常实惠。事实上,它通常以 5 包或 10 包的形式出售。

这是一个双通道驱动模块,规格如下:
arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人
查看模块,您会注意到一些螺丝端子、杜邦连接器和一些用于跳线的地方。

电机输出有两组端子,另外还有一个用于接地、电机电压和 5 伏逻辑电压的 3 端子块。

arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人
如果您不想提供 5 伏电压,可以将 L298N 模块绑起来使用内部线性稳压器来提供自己的逻辑电源。如果这样做,则电机电压需要至少为 7.5 伏。

ENA和ENB线是 Enable 线,可以通过 PWM 切换来控制电机速度。如果只是想用模块控制电机方向,可以把ENA和ENB绑成HIGH。

IN1至IN4控制电机方向,如真值表所示。

L298N Arduino 连接图

您可以通过几种不同的方式将 L298N 连接到 Arduino(或任何其他微控制器),唯一的限制是ENA和ENB需要连接到启用 PWM 的引脚。

这是我如何连接我的:
arduino控制直流电机,Arduino 提高篇,单片机,嵌入式硬件,arduino,Arduino,机器人请注意,我从 Arduino 为 L298N 逻辑电路提供 5 伏电压。您可以通过在模块上安装带子以使用内部稳压器来消除此连接。请记住,要做到这一点,您的电机电源电压至少需要 7.5 伏。

L298N Arduino 代码

如果有一百种连接 L298N 的方法,那么可能有大约一千种编码方法!

下面是一个简单的代码,可以使电机沿不同的方向旋转。对于每个方向,它都会增加和减少速度。文章来源地址https://www.toymoban.com/news/detail-779964.html



// Motor Connections (ENA & ENB must use PWM pins)
#define IN1 9
#define IN2 8
#define IN3 7
#define IN4 6
#define ENA 10
#define ENB 5

void motorAccel() {
   
  for (int i = 0; i < 256; i++) {
   
    analogWrite(ENA, i);
    analogWrite(ENB, i);
    delay(20);
  }
}

void motorDecel() {
   
  for (int i = 255; i >= 0; --i) {
   
    analogWrite(ENA, i);
    analogWrite(ENB, i);
    delay(20);
  }
}

void setup() {
   

  // Set motor connections as outputs
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);

  // Start with motors off
  digitalWrite(IN1, LOW

到了这里,关于【常见直流电机驱动模块与arduino使用最全教程】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • l298n电机驱动模块驱动直流电机(佛科院——深夜学习)

    目录 一、为什么不能直接用单片机IO口驱动电机,要用电机驱动模块? 二、使用步骤: 1.L298n各引脚作用: 2.推荐的供电方式: 3.推荐的控制方式: 由于单片机内部结构原因,其等效内阻极大, 导致输出电流极小,尽管I0口输出高电平为5V,但输出功率极小,无法满足直接电机

    2023年04月23日
    浏览(55)
  • 直流减速编码电机的使用(STM32f103c8t6)L298N电机驱动模块

    直接减速电机就是在直流电机上加上霍尔编码器,霍尔编码器可用于电机转动的测速,A、B相会产生相位相差90°的方波信号。stm32可以使用硬件资源或者软件模拟来捕获编码器信号。这里我介绍的是stm32自带的编码器模式来使用直流减速电机。 以下是直流减速电机的商品图 ​

    2024年02月13日
    浏览(61)
  • 【mcuclub】直流电机-MX1508驱动模块

    编号 名称 功能 1 A1 1通道正转逻辑输入 2 A2 1通道反转逻辑输入 3 B1 2通道正转逻辑输入 4 B2 2通道反转逻辑输入 5 OB2 2通道反转输出 6 OB1 2通道正转输出 7 OA2 1通道反转输出 8 OA1 1通道正转输出 9 VCC 电源正(2-8V) 10 GND 电源地 MX1508采用H桥电路结构设计,采用高可靠性功率管工艺,特

    2023年04月08日
    浏览(47)
  • 【Arduino32】PWM控制直流电机速度

    震动传感器:1个 红黄绿LED灯:各一个 旋钮电位器:1个 直流电机:1个 1K电阻:1个 220欧电阻:3个 杜邦线:若干

    2024年02月07日
    浏览(39)
  • K_A08_009 基于 STM32等单片机驱动TB6612模块按键控制直流电机正反转加减速启停

    目录 一、资源说明 二、基本参数         1、参数         2、引脚说明 三、驱动说明         TB6612模块驱动说明         对应程序:         ENA ENB输出PWM 四、部分代码说明         接线说明                 1、STC89C52RC+TB6612模块                 2、STM32F

    2024年02月15日
    浏览(38)
  • K_A08_005 基于 STM32等单片机驱动XY-160D模块按键控制直流电机正反转加减速启停

    目录 一、资源说明 二、基本参数 四、部分代码说明         接线说明                 1、STC89C52RC+XY-160D模块                  2、STM32F103C8T6+XY-160D模块 五、基础知识学习与相关资料下载 六、视频效果展示与程序资料获取 七、项目所有材料清单 八、注意事项 九

    2024年02月14日
    浏览(72)
  • PWM驱动直流电机

    目录 一、实验目的 二、实验要求 三、硬件部分 1. 主控模块 2. 电器驱动模块 3. 直流电机  四、软件部分 1. 主程序 2.定时器输出PWM波原理  五、实验总结 掌握MSP432 PWM波的输出配置 掌握直流电机驱动的方法 按键控制小车的前进方向。 实现小车加速前进,减速后退运动。   

    2024年02月09日
    浏览(47)
  • 【【直流电机驱动PWN】】

    直流电机是一种电能转化成机械能的装置 直流电机有两个电极 当电机正接 电机正转 当电机负接 电机倒转 电机还有步进电机 舵机 无刷电机 空心杯电机 因为电机是一个大功率器件并不太好直接接在IO端口上所以我们有以下两种方式 H桥 PWM 频率=1/Ts 占空比=Ton/Ts 精度=占空比变

    2024年02月16日
    浏览(35)
  • 一起玩儿物联网人工智能小车(ESP32)——41. 直流有刷电机驱动模块——L9110S、TB6612FNG和DRV8833简介

    摘要:本文介绍如何使用直流有刷电机驱动模块——L9110S、TB6612FNG和DRV8833 在前边很详细的介绍了直流有刷电机驱动模块L298N,该模块性能良好,输出功率大。但体积也是偏大,本篇文章介绍一下市场上另外几个常见的小型直流有刷电机驱动模块L9110S、TB6612FNG和DRV8833的使用方

    2024年02月21日
    浏览(47)
  • 基于STM32F103C8T6使用Arduino IDE编程闭环控制4个带编码器的有刷直流电机

    题记:标题有点长了,纯粹为了方便被检索到~~~本贴主要用于支持南方科技大学SDIM学院工业设计专业大三综合项目移动底盘学习,也是我自己按照费曼学习方法的一次尝试,用从底层搭建一个机器人底盘来复习自动控制原理。         由于工业设计专业没有开设嵌入式课程

    2024年02月05日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包