stm32学习探究:利用TB6612驱动直流电机

直流电机的驱动

最简单的让直流电机转起来的方法是:直流电机的两个引脚,一个接高电平,一个接低电平。
但是今天,我们总结的是用stm32mini开发板产生的PWM来控制电机,使得电机的速度有个肉眼可见的变化。

TB6612驱动模块

TB6612FNG是东芝半导体公司生产的一款直流电机驱动模块,它是基于MOSFET的H桥集成电路,效率比晶体管的H桥高很多。重要的是TB6612FNG是双通道输出,也就是说,它可以独立双向控制两个直流电机。举个例子:假设,我们搭建一个双轮的小车,想要TB6612FNG来驱动,只需要一个TB6612模块就可以。下来,我们看一下其实物图、引脚图,以及真值表。

  • 实物图
    stm32学习探究:利用TB6612驱动直流电机_第1张图片

  • 引脚图
    stm32学习探究:利用TB6612驱动直流电机_第2张图片
    TB6612的引脚说明

引脚名称 说明
PWMA A电机控制信号输入端
AIN2 A电机输入端2
AIN1 A电机输入端1
YSTB 正常工作/待机状态控制端
BIN1 B电机输入端1
BIN2 B电机输入端2
PWMB B电机控制信号输入端
GND 接地
VM 电机驱动电压输入端(4.5V~15V)
VCC 逻辑电平输入端(2.7V~5.5V)
GND 接地
AO1 A电机输出端1
AO2 A电机输出端2
BO2 B电机输出端2
BO1 B电机输出端1
GND 接地

注意:
TB6612中A和B各为驱动一组电机的输入端和输出端。

  • 真值表(直流电机的驱动状态)
    注意:
    该驱动模块为高电平时有效,否则,直流电机处于停止状态。
IN1 IN2 直流电机的状态
0 0 制动
0 1 正转
1 0 反转
1 1 制动
  • TB6612的正转反转原理
    TB6612FNG是基于MOSFET组成的H桥驱动电路(MOSFET的功能和三极管比较相似,所以按照三极管去理解它的导通情况),下面是我在查资料时候,在网上找的一个图,觉得很能说明问题,所以,我就偷个懒。

stm32学习探究:利用TB6612驱动直流电机_第3张图片

直流电机的驱动

下面我们介绍一下使用TB6612来驱动直流电机的方法。(以A电机为例,B电机同理)

  • 代码的编写
    其实,其实代码和之前写的呼吸灯并没有差异,当时配置通道对应的是PA7引脚,所以我们将PA7引脚插在A电机的控制信号输入引脚,即PWMA上。然后再初始化stm32mini开发板上的两个GPIO口,并使其中一个为高电平,一个为低电平,到时候接到直流电机的AIN1,AIN2上,对应的电机转动状态见上面的表格(我初始化了PA14和PA15两个引脚,到时候连接在A电机的输入端)。
    stm32学习探究:利用TB6612驱动直流电机_第4张图片
    下面,我们附带之前呼吸灯的链接。
    https://blog.csdn.net/jianbai_/article/details/101313546
    (2)硬件的连接
    stm32学习探究:利用TB6612驱动直流电机_第5张图片
    按照以上两个部分操作后,我们将程序烧录到stm32mini开发板上后,就可以去观察直流电机变速的转动了。

总结

需要注意的是,有的时候,PWM的在一定范围变化时,电机的速度变化并不明显,所以不要一味的以为自己的程序或者电机有问题了,可以多试几个值,或者,我们使用一个灯泡试试(即:呼吸灯)。还需要注意的是,如果PWM接3.3~3.5V时,相当于满占空比,所以电机会一直按照你连接的正转/反转方式转下去。

你可能感兴趣的:(STM32)