2019-10-9 18:39:55 [显示全部楼层]
29673浏览
查看: 29673|回复: 12

[教程] 【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机

[复制链接]
本帖最后由 Forgotten 于 2020-5-15 10:21 编辑

好消息,最新版MInd+已经支持扩展用户库了,可以使用用户库功能制作快捷操作功能。
https://mindplus.dfrobot.com.cn/extensions-user

---

前言:
直流电机(俗称马达)由于电流较大,普通的主控板引脚不能直接驱动,因此需要使用电机驱动来控制电机。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图1
L298N是一款常见的廉价电机驱动,缺点是发热量比较大。

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图2

L298N参数:
参数一般只关心如下两个:
逻辑电压(控制端口电压):5V
驱动电压(电机电压):5V-35V
驱动电流(电机电流):2A(MAX单桥)

意味着这个板子适合用5V引脚的主控板驱动(例如arudino系列),而3.3V引脚的主控板可能就不能用了(例如mcirobit、掌控板、esp32)。这个板子驱动的一般都是小电流的电机,例如TT电机(小黄马达)、N20电机这一类的。


接下来看L298N的控制方法:
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图3
引脚说明:
输出A、输出B:接两个电机,不分正负,反了只会反转。
GND:电源地,需要与主控板的GND用一根杜邦线连接到一起(共地)。

12V供电:给电机供电的接口,此处要独立供电,最好不要从主控板引电。
5V供电:此为电压输出口,可以使用这个口给主控板供5V电源,但不推荐这么用。
板载5V使能:此跳线帽接起来之后上面的“5V供电”口才有5V电压输出。

通道A、通道B使能(ENA、ENB):此接口高电平则电机可以运行,低电平则电机停止运行,一般直接跳线帽短接到高电平,即一直使能,可以拔掉跳线帽接到主控板pwm模拟输入端口实现调速。

逻辑输入(IN1、IN2、IN3、IN4):这两个接口控制电机正反转和速度,IN1和IN2控制电机M1,IN3和IN4控制电机M2.

具体控制信号如下图:

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图4

简单理解:
电源接线:
从12V和GND供6-12V的电压。
L298N和主控板的GND使用一根线连接起来。
板载5V使能跳线帽不动。

电机接线:
两个电机分别接到M1和M2上。

信号控制:
ENA和ENB跳线帽拔掉,使用杜邦线分别接到主控板两个PWM模拟输出口。
IN1和IN2,IN3和IN4分别接到主控板数字口。


一图说明:
Arduino uno为例

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图5



其中:
ENA接D5 (PWM口)
ENB接D6  (PWM口)

IN1接D3
IN2接D4

IN3接D8
IN4接D7


