Grove - I2C 电机驱动器 V1.3

Grove - I2C 电机驱动器 V1.3(最新版本)可以直接控制步进电机或直流电机。其核心是一个双通道 H 桥驱动芯片(L298N),每通道可处理高达 2A 的电流,由 Atmel ATmega8L 控制,与 Arduino 等平台进行 I2C 通信。两个电机可以同时驱动,并设置不同的速度和方向。它可以驱动两个有刷直流电机或一个四线两相步进电机。它需要 6V 至 15V 的电源来为电机供电,并且配备了一个板载 5V 电压调节器,可以为 I2C 总线和 Arduino 供电(通过跳线选择)。所有驱动线路都通过二极管保护,防止反向电动势。
与 Grove - I2C 电机驱动器 V1.2 相比,V1.3 使用户更容易控制步进电机。您不再需要一直控制步进电机,只需向 I2C 电机驱动器 V1.3 发送一个命令来驱动步进电机,它将按照您的命令执行,这可以节省 Arduino 的资源并简化代码。
版本
| 修订版 | 描述 | 发布日期 |
|---|---|---|
| v1.0 | 初始公开发布 | 2012年5月17日 |
| v1.2 | 修改通过硬件设置的 I2C 地址 | 2012年7月2日 |
| v1.3 | 修改固件以支持离线步进电机 | 2013年2月18日 |
特性
- Grove 兼容
- I2C 接口
- 可调节电机速度和旋转方向
- 可通过硬件更改从设备地址
有关 Grove 模块的更多详细信息,请参考 Grove 系统。
规格
项目 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|
工作电压 | 6 | 15 | VDC | |
每通道最大输出电流 | 0.5 | A | ||
最大总电流 | 1.0 | A | ||
I2C 总线输入/输出电压 | 5 | V | ||
通信协议 | I2C | / | ||
如果您想使用多个 I2C 设备,请参考 软件 I2C。
支持的平台
| Arduino | Raspberry Pi | |||
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上述提到的支持平台仅表示模块的软件或理论兼容性。我们通常仅为 Arduino 平台提供软件库或代码示例。不可能为所有可能的 MCU 平台提供软件库或演示代码。因此,用户需要自行编写软件库。
硬件概述

78M05 IC: 5V 电压调节器
L298 IC: 双全桥驱动器
ATmega8 IC: 控制电机旋转
注意
螺丝端子的输入电压被调节为 5V,并通过跳线 (J4) 连接到 I2C +5V。如果同时使用螺丝端子的外部电源和 I2C 接头供电,请移除跳线。如果需要向 I2C 总线提供 5V,请使用跳线。应用场景
- 机器人
- 自制遥控车
- 机箱风扇
- 高功率 LED 照明
警告
当电流超过 1 安培时,板子会非常热。请勿触碰!入门指南
如果这是您第一次使用 Arduino,我们强烈建议您在开始之前查看 Arduino 入门指南。
使用 Arduino
演示
I2C 电机驱动器可以控制基于 L298 芯片的电机。L298 不仅是一个双电机驱动器,它还是一个双 H 桥。H 桥基本上是一种特定的晶体管设置,可以让您切换电流方向。连接到电机意味着您可以让它向两个方向旋转;通过 PWM 输入,您可以使用 Arduino 让它以任何速度旋转。由于 L298 有两个 H 桥,您可以通过让每个轮子以不同方向旋转来让机器人转向,当然也可以前进和后退。
硬件
- 步骤 1. 准备以下物品:
| Seeeduino V4.2 | Base Shield | Grove - I2C Motor Driver V1.3 |
|---|---|---|
![]() | ![]() | ![]() |
| 立即购买 | 立即购买 | 立即购买 |
-
步骤 2. 设置 I2C 电机驱动器的地址
-
使用拨码开关设置地址是新 I2C 电机驱动器新增的功能。

