Skip to main content

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 接口
  • 可调节电机速度和旋转方向
  • 可通过硬件更改从设备地址
tip

有关 Grove 模块的更多详细信息,请参考 Grove 系统

规格

项目

最小值

典型值

最大值

单位

工作电压

6

15

VDC

每通道最大输出电流

0.5

A

最大总电流

1.0

A

I2C 总线输入/输出电压

5

V

通信协议

I2C

/

note

如果您想使用多个 I2C 设备,请参考 软件 I2C

支持的平台

ArduinoRaspberry Pi
caution

上述提到的支持平台仅表示模块的软件或理论兼容性。我们通常仅为 Arduino 平台提供软件库或代码示例。不可能为所有可能的 MCU 平台提供软件库或演示代码。因此,用户需要自行编写软件库。

硬件概述

78M05 IC: 5V 电压调节器

L298 IC: 双全桥驱动器

ATmega8 IC: 控制电机旋转

注意

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

应用场景

  • 机器人
  • 自制遥控车
  • 机箱风扇
  • 高功率 LED 照明

警告

当电流超过 1 安培时,板子会非常热。请勿触碰!

入门指南

note

如果这是您第一次使用 Arduino,我们强烈建议您在开始之前查看 Arduino 入门指南

使用 Arduino

演示

I2C 电机驱动器可以控制基于 L298 芯片的电机。L298 不仅是一个双电机驱动器,它还是一个双 H 桥。H 桥基本上是一种特定的晶体管设置,可以让您切换电流方向。连接到电机意味着您可以让它向两个方向旋转;通过 PWM 输入,您可以使用 Arduino 让它以任何速度旋转。由于 L298 有两个 H 桥,您可以通过让每个轮子以不同方向旋转来让机器人转向,当然也可以前进和后退。

硬件

  • 步骤 1. 准备以下物品:
Seeeduino V4.2Base ShieldGrove - I2C Motor Driver V1.3
enter image description hereenter image description hereenter image description here
立即购买立即购买立即购买
  • 步骤 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。

note

如果没有 Grove Base Shield,我们也可以直接将 Grove - I2C Motor Driver V1.3 连接到 Seeeduino,如下所示。

SeeeduinoGrove - I2C Motor Driver V1.3
5V红色
GND黑色
SDA白色
SCL黄色

软件

// 默认 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 支持,并将主程序拖到工作区域。

note

如果这是你第一次使用 Codecraft,请参阅 Codecraft 使用 Arduino 指南

步骤 2. 按下图所示拖动代码块,或者打开页面底部提供的 cdc 文件。

cc

将程序上传到你的 Arduino/Seeeduino。

tip

当代码上传完成后,你会看到连接到电机驱动器的直流电机开始工作。

在线原理图查看器

资源

技术支持与产品讨论

感谢您选择我们的产品!我们致力于为您提供多种支持,确保您使用我们的产品时获得最佳体验。我们提供多个沟通渠道,以满足不同的偏好和需求。

Loading Comments...