简介
DFRobot新推出超小型双路直流电机驱动,只有一个指甲盖大小,即可驱动双路1.5A电机。模块两边管脚配备XH2.54标准排针,可以直接在面包板和原型板上使用,使用非常方便,满足各类DIY要求。
配合Arduino源码,可以轻松实现电机控制。创客时代,我们能为您带来更多!
产品参数
- 逻辑电压(VCC):3.3–5 V
- 工作电压(VM):3.3–10 V
- 最大持续工作电流:1500mA(单路)
- 支持PWM调速方式
- 工作温度:-20 ~ 85 摄氏度
- 尺寸:18mm*13mm
引脚说明
标号 | 名称 | 功能描述 |
---|---|---|
1 | VCC | 电源3.3V-5V或者IO口输出高电平 |
2 | GND | 电源负极 |
3 | IB2 | B路逻辑输入端2 |
4 | IB1 | B路逻辑输入端1 |
5 | IA2 | A路逻辑输入端2 |
6 | IA1 | A路逻辑输入端1 |
7 | VM | 电机驱动电源3.3V-10V |
8 | GND | 电源负极 |
9 | MB1 | B路输出1 |
10 | MB2 | B路输出2 |
11 | MA2 | A路输出2 |
12 | MA1 | A路输出1 |
管脚映射
使用教程
准备
- 硬件
- UNO x1
- Motor driver-HR8833 x1
- 杜邦线 若干
- 软件
- Arduino IDE 版本1.6.8 点击下载Arduino IDE
接线图
IA1接数字口10
IA2接数字口12
IB1接数字口11
IB2接数字口13
控制方式
输入管脚IA1和IA2控制输出管脚MA1和MA2的状态。类似的,输入管脚IB1和IB2控制着输出管脚MB1和MB2的状态。下表显示了彼此间的逻辑关系。
Ix1 | Ix2 | Mx1 | Mx2 | 功能 |
0 | 0 | Z | Z | Coast/fast decay |
0 | 1 | L | H | Reverse |
1 | 0 | H | L | Forward |
1 | 1 | L | L | Brake/slow decay |
当PWM控制用于快衰模式,PWM信号控制一个Ix管脚,而另一个管脚维持低电平;当运用于慢衰减,另一个管脚维持高电平。如下图所示:
Ix1 | Ix2 | 功能 | 描述 |
PWM | 0 | Forward PWM,fast decay | 正向PWM调速,采用电流快衰减方式,高电平占空比为调速比 |
1 | PWM | Forward PWM,slow decay | 正向PWM调速,采用电流慢衰减方式,低电平占空比为调速比 |
0 | PWM | Reverse PWM,fast decay | 反向PWM调速,采用电流快衰减方式,高电平占空比为调速比 |
PWM | 1 | Reverse PWM,slow decay | 反向PWM调速,采用电流慢衰减方式,低电平占空比为调速比 |
样例代码
/*
* @file Motor driver HR8833-Test.ino
* @brief HR8833-Test.ino Motor control program
*
* control motor positive inversion
*
* @author lei.wu@dfrobot.com
* @version V1.0
* @date 2016-4-13
*/
const int IA1=10;
const int IA2=12;
const int IB1=11;
const int IB2=13;
void setup() {
pinMode(IA1, OUTPUT);
pinMode(IA2, OUTPUT);
pinMode(IB1, OUTPUT);
pinMode(IB2, OUTPUT);
}
void loop() {
MA1_Forward(200);
MB1_Forward(200);
delay(1000);
MA2_Backward(200);
MB2_Backward(200);
delay(1000);
}
void MA1_Forward(int Speed1) //正向快衰模式,Speed1值越大,电机转动越快
{
analogWrite(IA1,Speed1);
digitalWrite(IA2,LOW);
}
void MA2_Backward(int Speed1) //反向慢衰模式,Speed2值越小,电机转动越快
{
int Speed2=255-Speed1;
analogWrite(IA1,Speed2);
digitalWrite(IA2,HIGH);
}
void MB1_Forward(int Speed1)
{
analogWrite(IB1,Speed1);
digitalWrite(IB2,LOW);
}
void MB2_Backward(int Speed1)
{
int Speed2=255-Speed1;
analogWrite(IB1,Speed2);
digitalWrite(IB2,HIGH);
}
结果
电机正反转
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖! |