最新消息:

Arduino直流电机驱动-Quad Motor Driver Shield for Arduino四路直流电机驱动扩展板

Arduino 少儿编程 1903浏览 0评论
Arduino电机及驱动

简介

  • Quad Motor Shield for Arduino是Arduino兼容的一款直流电机驱动,最多可以同时驱动4个直流电机。
  • 控制端口为8个,控制程序很简单。该电路线路布线合理、均采用贴元件片、体积小、方便安装,即插即用。
  • Quad Motor Shield for Arduino采用TB6612FNG电机驱动芯片。
  • TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机。
  • TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);PWM支持频率高达100 kHz;
  • 片内低压检测电路与热停机保护电路;工作温度:-20~85℃;SSOP24小型贴片封装。

产品参数

  • 工作电压 2.5V-13.5V
  • 工作电流 每通道最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲)
  • Arduino控制端口:数字口3,4,5,6,7,8,11,12
  • 尺寸 52mm X 53mm

引脚说明

Arduino直流电机驱动-Quad Motor Driver Shield for Arduino四路直流电机驱动扩展板

使用教程

简单编程实现电机的控制。

控制电机对应的IO口
电机 方向控制脚 正转 反转 速度控制脚 速度范围
M1 4 LOW HIGH 3 0-255
M2 12 HIGH LOW 11 0-255
M3 8 LOW HIGH 5 0-255
M4 7 HIGH LOW 6 0-255

所需硬件

  • UNO x1
  • Quad Motor Shield for Arduino x1
  • 直流电机 x 4
  • 杜邦线 若干

所需软件

  • Arduino IDE点击下载Arduino IDE

连线图

Arduino直流电机驱动-Quad Motor Driver Shield for Arduino四路直流电机驱动扩展板

样例代码

/*!
* @file QuadMotorDriverShield.ino
* @brief QuadMotorDriverShield.ino  Motor control program
*
* Every 2 seconds to control motor positive inversion
* 
* @author linfeng(490289303@qq.com)
* @version  V1.0
* @date  2016-4-5
*/
const int E1 = 3; ///<Motor1 Speed
const int E2 = 11;///<Motor2 Speed
const int E3 = 5; ///<Motor3 Speed
const int E4 = 6; ///<Motor4 Speed

const int M1 = 4; ///<Motor1 Direction
const int M2 = 12;///<Motor2 Direction
const int M3 = 8; ///<Motor3 Direction
const int M4 = 7; ///<Motor4 Direction


void M1_advance(char Speed) ///<Motor1 Advance
{
 digitalWrite(M1,LOW);
 analogWrite(E1,Speed);
}
void M2_advance(char Speed) ///<Motor2 Advance
{
 digitalWrite(M2,HIGH);
 analogWrite(E2,Speed);
}
void M3_advance(char Speed) ///<Motor3 Advance
{
 digitalWrite(M3,LOW);
 analogWrite(E3,Speed);
}
void M4_advance(char Speed) ///<Motor4 Advance
{
 digitalWrite(M4,HIGH);
 analogWrite(E4,Speed);
}

void M1_back(char Speed) ///<Motor1 Back off
{
 digitalWrite(M1,HIGH);
 analogWrite(E1,Speed);
}
void M2_back(char Speed) ///<Motor2 Back off
{
 digitalWrite(M2,LOW);
 analogWrite(E2,Speed);
}
void M3_back(char Speed) ///<Motor3 Back off
{
 digitalWrite(M3,HIGH);
 analogWrite(E3,Speed);
}
void M4_back(char Speed) ///<Motor4 Back off
{
 digitalWrite(M4,LOW);
 analogWrite(E4,Speed);
}



void setup() {
  for(int i=3;i<9;i++)
    pinMode(i,OUTPUT);
  for(int i=11;i<13;i++)
    pinMode(i,OUTPUT);
}

void loop() {
M1_advance(100);
M2_advance(100);
M3_advance(100);
M4_advance(100);
delay(2000); ///<Delay 2S
M1_back(100);
M2_back(100);
M3_back(100);
M4_back(100);
delay(2000); ///<Delay 2S
}
                         

结果

电机每隔2S实现正反转。

本文整理于 DFRobot wiki

您必须 登录 才能发表评论!