Skip to main content

Grove - I2C 电机驱动器 (L298P)

Grove - I2C 电机驱动器 (L298P) 是一款通用的步进电机和伺服电机驱动器。它内嵌 STM32 芯片,用于烧录代码以控制电机驱动器。这是一款双通道电机驱动器,每个通道支持最高 1A 电流。您还可以使用 I2C 接口从外围微控制器传输数据。默认的 I2C 地址为 0x0f,您可以通过连接 I2C 线帽来更改电机驱动器的地址。I2C 地址可在 0x00 到 0x0f 之间选择。

特性

  • MCU:STM32f030f4P6 微控制器,用于烧录代码并控制电机驱动器。
  • L298P 电机驱动芯片:常用于电机驱动,可驱动步进电机和伺服电机。
  • 可选 I2C 地址:通过更改线帽连接,可将 I2C 地址设置为 0x00 到 0x0f,默认 I2C 地址为 0x0f。
  • 双通道输出:每个通道支持 1A 电流,最大支持 2A 电流;需要 6V-12V DC 电压输入。
  • 用户 LED:每个通道的绿色 LED 表示顺时针方向,红色 LED 表示逆时针方向。

规格

项目参数
MCUSTM32f030f4P6
电源6-12V DC
接口Grove I2C
I2C 地址默认 0x0f,可通过连接线帽更改
通道2
输出电流最大 2A,每通道 1A
输出电压5V

支持的平台

ArduinoRaspberry Pi

入门指南

使用 Arduino 平台

所需材料

Seeeduino V4.2Base ShieldGrove - I2C Motor Driver (L298P)
图片描述图片描述图片描述
立即购买立即购买立即购买

硬件连接

  • 步骤 1 将 Grove - I2C Motor Driver (L298P) 连接到 Grove-Base Shield 的 I2C 端口。

  • 步骤 2 将 Grove - Base Shield 插入 Seeeduino。

  • 步骤 3 使用 USB 数据线将 Seeeduino 连接到电脑。

软件代码 1 - 直流电机

#include "Grove_I2C_Motor_Driver.h"

#define I2C_ADDRESS 0x0f /* 默认 I2C 地址为 0x0f */

void setup() {
Serial.begin(9600);
Motor.begin(I2C_ADDRESS);
}

void loop() {
// 设置 MOTOR1 的速度,顺时针,速度范围:-100~100
Motor.speed(MOTOR1, 50);
// 设置 MOTOR2 的速度,逆时针
Motor.speed(MOTOR2, -70);
delay(2000);
// 改变 MOTOR1 的速度和方向
Motor.speed(MOTOR1, -100);
// 改变 MOTOR2 的速度和方向
Motor.speed(MOTOR2, 100);
delay(2000);
// 停止 MOTOR1 和 MOTOR2
Motor.stop(MOTOR1);
Motor.stop(MOTOR2);
delay(2000);
}

通过 speed() 函数,您可以以所需速度驱动一个电机。

  • motor_id 表示使用哪个电机。可以填写 MOTOR1 或 MOTOR2。

  • _speed 表示设置给电机的速度。可以填写 -100~100。当 _speed > 0 时,直流电机顺时针运行;当 _speed < 0 时,直流电机逆时针运行。绝对值越大,直流电机的速度越快。

通过 stop() 函数,您可以停止正在运行的直流电机。

  • motor_id 表示使用哪个电机。可以填写 MOTOR1 或 MOTOR2。

软件代码 2 - 步进电机

#include <Grove_I2C_Motor_Driver.h>

#define I2C_ADDRESS 0x0f // 默认 I2C 地址为 0x0f

void setup() {
Serial.begin(9600);
Motor.begin(I2C_ADDRESS);
// 驱动步进电机
// \\_step: -1024~1024,当 \\_step > 0 时,步进电机顺时针运行;当 \\_step < 0 时,步进电机逆时针运行;
// 当 \\_step 为 512 时,步进电机将完成一次完整转动;如果 \\_step 为 1024,步进电机将完成两次转动。
Motor.StepperRun(-1024);
Motor.StepperRun(512);
}

void loop() {
// 在此处编写您的代码
}

24BYJ48 步进电机 为例,硬件安装如下图所示:

24BYJ48 步进电机与 I2C Motor Driver 的连接如下图所示:

  • _step 表示设置给步进电机运行的步数。可以填写 -1024~1024。当 _step > 0 时,步进电机顺时针运行;当 _step < 0 时,步进电机逆时针运行。当 _step 为 512/-512 时,步进电机将完成一次完整转动;如果 _step 为 1024/-1024,步进电机将完成两次转动。步进电机在完成设定步数后会自动停止。
note

如果遇到 PWM 频率无法更改且固定为 24Hz 的情况,需要使用 Jlink 或 ST-link 更新固件。您可以在以下链接找到新固件:

https://github.com/Seeed-Studio/grove_stm32f030/blob/master/firmware/grove_i2c_motor_driver_stm32f030.ino.bin

要更改 PWM 频率,请使用 Motor.frequence(50),其中值为频率,最大可达 255Hz。

原理图在线查看器

资源

技术支持与产品讨论

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

Loading Comments...