查看: 304|回复: 1

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

[复制链接]
前言:
直流电机(俗称马达)由于电流较大,普通的主控板引脚不能直接驱动,因此需要使用电机驱动来控制电机。
201910099006.png
L298N是一款常见的廉价电机驱动,缺点是发热量比较大。

201910091772.png

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

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


接下来看L298N的控制方法:
201910094474.png
引脚说明:
输出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.

具体控制信号如下图:

201910092813.png

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

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

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


一图说明:
Arduino uno为例

201910092779.png



其中:
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

201910094211.png


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

首先让M1正转起来:
根据信号图,只需要让IN1高电平,IN2低电平,ENA输出PWM调速即可。
201910091696.png
程序如下,让电机M1以200的速度正转。
上传运行之后如果电机不转,则检查电源接线是否正确,是否共地,信号线是否正确,尝试将速度调到最大。
如果电机反转了,只需要把M1电机的两个线调换即可。
201910096705.png
接下来测试M1反转,只需要让IN1高电平,IN2低电平即可:
201910097970.png
程序如下,让电机M1以200的速度反转。
201910098731.png

接下来测试M2正转,让IN3高电平,IN4低电平即可
201910091533.png
程序如下,让电机M2以255的速度正转。
上传运行之后如果电机反转了,只需要把M2电机的两个线调换即可。

201910092463.png


接下来测试M2反转,IN3高电平,IN4低电平即可
201910096404.png
201910097853.png

最后测试停止功能,停止电机转动只需要把速度设置为最低即可:
程序如下,两个轮子同时以255速度反转5秒,然后停止3秒。
201910097818.png

经过这个测试,则我们就可以控制电机了。
考虑到单独使用引脚控制不方便,我们可以使用”函数“功能,将这几个功能变成一个个函数:
添加一个输入参数为速度,方便速度的控制:
201910093416.png
然后把正转的代码放进去,把传进来的”M1速度“变量插入模拟输出中。
201910098298.png

然后依次把其他几个电机控制命令都用函数表示:
201910092962.png

接下来控制电机就方便了,做个小车方便控制:
M1和M2同时正转3秒,然后停止1秒
然后M1正转,M2反转3秒,然后停止1秒,
然后M1和M2同时反转3秒,然后停止5秒,循环
201910099891.png


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


全文结束。

狭维失  见习技师

发表于 5 天前

哇,好详细啊
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

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

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

mail