百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Arduino应用实例——用L298N芯片驱动直流电机,智能小车必备

liuian 2024-12-08 16:24 101 浏览

在本次的文章中,我们将会介绍如何使用 Arduino 控制直流有刷电机。

直流有刷电机上生活中最为常见的电动机之一。小时候玩的四驱车采用的就是直流有刷电机。这种直流电机的驱动也是非常简单 ,只要给它接上直流电,电机就能转动,改变电源正负极,电机就能反转。那么我们怎么对电机进行调速并且更方便地切换电机的旋转方向呢?

我们知道,一个电机接两节干电池时的转速要比只接一节干电池要快得多。因此我们可以通过简单地控制电机的输入电压来控制直流电机的转速。最常用的方法是使用 PWM 信号控制电机。

PWM 直流电机控制

PWM 脉冲宽度调制(Pulse width modulation,PWM)是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。它相当于我们通过快速打开和关闭电源来调整输入电子设备的电压的平均值。 平均电压取决于占空比,或者信号开启的时间与信号在一个周期内关闭的时间的比值。

因此,根据电机的大小,我们可以简单地将 Arduino PWM 输出连接到晶体管的基极或 MOS的栅极,并通过控制 PWM 输出来控制电机的速度。 低功率 Arduino PWM 信号打开和关闭 MOS上的栅极,通过该栅极驱动高功率电机。

注意:Arduino与电机电源需共地。

H-桥直流电机控制

我们已经学会了控制电机的速度,下一步就是控制电机的正反转。为了控制旋转方向,我们只需要反转通过电机的电流方向,最常用的方法是使用H桥。 H桥电路包含四个开关元件、晶体管或MOS,中间的电机形成类似H型的电路。通过同时激活两个特定的开关,我们就可以改变电流的方向,从而改变电机的旋转方向。比如只接通开关1,3电机正转,只接通2,4开关电机就会反转。

因此,如果我们将PWM和H桥这两种方法结合起来,我们就自如地控制直流电机了。实际上我们有许多具有这种功能的直流电机驱动器,L298N 就是其中最常用的模块之一。

L298N驱动模块

L298N 是双H桥电机驱动器,可同时控制两个直流电机的速度和方向。该模块可以驱动电压在5-35V之间的直流电机,峰值电流可达2A。

该模块左右各有两个螺钉接线端子用于连接电机A和B。中间的螺钉接线端子包括一个接地端,一个电机5-35V的供电端VCC以及一个5V接线端,它可以是输入或输出。这取决于电机 VCC 上使用的电压。 该模块具有板载5V稳压器,可使用跳线启用或禁用该稳压器。 如果电机电源电压高达 12V,我们可以启用5V稳压器,并且 5V 引脚可以用作输出,并为我们的 Arduino 板供电。 但如果电机电压大于 12V,我们必须断开跳线,因为过高的电压会损坏板载 5V 稳压芯片。 在这种情况下,5V 引脚将用作输入,因为我们需要将其连接到 5V 电源才能使 IC 正常工作。


接下来是信号端的接线。使能A(EnableA)和使能B(EnableB)引脚用于启用和控制电机速度。如果该引脚上存在跳线,电机将启动并以最大速度工作。我们也拆下跳线帽,将PWM输入此引脚,就可以控制电机的速度。如果我们将此针脚接地,电机将被禁用。

接下来,IN1和IN2引脚用于控制马达A的旋转方向,IN3和IN4用于马达B。我们通过这些引脚,来L298N IC内部H桥的开关。如果IN1输入低电平而IN2输入高电平,电机将正转,如果N1输入高电平而IN2输入低电平,电机将反转。如果两个引脚输入相同,电机将停止。这同样适用于IN3和IN4以及电机B。

Arduino L298N电机驱动

现在让我们连接上Arduino 做一个实际应用。我们将使用电位计控制电机的速度,并使用按钮改变旋转方向。下面是电路图。

硬件设备:

  • Arduino UNO控制器 × 1
  • 298N电机驱动模块 × 1
  • 直流电机 × 1
    • 电位计 × 1
    • 按钮 × 1
    • 12V 电源 × 1
    • 杜邦线 × n

Arduino代码

/*  Arduino 直流电机控制 - PWM | H-Bridge | L298N */
#define enA 9   //定义电机控制端和使能端
#define in1 6
#define in2 7

