Skip to main content

Grove - Controlador de Motor I2C V1.3

El Grove - Controlador de Motor I2C V1.3 (versión más reciente) puede controlar directamente un Motor Paso a Paso o Motor DC. Su núcleo es un chip controlador de puente H de doble canal (L298N) que puede manejar corriente hasta 2A por canal, controlado por un Atmel ATmega8L que maneja la comunicación I2C con plataformas como Arduino. Ambos motores pueden ser controlados simultáneamente mientras se configuran a diferente velocidad y dirección. Puede alimentar dos motores DC con escobillas o un motor paso a paso de dos fases de 4 cables. Requiere una fuente de alimentación de 6V a 15V para alimentar el motor y tiene un regulador de voltaje de 5V integrado que puede alimentar el bus I2C y el Arduino (seleccionable por jumper). Todas las líneas del controlador están protegidas por diodos contra la FEM inversa.

En contraste con el Grove - controlador de motor I2C V1.2, el V1.3 permite a los usuarios controlar el motor paso a paso más fácilmente. Ya no necesitas controlar los steppers todo el tiempo, simplemente envía un comando al controlador de motor I2C V1.3 para manejar un motor paso a paso, y actuará según tu comando, lo que ahorrará recursos de tu Arduino y simplificará tu código.

Versión

RevisiónDescripcionesLanzamiento
v1.0Lanzamiento público inicial17 de mayo, 2012
v1.2Modificar la dirección I2C establecida por hardware2 de julio, 2012
v1.3Modificar el firmware para soportar Stepper fuera de línea18 de febrero, 2013

Características

  • Compatible con Grove
  • Interfaz I2C
  • Velocidad del motor y dirección de rotación ajustables
  • Dirección esclava cambiable por hardware
tip

Más detalles sobre los módulos Grove consulte Sistema Grove

Especificaciones

Elemento

Mín

Típico

Máx

Unidad

Voltaje de Trabajo

6

15

VDC

Corriente Máxima de Salida por canal

0.5

A

Corriente Total Máxima

1.0

A

Voltaje de entrada/salida en bus I2C

5

V

Protocolo de comunicación

I2C

/

note

Si quieres usar múltiples dispositivos I2C, por favor consulta Software I2C.

Plataformas Soportadas

ArduinoRaspberry Pi
caution

Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.

Descripción General del Hardware

IC 78M05: Regulador de voltaje de 5V

IC L298: Controlador de puente completo dual

IC ATmega8: Controla la rotación del motor.

Nota

El voltaje de entrada en los terminales de tornillo se regula a 5V y se conecta a I2C +5V a través de un puente (J4). Retire el puente si se utilizan tanto alimentación externa a través de los terminales de tornillo como alimentación a través del conector I2C. Use el puente si se debe suministrar 5V al bus I2C.

Ideas de Aplicación

  • Robots
  • Coches RC caseros
  • Ventiladores de carcasa
  • Iluminación LED de alta potencia

Precaución

¡La placa se calentará mucho mientras opere por encima de 1 Amperio. ¡Mantenga sus manos alejadas!

Primeros Pasos

note

Si esta es la primera vez que trabajas con Arduino, recomendamos firmemente que veas Primeros Pasos con Arduino antes de comenzar.

Jugar con Arduino

Demostración

El Controlador de Motor I2C puede controlar motores basado en el chip L298. El L298 no es solo un controlador de motor dual, es un puente H dual. Un puente H es básicamente una configuración específica de transistores que te permite cambiar la dirección de la corriente. Conectarlo a un motor significa que puedes hacerlo girar en ambas direcciones; y con entrada PWM, puedes usar tu Arduino para hacerlos girar a cualquier velocidad. Debido a que el L298 tiene 2 puentes H, puedes hacer que un robot gire haciendo girar cada rueda en diferentes direcciones, y por supuesto ir hacia adelante y hacia atrás.

Hardware

  • Paso 1. Prepara los siguientes elementos:
Seeeduino V4.2Base ShieldGrove - I2C Motor Driver V1.3
enter image description hereenter image description hereenter image description here
Obtener Uno AhoraObtener Uno AhoraObtener Uno Ahora
  • Paso 2. Configurar la dirección del Controlador de Motor I2C

  • Configurar la dirección mediante el interruptor de dial es una nueva función añadida al nuevo Controlador de Motor I2C.

  • Luego mantén la configuración de dirección en el programa igual que la configuración de dirección en el controlador de motor I2C. La configuración de dirección predeterminada en el programa es 0x0f.
  • Paso 3. Conecta Grove - I2C Motor Driver V1.3 al puerto I2C del Grove-Base Shield.
  • Paso 4. Conecta Grove - Base Shield al Seeeduino.
  • Paso 5. Conecta Seeeduino a la PC mediante un cable USB.

note

Si no tenemos Grove Base Shield, también podemos conectar directamente Grove - I2C Motor Driver V1.3 al Seeeduino como se muestra a continuación.

SeeeduinoGrove - I2C Motor Driver V1.3
5VRojo
GNDNegro
SDABlanco
SCLAmarillo

Software

// default I2C address is 0x0f
#define I2C_ADDRESS 0x0f

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

Nota

Lo primero que hay que tener en cuenta es que necesitas una fuente de alimentación externa para tus motores DC. El pin de 5V del Arduino no puede proporcionar suficiente energía para mover 2 motores, puedes dañar tu Arduino si lo haces.

  • Hay 2 funciones para controlar motores DC:
// Set the speed of a motor, speed is equal to duty cycle here
void speed(unsigned char motor_id, int _speed);

// Stop one motor
void stop(unsigned char motor_id);

Con la función speed(), puedes hacer funcionar un motor a la velocidad que desees.

  • motor_id representa qué motor usar. Puedes completar MOTOR1 o MOTOR2.

  • _speed representa la velocidad que estableces para el motor. Puedes completar -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 cuanto 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 completar MOTOR1 o MOTOR2.

Controlar un Motor Paso a Paso

Tomando como ejemplo el Motor Paso a Paso 24BYJ48, 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:

  • Proporcionamos una función para controlar un motor paso a paso.
// Drive a stepper motor
void StepperRun(int _step);
  • _step representa los pasos que configuras 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.

Jugar con Codecraft

Hardware

Paso 1. Usando un cable Grove conecta Grove - I2C Motor Driver al puerto I2C de Seeeduino. Si estás usando Arduino, por favor aprovecha un Base Shield.

Paso 2. Conecta Seeedino/Arduino a tu PC mediante un cable USB.

Software

Paso 1. Abre Codecraft, añade soporte para Arduino, y arrastra un procedimiento principal al área de trabajo.

note

Si esta es tu primera vez usando Codecraft, consulta también Guía para Codecraft usando Arduino.

Paso 2. Arrastra bloques como en la imagen de abajo o abre el archivo cdc que se puede descargar al final de esta página.

cc

Sube el programa a tu Arduino/Seeeduino.

tip

Cuando el código termine de subirse, verás que los motores DC que están conectados al Motor Driver están funcionando.

Visor de Esquemático en Línea

Recursos

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 satisfacer diferentes preferencias y necesidades.

Loading Comments...