最近趁着有时间将这两个模块总结一下,做智能小车很有用。
另外也附有大神的博客和视频讲解

下面的操作不需要代码,只需要给高低电平就可以,弄懂下面的原理你也可以用代码操作。(文末有代码链接)

1.TB6612FNG直流电机控制:

在这里插入图片描述

VM直接接12V电池即可,VCC是内部的逻辑供电,一般给3.3v或者5v都行,模块的3个GND接任意一个就行(我用了两个,往下看)。STBY置高(给3.3V)模块才能正常工作。

上图中红色的部分的5个引脚控制一路电机,蓝色部分控制另一路电机,这里以A路为例。

A01和A02分别接电机的+和-

AIN1和AIN2分别给高电平和低电平

下面是电机真值表:

在这里插入图片描述

下面我说一下我自己的接线方式,仅供参考:

<1>VM和GND连接外给12V电源,形成一个回路,使模块正常工作

<2>VCC和另外一个GND接单片机的3.3V和GND(因为是测试,所以我用的USB给单片机供电),使模块和单片机形成回路

<3>AIN1接3.3V、AIN2接GND

如下图(先忽略PWMA接线,因为这个用到了代码),这样模块再连接电机,就可以转动了。

在这里插入图片描述

如果想实现PWM调速,程序配置好,然后用一个PWM通道就可以进行测试, 我用的是TIM1的通道1(PA8)来控制电机转动的占空比。

// A code block
注意:PWM信号输入频率一般10KHZ即可
10KHZ怎么设置:TIM1_PWM_Init(99,71); PWM频率=72000000/(71+1)/(99+1)=10KHZ
即:arr=99  psc=71

基本就是这些,如果想要了解更深的相关知识,请参考大佬博主的博客:

链接: TB6612FNG详细介绍

2.L298N直流电机控制

我先简单的说一下各部分名称。

在这里插入图片描述

①输出A、输出B各接一个电机

②在板载5V跳线帽插入的时候,12V和GND分别接外给电源的12V和GND(可以接7~12V),同时最右边输出的5V(和GND)可以给单片机供电,当你用输出的5V供电时,要保证单片机和模块供地,也就是模块的GND得分出两路来。

③逻辑输入的4个引脚,分别给“高电平和GND”控制2个电机

这样电机就可以转动了。

<1>正反转实现如下

在这里插入图片描述

即给IN1、IN2高低电平,大家应该都明白。

注:当发现电机不转的时候

第一先保证你的输入电压是不是在7~12V

第二如果你用的是L298N给单片机供电,检查单片机是否和L298N共地了

<2>PWM调速
在上面实现电机转动的基础上,将通道A使能跳线帽拔掉,接单片机的PWM信号引脚,我用的是TIM1的通道1(PA8),来控制电机转动的占空比。(代码文末有链接

<3>那么还有一个板载5V使能是怎么回事那?

当这个跳线帽插上的时候,最右边可以输出一路5V的电压,给单片机或者其
他模块供电;

但是当外给电压超过12V(12~24V)的时候,因为电压超过12V了,这时候需要拔掉这个跳线帽,并且需要再从外面输入一路5V的电压给L298N。麻烦把,所以咱们一般用不到这一方面,知道就可以了。

下面是我的接线:

在这里插入图片描述

// A code block
橙色的就是接的PA8,另外紫色和灰色分别给3.3V和GND,因为是测试
所以我的单片机是用USB供电。

好了,就写到这里了,本人的只是水平也有限,如果大家发现什么错误,欢迎大家指正。

附:

链接: 一个很详细的视频

链接: 另外一个大佬的博客(关于L298N的)

链接: PWM实现电机正反转

提取码:379g