Grove - Controlador de Motor I2C (L298P)
Grove - Controlador de Motor I2C (L298P) es un controlador de motor de uso común para motor paso a paso y servomotor. Incorpora un chip STM32 para grabar el código que controla el controlador de motor. Este es un controlador de motor de 2 canales, cada canal puede soportar hasta 1A de corriente. También puedes usar la interfaz I2C para transmitir datos desde el microcontrolador periférico. La dirección I2C predeterminada es 0x0f y puedes cambiar la dirección del controlador de motor conectando el puente de cables I2C. La dirección I2C es seleccionable desde 0x00 hasta 0x0f.
Características
- MCU: Microcontrolador STM32f030f4P6 para grabar el código y controlar el Controlador de Motor.
- Chip controlador de motor L298P: de uso común para controlador de motor y puede manejar motor paso a paso y servomotor.
- Dirección I2C seleccionable: cambia la conexión del puente de cables para obtener la dirección I2C desde 0x00 hasta 0x0f, la dirección I2C predeterminada es 0x0f.
- Salida de 2 canales: capaz de soportar 1A de corriente en cada canal, máximo 2A de corriente; Necesita entrada de voltaje DC de 6V-12V.
- LED de usuario: LED verde encendido para la dirección horaria y LED rojo encendido para la dirección antihoraria para cada canal.
Especificaciones
Elemento | Valor |
---|---|
MCU | STM32f030f4P6 |
Fuente de Alimentación | 6-12V DC |
Interfaz | Grove I2C |
Dirección I2C | Predeterminada 0x0f, se puede cambiar conectando el puente de cables |
Canal | 2 |
Corriente de salida | MÁX 2A, 1A para cada canal |
Voltaje de salida | 5V |
Plataforma Soportada
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
Comenzando
Usar la plataforma Arduino
Materiales Requeridos
Seeeduino V4.2 | Base Shield | Grove - Controlador de Motor I2C (L298P) |
---|---|---|
![]() | ![]() | ![]() |
Obtener Uno Ahora | Obtener Uno Ahora | Obtener Uno Ahora |
Conexión de hardware

-
Paso 1 Conecta Grove - Controlador de Motor I2C (L298P) al puerto I2C del Grove-Base Shield.
-
Paso 2 Conecta Grove - Base Shield al Seeeduino.
-
Paso 3 Conecta el Seeeduino a la PC mediante un cable USB.
Código de Software 1 - Motor DC
#include "Grove_I2C_Motor_Driver.h"
#define I2C_ADDRESS 0x0f /* default I2C address is 0x0f */
void setup() {
Serial.begin(9600);
Motor.begin(I2C_ADDRESS);
}
void loop() {
// Set speed of MOTOR1, Clockwise, speed: -100~100
Motor.speed(MOTOR1, 50);
// Set speed of MOTOR2, Anticlockwise
Motor.speed(MOTOR2, -70);
delay(2000);
// Change speed and direction of MOTOR1
Motor.speed(MOTOR1, -100);
// Change speed and direction of MOTOR2
Motor.speed(MOTOR2, 100);
delay(2000);
// Stop MOTOR1 and MOTOR2
Motor.stop(MOTOR1);
Motor.stop(MOTOR2);
delay(2000);
}
-
Paso 1 Descarga la Librería Grove_I2C_Motor_Driver_v1_3 desde Github.
-
Paso 2 Consulta Cómo instalar librería para instalar la librería para Arduino.
-
Paso 3 Copia el código en Arduino IDE y súbelo. Si no sabes cómo subir el código, por favor revisa cómo subir código.
Con la función speed(), puedes controlar un motor a la velocidad que desees.
-
motor_id representa qué motor usar. Puedes llenar MOTOR1 o MOTOR2.
-
_speed representa la velocidad que estableces para el motor. Puedes llenar -100~100 aquí. Cuando _speed>0, el motor DC gira en sentido horario, mientras que _speed<0, el motor DC gira en sentido antihorario. Y mientras mayor sea el valor absoluto de _speed, más rápida será la velocidad del motor DC.
Con la función stop(), puedes detener un motor DC en funcionamiento.
- motor_id representa qué motor usar. Puedes llenar MOTOR1 o MOTOR2.
Código de Software 2 - Motor Paso a Paso
#include <Grove_I2C_Motor_Driver.h>
#define I2C_ADDRESS 0x0f // default I2C address is 0x0f
void setup() {
Serial.begin(9600);
Motor.begin(I2C_ADDRESS);
// Drive a stepper motor
// \\_step: -1024~1024, when \\_step>0, stepper motor runs clockwise; \\_step<0, stepper
// motor runs anticlockwise; when \\_step is 512, the stepper motor will run a complete
// turn; if step is 1024, the stepper motor will run 2 turns.
Motor.StepperRun(-1024);
Motor.StepperRun(512);
}
void loop() {
// your code here
}
Tome el Motor Paso a Paso 24BYJ48 como ejemplo, la instalación del hardware se muestra a continuación:

La conexión entre el Motor Paso a Paso 24BYJ48 y el Controlador de Motor I2C se muestra a continuación:

- _step representa los pasos que estableces para que el motor paso a paso funcione. Puedes llenar -1024~1024. Cuando _step>0, el motor paso a paso gira en sentido horario, mientras que _step<0, el motor paso a paso gira en sentido antihorario. Cuando _step es 512/-512, el motor paso a paso dará una vuelta completa y si _step es 1024/-1024, el motor paso a paso dará 2 vueltas. El motor paso a paso se detendrá automáticamente después de completar sus pasos.
Si encuentras una situación donde la frecuencia PWM no se puede cambiar y permanece fija en 24Hz, es necesario actualizar el firmware usando un Jlink o ST-link. Puedes encontrar el nuevo firmware aquí:
Para cambiar la frecuencia PWM, usa Motor.frequence(50)
donde el valor es la frecuencia, hasta un máximo de 255Hz.
Visor de Esquemas en Línea
Recursos
-
[PDF] Hoja de Datos L298P
-
[PDF] Esquema de hardware
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.