1、概述
VNH5019双路电机驱动扩展板可以很容易插入到Arduino各种兼容控制器,如常用的Arduino UNO R3等。扩展板采用ST公司生产的VNH5019驱动芯片,工作电压从5.5V到24V,每路提供12A大小的电流到30A的峰值电流,可谓是悍马级直流电机驱动板。
整板采用SMD表贴元件,体积小、重量轻,通过Arduino控制可以轻松控制两个双向、高功率直流电机。 板载上拉电阻和保护电阻和FET的反向电池保护。扩展板默认IO接口,简单易用,性能与功率大大超越初学者所用L298系列驱动器。
2、规格参数
工作电压范围:5.5V- 24V
驱动芯片:VNH5019
驱动通道:2路
单通道连续输出电流值:12A
单通道最大输出电流值:30A
电流检测值:0.14 V/A
最大PWM频率:20KHZ
反向电压保护模式:有
3、扩展板与arduino连接示意图
4、扩展板与Arduino I/O 接口对应说明
5、测试代码
#include “DualVNH5019MotorShield.h”
DualVNH5019MotorShield md;
void stopIfFault()
{
if (md.getM1Fault())
{
Serial.println(“M1 fault”);
while(1);
}
if (md.getM2Fault())
{
Serial.println(“M2 fault”);
while(1);
}
}
void setup()
{
Serial.begin(115200);
Serial.println(“Dual VNH5019 Motor Shield”);
md.init();
}
void loop()
{
for (int i = 0; i <= 400; i++)
{
md.setM1Speed(i);
stopIfFault();
if (i%200 == 100)
{
Serial.print(“M1 current: “);
Serial.println(md.getM1CurrentMilliamps());
}
delay(2);
}
for (int i = 400; i >= -400; i–)
{
md.setM1Speed(i);
stopIfFault();
if (i%200 == 100)
{
Serial.print(“M1 current: “);
Serial.println(md.getM1CurrentMilliamps());
}
delay(2);
}
for (int i = -400; i <= 0; i++)
{
md.setM1Speed(i);
stopIfFault();
if (i%200 == 100)
{
Serial.print(“M1 current: “);
Serial.println(md.getM1CurrentMilliamps());
}
delay(2);
}
for (int i = 0; i <= 400; i++)
{
md.setM2Speed(i);
stopIfFault();
if (i%200 == 100)
{
Serial.print(“M2 current: “);
Serial.println(md.getM2CurrentMilliamps());
}
delay(2);
}
for (int i = 400; i >= -400; i–)
{
md.setM2Speed(i);
stopIfFault();
if (i%200 == 100)
{
Serial.print(“M2 current: “);
Serial.println(md.getM2CurrentMilliamps());
}
delay(2);
}
for (int i = -400; i <= 0; i++)
{
md.setM2Speed(i);
stopIfFault();
if (i%200 == 100)
{
Serial.print(“M2 current: “);
Serial.println(md.getM2CurrentMilliamps());
}
delay(2);
}
}
注意:在上传程序前中,要把Vnh5019文件夹放到 编译器安装目录下的\Arduino\libraries里。不然编译不过。 例如我的:C:\Program Files\Arduino\libraries
6、测试结果
按照接线方法接好线,烧录好代码,上电后,电机1反转0.8秒后,然后正转0.8秒;再电机2反转0.8秒,正转0.8秒;循环交替。