Skip to main content

Grove - I2C电机驱动器V1.2

Grove I2C 马达驱动器是 Grove 系列的新成员,同样拥有易于使用的接口。其核心是一个双通道 H 桥驱动芯片(L298N),每个通道可以处理高达 2A 的电流,由 Atmel ATmega8L 控制,用于处理与例如 Arduino 之间的 I2C 通信。两个马达可以同时驱动,且可以设置不同的速度和方向。它可以为两个有刷直流马达或一个四线双相步进马达供电。它需要一个 6V 至 15V 的电源为马达供电,并配有一个板上 5V 电压调节器,可以为 I2C 总线和 Arduino 供电(可通过跳线选择)。所有驱动线路都通过二极管保护免受反向电动势的影响。

易于使用的软件接口并不是唯一易于使用的功能,因为 Grove I2C 马达驱动器旨在让您快速上手。它配备了一个用于电源的 LED 和四个 LED 来指示每个马达是否在运行以及运行的方向。螺丝端子便于马达和电源的连接,而 Grove 系统插头和 I2C 接口则使您能够将驱动器与其他多个设备串联起来。

版本追踪器


版本 说明 发布
v1.0 首次公开发行 2012年5月17日
v1.2 由硬件设置的I2C地址 2012年7月2日

功能特性


  • 兼容Grove接口

  • I2C接口

  • 可控制马达的速度和方向

  • 通道数:2

  • 可通过硬件更改从机地址

规格


项目 最小值 典型值 最大值 单位
工作电压 6 - 15 VDC
每通道最大输出电流0.5 A
最大总电流1.0 A
I2C总线输入输出电压 5 V
通信协议 I2C /

接口功能


78M05 IC: 5V电压调节器

L298 IC: 双全桥驱动器

Atmega8 IC: 控制马达旋转

注意: 螺丝接线端子上的输入电压被调节至5V,并通过跳线(J4)连接到I2C +5V。如果同时使用螺丝接线端子上的外部电源和I2C接口的电源,请移除跳线。如果需要为I2C总线提供5V电源,请使用跳线。

应用思路


这款马达驱动器可用于驱动任何有刷电子马达,只要其在5V电压下消耗的电流不超过2A即可。可以同时驱动两个马达,并且可以设置不同的速度和方向。速度可以完全按比例设置,并由板载的ATmega8通过PWM(脉宽调制)进行控制。速度的设置是通过从Arduino或Seeeduino发送的I2C命令来实现的。 它非常适合机器人、自制遥控车、机箱风扇、高功率LED照明或涉及比例负载控制的其他项目等应用场景。

注意事项


  • 当工作电流超过1安培时,电路板会变得非常热。请务必远离!

  • 支持Arduino IDE(1.0或更高版本)。

使用说明


这款I2C马达驱动器基于L298芯片控制马达。L298不仅仅是一个双马达驱动器,它还是一个双H桥驱动器。H桥基本上是一种特定的晶体管配置,可以切换电流的方向。因此,将其连接到马达上时,意味着你可以让马达在两个方向上旋转,并且通过PWM(脉宽调制)输入,你可以使用Arduino来控制它们以任何速度旋转。由于L298具有两个H桥,你不仅可以使机器人前进和后退,还可以通过让每个轮子以不同的方向旋转来使其转弯。

现在,让我们使用I2C马达驱动器来控制两个直流马达或一个步进马达以正向或反向旋转。

设置I2C马达驱动器的地址

  • 通过拨码开关设置地址是新版I2C马达驱动器新增的一项功能。

  • 然后确保程序中设置的地址与I2C马达驱动器上设置的地址一致。程序中默认的地址设置是0x0f。
#define I2CMotorDriverAdd         0x0f   // Set the address of the I2CMotorDriver

如何驱动两个直流马达

**注意:**
然而,首先要注意的是,你需要一个外部电源来为你的直流马达供电。Arduino板上的5V引脚无法为两个马达提供足够的电力,如果你这样做,可能会损坏你的Arduino。

然后,按照以下方式为你的Arduino编写程序:

#include <Wire.h>
.......
.......
< Driver functions >
.......
.......
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
delayMicroseconds(10000); //wait for motor driver to initialization
}

void loop() {
while(1) {
MotorSpeedSetAB(100,20);
delay(10); //this delay needed
MotorDirectionSet(0b1010); //0b1010 Rotating in the positive direction
delay(1000);
MotorDirectionSet(0b0101); //0b0101 Rotating in the opposite direction
delay(500);
}
}

在这个程序中,Arduino首先使用MotorSpeedSetAB()命令设置两个直流马达的速度,然后使用MotorDirectionSet()命令设置直流马达的工作方向。请参考Grove-I2C_Motor_Driver_V1.2#Function_Reference以获取更多细节,你可以在Grove-I2C_Motor_Driver_V1.2#Resources中下载所有示例代码。

如何驱动4线步进电机

I2C电机驱动器也可以用来驱动4线步进电机。将你的步进电机连接到I2C电机驱动器的输出引脚,然后将电机驱动器通过I2C总线连接到你的Arduino/Seeeduino上。按照以下步骤为你的Arduino编程:

#include <Wire.h>
.......
.......
< Driver functions >
.......
.......
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
delayMicroseconds(10000); //wait for motor driver to initialization
}

void loop() {
while(1) {
MotorSpeedSetAB(100,100);//when driving a stepper, the speed should be set to 100;
delay(10);
MotorDirectionSet(0b0001);
delay(4);
MotorDirectionSet(0b0011);
delay(4);
MotorDirectionSet(0b0010);
delay(4);
MotorDirectionSet(0b0110);
delay(4);
MotorDirectionSet(0b0100);
delay(4);
MotorDirectionSet(0b1100);
delay(4);
MotorDirectionSet(0b1000);
delay(4);
MotorDirectionSet(0b1001);
delay(4);
}
}

连接好的4线步进电机将会转动,你可以在Arduino程序中调整其转动速度或步数。此外,你还可以使用其他一些步进电机库来控制它,你可以在资源库中下载所有的示例代码。

函数参考


1. void MotorSpeedSetAB(unsigned char MotorSpeedA , unsigned char MotorSpeedB)

描述: 定义电机1和电机2的速度

MotorSpeedA: 直流电机A的速度,取值范围应为 0~100;

MotorSpeedB: 直流电机B的速度,取值范围应为 0~100;

用法:

Serial.println("sent DC speed 100");
MotorSpeedSetAB(100,100);//defines the speed of motor 1 and motor 2;
delay(10); //this delay needed

2. void MotorPWMFrequenceSet(unsigned char Frequence)

描述:设置PWM的分频频率,默认值为0x03。

Frequence:PWM的分频频率。

3. void MotorDirectionSet(unsigned char Direction)

描述:调整电机的方向。

方向:可以是正转/反转。

用法:

MotorDirectionSet(0b1010);  //"0b1010" defines the output polarity, "10" means the M+ is "positive" while the M- is "negative"
// make sure M+ and M- is different polarity when driving DC motors.
delay(1000);
MotorDirectionSet(0b0101); //0b0101 Rotating in the opposite direction
delay(500);

4. void MotorDriectionAndSpeedSet(unsigned char Direction,unsigned char MotorSpeedA,unsigned char MotorSpeedB)

描述:同时调整电机的方向和速度。

在线电路图查看器

资源


技术支持与产品讨论

感谢您选择我们的产品!我们致力于为您提供不同形式的支持,以确保您在使用我们的产品时能够拥有尽可能顺畅的体验。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...