Motor Shield V2.0
Este documento funciona para Motor Shield V2.0/2.1/2.2.
El Motor Shield es un módulo controlador para motores que te permite usar Arduino para controlar la velocidad de trabajo y la dirección del motor. Basado en el Chip de Doble Puente Completo L298, es capaz de controlar dos motores DC o un motor paso a paso. El Motor Shield puede ser alimentado directamente por Arduino o por una fuente de alimentación externa de 6V~15V a través de la entrada de terminal. Este módulo puede ser usado para el desarrollo de micro robots y vehículos inteligentes, etc.
Revisión | Descripciones | Lanzamiento |
v1.0 | Lanzamiento público inicial | NA |
v2.0 | Habilitar Pin +5V de Arduino/Seeeduino para alimentar motor | 2013-2 |
Características
- Distribución de pines estándar de Arduino UNO Shield
- Basado en el IC de puente completo L298
- Controla 2 motores DC o 1 motor paso a paso
- Entrada de alimentación externa disponible
- Indicadores LED
- Disipador de calor para mejor rendimiento
- Biblioteca de Arduino
Especificaciones
Especificación | Valor |
Voltaje de operación | 5V |
Alimentación externa | 6-15V |
Corriente de salida | 2.0A Máx @ Cada canal |
Rango PWM | 0-100% |
Salida | 2 canales, 4 puertos |
Descripción General del Hardware
1.Indicador del Canal 1, incluye 3 leds
- EB - habilitación del canal 1, activo en alto
- IN3 - estado de OUT3
- IN4 - estado de OUT4
2.Sensor del Canal 1 - Por favor conecte los 2 pines de la izquierda juntos para uso normal.
Nota que es una aplicación de alto nivel para detectar la corriente, por favor consulte la hoja de datos y el esquemático para más información.
3.SALIDA - Hay 2 canales, cada canal tiene 2 salidas
- Canal 0 - OUT1, OUT2
- Canal 1 - OUT3, OUT4
4.Sensor del Canal 0
5.Indicador del Canal 0, incluye 3 leds
- EB - habilitación del canal 0, activo en alto
- IN1 - estado de OUT1
- IN2 - estado de OUT2
6.Entrada de Alimentación Externa, rango 6-15V
7.Indicador de Reset - se pone rojo cuando se presiona el botón Reset
8.Botón de Reset - presionar para resetear el shield y Arduino
9.Indicador de Alimentación - se pone verde cuando hay alimentación, ya sea interna o externa
A. Interruptor de alimentación
- Conectar - Obtener alimentación de Arduino
- Desconectar - Obtener alimentación de fuentes externas
B. Pineado estándar de shield Arduino
Pines Digitales Utilizados
Pin de Arduino | Función |
D0 | No Utilizado |
D1 | No Utilizado |
D2 | No Utilizado |
D3 | No Utilizado |
D4 | No Utilizado |
D5 | No Utilizado |
D6 | No Utilizado |
D7 | No Utilizado |
D8 | OUT1 |
D9 | Habilitación del Canal0 |
D10 | Habilitación del Canal1 |
D11 | OUT2 |
D12 | OUT3 |
D13 | OUT4 |
D8~D13 son utilizados por el Motor Shield. Por favor no uses esos pines para evitar conflictos.
Pin Analógico Utilizado
Pin de Arduino | Función |
D0 | No Utilizado |
D1 | No Utilizado |
D2 | No Utilizado |
D3 | No Utilizado |
D4 | No Utilizado |
D5 | No Utilizado |
Not Used significa que puedes usar esos pines libremente.
Primeros Pasos
Controlar un motor DC
Conexión
Aquí te mostraremos cómo funciona este Motor Shield a través de una demostración simple. Primero que nada, necesitas preparar los siguientes elementos:
Seeeduino V4 | Motor DC | Motor Shield |
Consigue UNO Ahora | Consigue UNO Ahora | Consigue UNO Ahora |
- Configura SEN_A y SEN_B, conecta los 2 pines de la izquierda juntos con un jumper.
- Conecta MB_EN junto con un jumper, ya que no vamos a usar una fuente de alimentación externa.
- Conecta el motor DC al Canal 0 (OUT1 y OUT2).
- Conecta el Motor Shield al Arduino.
- Conecta Arduino a la PC mediante un cable USB.
Software
- Haz clic en el botón de abajo para descargar la biblioteca del motor shield.
- Por favor sigue los procedimientos de cómo instalar una biblioteca de arduino para instalar la biblioteca.
- Sube el código al Seeeduino V4.
// Demo function:The application method to drive the DC motor.
// Author:Loovee ([email protected])
// 2016-3-11
#include "MotorDriver.h"
MotorDriver motor;
void setup()
{
// initialize
motor.begin();
}
void loop()
{
motor.speed(0, 100); // set motor0 to speed 100
delay(1000);
motor.brake(0); // brake
delay(1000);
motor.speed(0, -100); // set motor0 to speed -100
delay(1000);
motor.stop(0); // stop
delay(1000);
}
// END FILE
- Entonces verás que tu motor se mueve (1s), se detiene (1s), se mueve hacia atrás (1s), se detiene (1s), y se repite en bucle.
Si no pasa nada, por favor asegúrate de que:
- Hemos subido el código exitosamente
- El motor está conectado correctamente
- Los indicadores LED parpadean correctamente
Controlar un Motor Paso a Paso
Conexión
Aquí te mostraremos cómo funciona este Motor Shield a través de una demostración simple. Primero que nada, necesitas preparar las siguientes cosas:
Seeeduino V4 | Motor Paso a Paso | Motor Shield |
Get ONE Now | Get ONE Now | Get ONE Now |
- Configura SEN_A y SEN_B, conecta los 2 pines de la izquierda juntos con un puente.
- Conecta MB_EN junto con un puente, ya que no vamos a usar una fuente de alimentación externa.
- Encuentra las definiciones de pines de tu motor paso a paso, y conéctalo a la SALIDA del shield. Como se muestra a continuación:
motor paso a paso | OUT1 |
A+ | OUT2 |
A- | OUT3 |
B+ | OUT4 |
B- | No Usado |
- Conecta el Motor Shield al Arduino.
- Conecta el Arduino a la PC mediante un cable USB.
Software
Copia el código de abajo al IDE de Arduino y súbelo al Seeeduino V4, luego verás que tu motor paso a paso se mueve.
/*
* Stepper test for Seeed Motor Shield V2
* loovee @ 15 Mar, 2016
*/
#include <Stepper.h>
// change this to the number of steps on your motor
#define STEPS 200
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 8, 11, 12, 13);
// the previous reading from the analog input
int previous = 0;
void step(int steps)
{
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
stepper.step(steps);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
void setup()
{
// set the speed of the motor to 30 RPMs
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
stepper.setSpeed(30);
}
void loop()
{
step(1000);
step(-1000);
}
// END FILE
Si no ocurre nada, por favor verifica dos veces si has conectado el cable correctamente.
APIs de la Biblioteca
APIs del Motor DC
begin
Descripción
void begin();
velocidad
Descripción
void move(int motor_id, int speed);
- motor_id
- 0 - Canal 0
- 1 - Canal 1
- speed: -100~100, cuanto mayor sea, más rápido, 0 para parar
stop
void stop(unsigned char motor_id);
frenar
void brake(unsigned char motor_id);
Motor paso a paso
Nota que usamos la biblioteca proporcionada por Arduino IDE para controlar un motor paso a paso.
Hay algo que necesita ser modificado, por favor consulta los ejemplos.
Preguntas frecuentes
P1: El propósito del jumper MB_EN
R1: Puedes ver un jumper de alimentación (MB_EN) en el shield del motor. Si lo mueves, el Arduino puede proporcionar energía al Shield, pero el shield (si el shield está conectado a una fuente de alimentación externa) no puede proporcionar energía al Arduino.
Si el jumper existe, uno puede proporcionar energía al otro bajo dos situaciones:
-
USB al Arduino: si no hay alimentación externa conectada al Shield por separado, el Arduino proporcionará energía al Shield a través del pin VCC.
-
Alimentación externa conectada al Shield: Si el shield tiene una alimentación separada, el voltaje pasaría primero por un rectificador (78M05), y luego proporcionaría energía al Arduino. En esta situación, ninguna corriente del Arduino podría pasar del Arduino al Shield a través del 78M05.
Así que el propósito de este jumper es una opción de si quieres usar el shield para proporcionar energía al Arduino o no.
P2: ¿Hay un conflicto de pines entre el shield de tarjeta SD (103030005) y el shield del Motor (105030001) en Arduino UNO? ¿Cómo usarlos juntos?
R2: Hay un conflicto de pines entre el shield del Motor y el shield de tarjeta SD en los pines digitales D11, D12, D13 del Arduino Uno. Así que no puedes apilarlos juntos con la placa Arduino Uno. Aquí está la solución para usarlos juntos.
- Paso 1. Apila el shield de tarjeta SD al Arduino.
- Paso 2. Modifica la biblioteca de Motordriver.h como sigue.
/******Pins definitions*************/
#define MOTORSHIELD_IN1 8
#define MOTORSHIELD_IN2 7
#define MOTORSHIELD_IN3 6
#define MOTORSHIELD_IN4 5
#define SPEEDPIN_A 9
#define SPEEDPIN_B 10
P3. No apiles el shield del motor sino haz las conexiones por separado como sigue desde el Arduino usando cables puente.
R3: Aquí está la conexión.
Arduino | Shield del motor |
5V | 5V |
GND | GND |
D5 | D13 |
D6 | D12 |
D7 | D11 |
D8 | D8 |
D9 | D9 |
D10 | D10 |
Visor en Línea del Esquemático del Archivo Eagle del Motor Shield V2.0
Visor en Línea del Esquemático del Archivo Eagle del Motor shield V2.1
Recursos
- [Eagle] Archivo Eagle del Motor Shield V2.0
- [Eagle] Archivo Eagle del Motor shield V2.1
- [PDF] Esquemáticos del Motor Shield 2.0
- [PDF] Esquemáticos del Motor Shield 2.1
- [PDF] Esquemáticos del Motor Shield 2.2
- [Library] Librería del Motor Shield
- [Datasheet] Hoja de Datos del L298
- [Datasheet] Hoja de Datos del 78M05
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.