- 然后确保程序中的地址设置与 I2C 电机驱动器上的地址设置一致。程序中的默认地址设置为 0x0f。
- 步骤 3. 将 Grove - I2C Motor Driver V1.3 连接到 Grove-Base Shield 的 I2C 端口。
- 步骤 4. 将 Grove - Base Shield 插入 Seeeduino。
- 步骤 5. 使用 USB 数据线将 Seeeduino 连接到 PC。

如果没有 Grove Base Shield,我们也可以直接将 Grove - I2C Motor Driver V1.3 连接到 Seeeduino,如下所示。
| Seeeduino | Grove - I2C Motor Driver V1.3 |
|---|---|
| 5V | 红色 |
| GND | 黑色 |
| SDA | 白色 |
| SCL | 黄色 |
软件
- 步骤 1. 从 Github 下载 Grove_I2C_Motor_Driver_v1_3 库。
- 步骤 2. 参考 如何安装库 为 Arduino 安装库。
- 步骤 3. 将代码复制到 Arduino IDE 并上传。如果您不知道如何上传代码,请查看 如何上传代码。
// 默认 I2C 地址为 0x0f
#define I2C_ADDRESS 0x0f
void setup()
{
Motor.begin(I2C_ADDRESS);
}
注意
首先需要注意的是,您需要为您的直流电机提供外部电源。Arduino 上的 5V 引脚无法提供足够的电力来驱动两个电机,如果这样做可能会损坏您的 Arduino。- 有两个函数用于控制直流电机:
// 设置电机速度,速度在这里等同于占空比
void speed(unsigned char motor_id, int _speed);
// 停止一个电机
void stop(unsigned char motor_id);
通过 speed() 函数,你可以以所需的速度驱动一个电机。
-
motor_id 表示使用哪个电机。可以填写 MOTOR1 或 MOTOR2。
-
_speed 表示设置给电机的速度。可以填写 -100~100。当 _speed>0 时,直流电机顺时针旋转;当 _speed<0 时,直流电机逆时针旋转。并且 _speed 的绝对值越大,直流电机的速度越快。
通过 stop() 函数,你可以停止正在运行的直流电机。
- motor_id 表示使用哪个电机。可以填写 MOTOR1 或 MOTOR2。
驱动步进电机
以 24BYJ48 步进电机 为例,硬件安装如下图所示:

24BYJ48 步进电机与 I2C 电机驱动器的连接如下图所示:

- 我们提供了一个函数用于驱动步进电机。
// 驱动步进电机
void StepperRun(int _step);
- _step 表示设置给步进电机运行的步数。可以填写 -1024~1024。当 _step>0 时,步进电机顺时针旋转;当 _step<0 时,步进电机逆时针旋转。当 _step 为 512/-512 时,步进电机将运行一整圈;当 _step 为 1024/-1024 时,步进电机将运行两圈。步进电机完成设定步数后会自动停止。
使用 Codecraft 玩转
硬件
步骤 1. 使用 Grove 电缆将 Grove - I2C 电机驱动器连接到 Seeeduino 的 I2C 接口。如果你使用的是 Arduino,请使用 Base Shield。
步骤 2. 使用 USB 电缆将 Seeeduino/Arduino 连接到你的电脑。
软件
步骤 1. 打开 Codecraft,添加 Arduino 支持,并将主程序拖到工作区域。
如果这是你第一次使用 Codecraft,请参阅 Codecraft 使用 Arduino 指南。
步骤 2. 按下图所示拖动代码块,或者打开页面底部提供的 cdc 文件。

将程序上传到你的 Arduino/Seeeduino。
当代码上传完成后,你会看到连接到电机驱动器的直流电机开始工作。
在线原理图查看器
资源
-
[Eagle] Grove - I2C 电机驱动 V1.3 原理图
-
[Library] Grove - I2C 电机驱动 V1.3 库文件
-
[Firmware] I2C 电机驱动芯片固件
-
[Datasheet] L298 数据手册
-
[Datasheet] 78M05 数据手册
-
[Codecraft] CDC 文件
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供多种支持,确保您使用我们的产品时获得最佳体验。我们提供多个沟通渠道,以满足不同的偏好和需求。