#define button 4   //定义按键
int rotDirection = 0;    //定义旋转方向
int pressed = false;
void setup() {
  pinMode(enA, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(button, INPUT);
  // 设置初始旋转方向
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
}
void loop() {
  int potValue = analogRead(A0);  // 读取电位计值
  int pwmOutput = map(potValue, 0, 1023, 0 , 255); //将电位计值映射到 0- 255
  analogWrite(enA, pwmOutput); //  PWM信号输出
  // 读取按键值
  if (digitalRead(button) == true) {
    pressed = !pressed;
  }
  while (digitalRead(button) == true);
  delay(20);
   // 如果按键被按下,改变电机旋转方向
  if (pressed == true  & rotDirection == 0) {
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    rotDirection = 1;
    delay(20);
  }
  // 如果按键被按下,改变电机旋转方向
  if (pressed == false & rotDirection == 1) {
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    rotDirection = 0;
    delay(20);
  }
}

该实例程序中,我们需要先定义程序所需的管脚和变量。在setup中,我们需要设置引脚模式和电机的初始旋转方向。在loop中,我们首先读取电位计值,然后将从中获得的值(从0到1023)映射为PWM信号的0到255的值,或者是PWM信号的0到100%占空比。然后使用analogWrite()函数将PWM信号发送到L298N板的启用引脚,该引脚实际驱动电机。

接下来,我们检查是否按下了按钮,如果是值是真的,通过反向设置in1和in2状态来改变电机的旋转方向。该按钮将作为电机换向按钮,每次我们按下它,电机的旋转方向就会改变。

相关推荐

office2010如何激活免费使用
  • office2010如何激活免费使用
  • office2010如何激活免费使用
  • office2010如何激活免费使用
  • office2010如何激活免费使用
win官网网址(win官方网站)

具体方法如下:打开电脑,在浏览器地址栏输入window,就会进入win中文官网,然后再寻找自己需要的软件,升级包等就可以了。下面是windows官网网址:1http://www.microsoft.c...

电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
wifi网址登录入口(wifi网址登录入口有哪些)

wifi网页登录入口是网关地址192.168.1.1.1.首先检查路由器线路连接(参考前面手机设置路由器部分)2.将电脑Tnternet协议(TCP/IP)属性设置为“自动获取IP地址”和“自...

没有驱动程序怎么安装打印机

(1)启动电脑进入Windows操作系统,在桌面上单击开始-设置-打印机。(2)用鼠标右单击安装好的打印机图标,在弹出的右键菜单中选择属性,然后单击打印测试页按钮。(3)此时打印机会打出一页信息,从这...

u盘怎么取消写保护状态(u盘如何解除写保护状态)

如果您的U盘被设置为写保护,您可以尝试以下方法来关闭写保护:1.检查U盘上的物理开关:一些U盘上可能有一个物理开关,用于启用或禁用写保护。请检查U盘的外壳,看看是否有这样的开关,并将其切换到未锁定的...

压缩文件查看器(压缩文件查看器密码是多少)

1,打开手机上面的文件管理器,找到要压缩的WPS文件。2,长按一下WPS文件,然后选择要压缩的文件。3,点击右下角的【更多】,选择【压缩】。4,对压缩文件进行保存,压缩完成。扩展资料:wps产品特点1...

键盘哪个是截图键(键盘中的截图键是哪一个)

1、按Prtsc键截图这样获取的是整个电脑屏幕的内容,按Prtsc键后,可以直接打开画图工具,接粘贴使用。也可以粘贴在QQ聊天框或者Word文档中,之后再选择保存即可。2、按Ctrl+Prtsc键截图...

flash插件电脑版下载(flash插件下载安装)

可以不安装,不安装对电脑也不会有什么影响。友情提示,最好安装,这个也不会占用你多少内存,它是用来播放网页中的flash文件的。如果你不安装,网页中的flash动画就不能正常播放。浏览器也会提示你安装!...

如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
foxmail邮箱怎么设置(foxmail邮箱设置成功后点完成没反应)

操作步骤/方法1.打开新建界面:2.打开foxmail,在上方导航栏处找到“邮箱(B)”点开此功能,会看到一个下拉菜单,在下拉菜单中找到“新建邮箱账户(N)”。3.建立账户信息:4.点击“新建邮箱账...

电脑自动关机解决办法(电脑自动关机,原来是这里出了问题)

电脑自动关机的原因一、系统文件损坏一个完整的系统受到袭击之后,电脑就不能进行初始化,从而引起自动关机,这也是一个常见的原因。可以选择重装系统的方法来解决问题。电脑自动关机的原因二、CPU太热这是电脑自...

m2固态硬盘安装系统教程(m2固态如何装系统)

加装m.2固态硬盘后,重装系统的操作步骤如下:1、下载U盘启动盘制作工具,下载一个GHOST版最新的WIN7,准备一个足够大的U盘(16G足够了),用U盘启动盘制作工具将其制作成启动U盘;2、插入新电...

运行chkdsk工具(运行chkdsk工具怎么解决)

1、win+R键打开运行,输入cmd。2、输入并回车执行chkdsk/?命令,可以了解chkdsk命令的使用方法。3、比如一些常用的命令,输入并按回车执行chkdskm:/f命令,可以检...

办公软件2007官方下载免费完整版

office字体都变成了英文是因为设置了英文模式。具体的解决步骤如下:我们需要准备的材料分别是:电脑、Word文档。1、首先我们打开Word文档,点击打开左上角的文件中的“选项”。2、然后我们在弹出来...