0°

(十一)nodemcu初级:L298驱动模块控制电机

本次课程,我们将介绍L298N双H桥电机驱动模块如何与NodeMCU进行连接使用。

步骤1:材料准备

image https://bbs.qutaojiao.com/assets/images/1-H77rDOdazC48LZe9.jpeg

image https://bbs.qutaojiao.com/assets/images/1-EdIKdEHlhTTJBC1x.jpegimage https://bbs.qutaojiao.com/assets/images/1-8HQebzEBI3DqnxvX.jpeg

硬件要求

L298N双H桥电机驱动模块

NodeMCU开发板

杜邦线

直流电源(7-35v)

*直流电机

软件要求

*Arduino IDE

步骤2:硬件描述

image https://bbs.qutaojiao.com/assets/images/1-KEj27SEmHlZlMbbt.jpeg

image https://bbs.qutaojiao.com/assets/images/1-V19zltBOXCn4gApH.jpeg

先来了解L298N双H桥电机控制器模块

H桥电机控制器可以驱动电流在任一极性,并控制电路的Pulse Width Modulation(PWM)。

什么是脉宽调制?

脉宽调制技术,全称为脉冲宽度调制,英文名称为Pulse Width Modulation,简写为PWM,是一种利用微处理器来完成对模拟电路控制的一种技术,其具有操作简单、灵活性好、反应速度快等诸多特点,现已在通信、测量、功率变换、功率控制等多个方面都得到了广泛的应用。如果通过PWM控制电机,电机将持续更长时间,更可靠。

产品规格:

双H桥驱动芯片:L298N

逻辑电压:5V

驱动电压:5V-35V

逻辑电流:0-36mA

驱动电流:2A(MAX单桥)

最大功率:25W

注:内置5v电源,驱动电压为7v-35v。但建议您不要使用板载5v电源为nodemcu开发板供电。

步骤3:电路图分析

image https://bbs.qutaojiao.com/assets/images/1-3RVT1tyqPKZXXOrJ.jpeg

硬件连接:

  • 12v – 连接的电池正极。

GND – 连接的电池的接地端。

  • 5v – + 5v输入

输入连接

(电机A)

ENA – 为电机A启用PWM信号

IN1 – 启用电机A

IN2 – 启用电机A

(电机B)

ENB – 为电机B启用PWM信号

IN3:启用电机B

IN4:启用电机B

注意:

确保你的硬件连接没有问题在开始下一步编程。(NodeMCU,电源和电机驱动器)

该PWM引脚不是必须要的,如果你不想用来控制输出PWM功能。

步骤4:接线连接

image https://bbs.qutaojiao.com/assets/images/1-rSQcOBYsXUKVFuYX.jpeg

image https://bbs.qutaojiao.com/assets/images/1-05Bl8Q2LY6edBzUs.jpegimage https://bbs.qutaojiao.com/assets/images/1-UuI0TFBRSwSDqBm2.jpeg

image https://bbs.qutaojiao.com/assets/images/1-aGi97lIhBexeCzZs.jpegimage https://bbs.qutaojiao.com/assets/images/1-7NliIv9HTODAp93p.jpeg

image https://bbs.qutaojiao.com/assets/images/1-Y3QWTUe2L490Thjz.jpeg

image https://bbs.qutaojiao.com/assets/images/1-JUlExoNZPLiPTkX5.jpeg

连线方式可以参考上图,其中需要注意的是以下引脚:

Enable A——D2

IN1——D3

IN2——D4

步骤5:开始编程

以下是本课程的程序,可参考以下程序编程:

int ENA = 4;

int IN1 = 0;

int IN2 = 2;
void setup() {

  // 将所有电机控制引脚设置为输出引脚模式

  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
}

// 这个功能将以固定速度在两个方向运行电机
void testOne() {
  // 打开电机
  digitalWrite(ENA, HIGH); // 将速度设置为0〜255范围内
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  delay(2000); // 一定延时后改变电机方向
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  delay(2000); // 一定时间后关闭电机
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
}

// 该功能将在0~255的速度范围内运行电机
// 请注意,最大速度由电机本身和工作电压决定
// 由analogWrite()发送的PWM值是您硬件可能达到的最大速度的值
void testTwo() {
  // 打开点击
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);

  // 从0开始加速到255
  for (int i = 0; i < 256; i++)
  {
    analogWrite(ENA, i);
    delay(50);
  }

余下代码:

当前内容已被隐藏,您需要登录才能查看

程序编写好之后,便可以编译上传程序!

步骤6:运行结果

运行结果图略,自行编译上传后查看。

本节课程序下载:

当前内容已被隐藏,您需要登录才能查看
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
1 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论