与TB6612相似,DRV8833作为一种常见的电机驱动模块,经常被用组成各种小车的动力系统,DRV8833模块的使用并非难事,但是在我初次接触DRV8833时,确实遇到了一点小小的困难,那么这期教程让我们一起来看一下DRV8833的使用吧
本次教程使用的硬件有:
- Arduino 开发板 1个
- 面包板 1个
- DRV8833模块 1个
- 直流电机 1个
- 杜邦线 若干
(由于模拟软件中没有DRV8833,所以图片中用H桥电机驱动器替代了下)

在正式开始教程之前,我们需要认识一下DRV833的各个引脚
DRV8833共有16个引脚,让我们分开来认识他们。
首先是最常见的电源引脚,接地引脚
右上角VM为芯片和电机供电脚,电压范围为2.7V-10.8V
所有的GND均为接地引脚
NC为空引脚,没什么用处

AIN1是AO1的逻辑输入控制脚,电压0-5V
AIN2是AO2的逻辑输入控制脚,电压0-5V
BIN1是BO1的逻辑输入控制脚,电压0-5V
BIN2是BO2的罗技输入控制脚,电压0-5V
AO1、AO2是1路H桥输出端口,接一个直流电机的两脚
BO1、BO2是2路H桥输出端口,接另一个直流电机的两脚

有一个特殊的引脚是STBY脚,如果该引脚接地或者是悬空(什么都不接),那么芯片将不会工作;如果想让芯片工作,需要将该引脚接入5V

在认识了基本的引脚后,我们还需要掌握下面一张表,这样才能更好的理解DRV8833的工作方式。这个表简单来说,我们只需要看前两列与最后一列,0可以视为低电平,1可以视为高电平;两种高低电平的组合可以实现最后一列的功能。例如AIN1口为低电平,AIN2口为高电平,那么AO所接的电机就会反转。需要注意的是,此时电机速度是最高速度,我们不能进行速度调控。

其实正反我个人认为不需要严格区分,毕竟真正接上马达后可以自己调试
在基本了解了DRV883的工作方式以后,我们就可以开始正式使用它来
了。首先按照接线。(由于模拟软件没有内置DRV8833,因此没模拟图)
1个VM脚、1个STBY脚接5V
3个GND脚接地
AIN1接8
AIN2接9
AOI、AO2接电机两脚

完成接线后,我们打开IDE写一个简单的电机控制程序

首先定义AIN1.2的接口,同时将这两个接口设置为输出模式

接着将AIN1设置为高电平,AIN2设置为低电平
也就是AIN为1,AIN2为0

那么按照表格中的信息,我们可以了解到电机可能会转动起来,烧录后电机果然以较高的速度旋转了起来。那么我们本期教程也就结束了
两点说明:1.为了演示方便,本教程仅仅接入了一个直流电机,理论上一个DRV8833可以驱动两个甚至四个直流电机
2.若想控制速度,请参考下图

暂无评论内容