接下来进行编程:
以Arduino uno为例
使用Mind+,下载和安装按照官网教程进行即可(http://mindplus.cc )
打开Mind+,切换到“上传模式”,“扩展库”>“主控板”>选择“Arduino uno”
注意:如果对mind+不了解可以先学习一下官方教程:http://mindplus.dfrobot.com.cn

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图6


L298N的驱动只有数字输出和模拟输出即可控制,因此不用再加载扩展模块。

首先让M1正转起来:
根据信号图,只需要让IN1高电平,IN2低电平,ENA输出PWM调速即可。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图7
程序如下,让电机M1以200的速度正转。
上传运行之后如果电机不转,则检查电源接线是否正确,是否共地,信号线是否正确,尝试将速度调到最大。
如果电机反转了,只需要把M1电机的两个线调换即可。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图8
接下来测试M1反转,只需要让IN1高电平,IN2低电平即可:
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图9
程序如下,让电机M1以200的速度反转。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图10

接下来测试M2正转,让IN3高电平,IN4低电平即可
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图11
程序如下,让电机M2以255的速度正转。
上传运行之后如果电机反转了,只需要把M2电机的两个线调换即可。

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图12


接下来测试M2反转,IN3高电平,IN4低电平即可
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图14
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图13

最后测试停止功能,停止电机转动只需要把速度设置为最低即可:
程序如下,两个轮子同时以255速度反转5秒,然后停止3秒。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图15

经过这个测试,则我们就可以控制电机了。
考虑到单独使用引脚控制不方便,我们可以使用”函数“功能,将这几个功能变成一个个函数:
添加一个输入参数为速度,方便速度的控制:
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图16
然后把正转的代码放进去,把传进来的”M1速度“变量插入模拟输出中。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图17


----------------------分割线------------------------------

注意:从1.6.0及后续版本开始取消了数据类型自动判断,因此输入框默认为字符串,即输入123实际是字符串“123”,因此编译会报错。
1.6.0和1.6.1版本在调用函数时如果要输入数字,需要将字符转成数字,例如下图。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图20


注意2:如果使用的是1.6.2,可以在定义函数时添加“数字值”的输入项,这样就不不需要进行类型转换了

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图21
----------------------分割线------------------------------



然后依次把其他几个电机控制命令都用函数表示:
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图18

接下来控制电机就方便了,做个小车方便控制:
M1和M2同时正转3秒,然后停止1秒
然后M1正转,M2反转3秒,然后停止1秒,
然后M1和M2同时反转3秒,然后停止5秒,循环
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图19




如果是控制小车,可以进一步使用函数封装成”前进“”后退“”左转“”右转“”停车“等功能。


全文结束。




Forgotten  版主
 楼主|

发表于 2020-1-8 10:41:09

弱水三千 发表于 2020-1-5 17:04
感谢Forgotten  版主精彩详细的讲解,终于让我的小车的轮子转了起来!!!但是,教程最后完整的小车程序, ...

从1.6.0取消自动类型转换了,因此需要使用将字符转整数的功能,已经添加到教程最后面了

【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图1
回复

使用道具 举报

狭维失  初级技师

发表于 2019-10-17 10:40:33

哇,好详细啊
回复

使用道具 举报

YONG  学徒

发表于 2019-12-1 16:02:44

编译失败,PWM输出不能直接拖M1M2那些变量下去,什么原因呢?
回复

使用道具 举报

Forgotten  版主
 楼主|

发表于 2019-12-4 14:16:51

YONG 发表于 2019-12-1 16:02
编译失败,PWM输出不能直接拖M1M2那些变量下去,什么原因呢?

在1.6.1中去除了数字和字符自动判断,根据调用的输入参数类型进行控制了。
【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机图1
回复

使用道具 举报

弱水三千  学徒

发表于 2020-1-5 17:04:00

感谢Forgotten  版主精彩详细的讲解,终于让我的小车的轮子转了起来!!!但是,教程最后完整的小车程序,编译后上传总是提示错误?后来在QQ群大龙猫大神的指导下,才找到了原因,
202001053727..png
回复

使用道具 举报

弱水三千  学徒

发表于 2020-1-25 20:17:21

感谢版主回复,升版本级后,这样更方便!
回复

使用道具 举报

不教学生的教师  初级技师

发表于 2020-3-9 09:41:49

谢谢版主的详细讲解,这些函数要是能导出,让其它程序调用就更好了,不用每次都重新编。
回复

使用道具 举报

Forgotten  版主
 楼主|

发表于 2020-3-9 15:31:24

不教学生的教师 发表于 2020-3-9 09:41
谢谢版主的详细讲解,这些函数要是能导出,让其它程序调用就更好了,不用每次都重新编。 ...

新版本支持自定义库了,可以尝试把这个封装成一个用户库进行调用。
https://mindplus.dfrobot.com.cn/extensions-user
回复

使用道具 举报

不教学生的教师  初级技师

发表于 2020-3-16 17:05:19

谢谢指导,试一试。
回复

使用道具 举报

DFHkeA4wKYU  见习技师

发表于 2020-5-13 13:30:26

电机驱动装置L298N
回复

使用道具 举报

gada888  版主

发表于 2020-5-28 16:57:48

好消息
回复

使用道具 举报

DFHJFtaU4Lu  初级技师

发表于 2021-4-15 21:23:00

谢谢楼主教程,受益匪浅
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail