Select Page

Un Motor shield, es una placa que resuelve todos los problemas de conexion de motores para comenzar a programar sin preocuparnos por la electrónica.

Voy a empezar diciendo que existen infinitas versiones de shields para motores. Claramente hay sutiles diferencias entre ellos que no vamos a abordar en este post, cualquier consulta específica por favor, primero referirse a google, luego nos pueden dejar un comentario debajo del post para que todos puedan nutrirse de las dudas de otros y contestaremos.

El motor shield que Ptec vende en la tienda, es un clon del motor shield diseñado y vendido por adafruit que actualmente se encuentra discontinuado de manera oficial, pero sigue fabricándose los clones. Básicamente podemos sacar toda la info de la página pero vamos a hacer un desglose como siempre.

NO ES COMPATIBLE CON ARDUINO LEONARDO

Dónde comprar el Motor Shield V1.2

Dado que este post es MUY largo para lo normal, te dejamos la información de donde comprar este módulo.

PatagoniaTec

Amazon

Alibaba

Especificaciones Técnicas

  • Voltaje de potencia (motores): 4.5V-24V DC
  • Corriente DC por canal: 600mA
  • Corriente pico por canal: 1.2A
  • Incorpora 2 circuitos integrados L293D proporcionando 4 puentes-H completos
  • Protección contra sobre carga térmica
  • Diodos de protección internos contra voltajes inversos generados por las cargas inductivas
  • 4 canales (M1, M2, M3 y M4) para controlar igual número de cargas inductivas como motores DC ó 2 motores paso a paso unipolares o bipolares de entre 4.5 V y 24 V
  • Permite controlar tanto la velocidad como la dirección de giro de los motores
  • Control de velocidad de motores DC con resolución de 8 bits (PWM)
  • Control de motores paso a paso con 1 y 2 bobinas en modo simple, doble (mayor torque) e intercalado (medio paso)
  • 2 conectores independientes para controlar 2 servos pequeños de 5 V (Pines digitales 9 y 10)
  • Corriente máxima continua en cada una de las salidas M1, M2, M3 y M4: 600 mA (0.6 A)
  • Corriente máxima pico no repetitivo en cada una de las salidas M1, M2, M3 y M4: 1.2 A
  • Resistores de pull-down que mantienen los motores deshabilitados durante el encendido
  • Requiere fuente externa para la alimentación de las cargas en las salidas M1, M2, M3 y M4.
  • Se puede elegir alimentar el Arduino con la misma fuente de los motores o por separado mediante el Jumper «PWR»
  • Borneras para alimentación externa (+M, GND)
  • Conectores para los pines Analógicos
  • Pulsador de Reset
  • Led indicador de alimentación de fuente de motores
  • Dimensiones: 6.8cm x 5.5cm x 2cm

Pines Motor Shield v1

Existe una web llamada shieldlist.org donde tenemos una lista de muchísimos shields, esta en ingles, pero tiene informacion posta.

En la imagen podemos ver los pines que utiliza el motor shield, vemos que usa TODOS ~ los pines PWM esta siendo utilizados lo que inabilita el puerto SPI.

Motor Shield v1.2 3
circuito electrico motor shield v1
Motor Shield v1.2 4
Esta perspectiva de conexión es desde el propio Arduino UNO

Fuente de alimentación del Motor Shield

Los motores eléctricos necesitan mucha energía, especialmente los motores baratos debido a su baja eficiencia. Es importante conocer las características de los motores que vayamos a utilizar. Con un poco de suerte, vendrán con unas pequeñas especificaciones escritas en el mismo motor.

Voltaje

Lo normal, es que trabajen entre 6V y 12V. El Adafruit Motor Shield está diseñado para trabajar en el rango de 5V a 12V. Por lo tanto, los típicos motores que trabajan entre 1,5V y 3V no funcionarán con este shield.

Corriente

El Adafruit Motor Shield está preparado para suministrar 600mA por cada motor, con picos de hasta 1.2A. Eso sí, si los picos de corriente superan los 2A, la recomendación es utilizar algún sistema de protección ya que puedes quemar la placa.

Alimentar los motores con una pila de 9V no es una buena opción, según las especificaciones. La mejor manera de suministrar energía a los motores es a través de una batería de plomo ácido o MiMH.

Esto es porque las baterías de 9v a veces, no pueden proveer los picos de corrientes necesarios y se gastan demasiado rápido, aunque son la forma MÁS FÁCIL de alimentar todo esto sin recurrir a una fuente de banco. Tampoco es recomendable usar un cargador de celular barato, dado que provocan demasiado ruido eléctrico o ripple y puede resetear el arduino, aunque si no tenes otra alternativa, tambien podes empezar por ahí.

Hay dos alternativas a la hora de alimentar el Adafruit Motor Shield

Una de las soluciones que nos permite este shield es utilizar una fuente separada para Arduino y otra para los motores, separando así la lógica de la potencia. Además, así evitaremos los posibles problemas de ruido.

Su voltaje de operación es entre 5V y 12V. Podemos trabajar de dos formas que vendrán definidas si tenemos conectado el jumper en los pines Vin o no. En la siguiente imagen te muestro donde se encuentran.

Motor Shield v1.2 5
Observar la bornera «external power supply» y el «power supply jumper»

1- Alimentación externa al Arduino

Esta es la forma correcta de alimenta este sándwich… es a través de la bornera de alimentación en el motor shield.

Aquí se desdoblan otra dos opciones. de las cuales te recomiendo la primera si sos principiante o saltes directo a la opción 2.

Alimentar SOLO los motores

De esta manera, tenes el Arduino alimenta por jack o USB y ahora falta alimentar los motores.

Conecta la fuente de alimentación externa a la bornera del Motor Shield y QUITA EL JUMPER !

Alimentar los motores Y el Arduino

En este caso, vamos a alimentar el Arduino a través del shield. Con lo que tenes si o si que usar el Arduino sin cable USB y sin jack.

Esta situación es similar a la anterior, conecta la fuente externa a la bornera del shield y PONE EL JUMPER. El regulador del Arduino se encargara de bajar la tensión a 5v para alimentar el Arduino.

Motor Shield v1.2 6
Si te fijas, el jumper del shield, conecta la alimentación directo al jack del Arduino.

2- Alimentación a través del Arduino

Asumiendo que el lector es principiante, no te recomiendo usar esta modalidad.

Sinembargo si conectas un solo motor y pequeño, es una buena y rápida opción para comenzar.

Habiendo dicho esto, fijate en el circuito anterior, que no se puede alimentar el shield SOLO con el cable USB. Si queres dejar la placa arduino conectada al USB, podes hacerlo aunque no es recomendable por motivos un poco mas ingenieriles, pero el USB por si solo no alimenta al shield.

Para alimentar el shield, necesitas conectar el Arduino con una fuente externa por jack. Tené en cuenta que esta fuente, debe proveer la tensión necesaria que consuman los motores.

CONEXIÓN Motor Shield

  • 2 servos siempre
  • 4 motores de continua
  • 2 motores paso a paso

Siempre se van a poder conectar 2 servos, pero con lo que tiene cierto dinamismos es que tiene 4 pares de borneras, donde puede conectar

  • 2 motores paso a paso (pap)
  • 1 motor pap y 2 motores DC.
  • 4 motores DC

Tener en cuenta que la corriente máxima que puede aportar nominalmente es de 600ma, con lo que te recomiendo mirar la hoja técnica del motor, para asegurarte de que este por debajo de ese valor para evitar que se queme

Motor Shield v1.2 7
Lamentablemente no nos quedan pines digitales para usar con un UNO, pero si todos los analogicos.

Los dos servos los conectamos en Servo 1 y Servo 2. Claramente en la serigrafía podemos ver cuales es GND VCC y SIGNAL. En la sección de servos podemos ver los tipos que existen y tipos de conectores.

Para los motores de continua tenemos 4 conectores Mn_A y Mn_B donde n es 1 2 3 y 4. Por ejemplo conectamos un motor con un cable a  M1_A y el otro a M1_B. O se puede conectar un motor paso a paso de 4 o 5 hilos en M1_A M1_B M2_A M2_B y el 5to hilo si lo trae a masa. Lo mismo del otro lado.

adafruit-motorshield2

Ahora que sabes todo lo que tenes que saber sobre el motor shield V1 L293, vamos a conectarle todo lo que le podemos conectar.

Empezamos por conectar el shield al Arduino UNO o al Arduino MEGA, fijate bien que los pines están conectados correctamente como tenga que ir.

Motor Shield v1.2 8

Motor Shield + Servos

Motor Shield v1.2 9

El pin signal de los servos esta conectas a D9 y D10. Con lo que utilizando la librería de servos nativa de Arduino y configurando estos pines, ya vamos a poder utilizarlos. No hay mucha ciencia.

Motor Shield + Motores DC

Conecte la fuente de alimentación a los motores. Aunque puede conectar motores de CC que tengan voltajes entre 4.5 y 25 V al blindaje, en nuestro experimento estamos utilizando motores de CC con una capacidad nominal de 9 V. Entonces, conectaremos la fuente de alimentación externa de 9V al terminal EXT_PWR.

Ahora, conecte el motor a los terminales del motor M1, M2, M3 o M4. En nuestro experimento lo estamos conectando a M4.

Motor Shield v1.2 10
  •  Todos los motores de continua pueden ser controlados en ambos sentidos y su velocidad (mediante PWM).
#include <AFMotor.h>

AF_DCMotor motor(4);

void setup() 
{
	//Set initial speed of the motor & stop
	motor.setSpeed(200);
	motor.run(RELEASE);
}

void loop() 
{
	uint8_t i;

	// Turn on motor
	motor.run(FORWARD);
	
	// Accelerate from zero to maximum speed
	for (i=0; i<255; i++) 
	{
		motor.setSpeed(i);  
		delay(10);
	}
	
	// Decelerate from maximum speed to zero
	for (i=255; i!=0; i--) 
	{
		motor.setSpeed(i);  
		delay(10);
	}

	// Now change motor direction
	motor.run(BACKWARD);
	
	// Accelerate from zero to maximum speed
	for (i=0; i<255; i++) 
	{
		motor.setSpeed(i);  
		delay(10);
	}

	// Decelerate from maximum speed to zero
	for (i=255; i!=0; i--) 
	{
		motor.setSpeed(i);  
		delay(10);
	}

	// Now turn off motor
	motor.run(RELEASE);
	delay(1000);
}

Motor Shield + Paso a Paso

Si está utilizando el motor paso a paso bipolar NEMA 17, esos motores tienen una potencia de 12V y ofrecen 200 pasos por vuelta. Por lo tanto, conecte la fuente de alimentación externa de 12V al terminal EXT_PWR.

Recuerde quitar el puente PWR.

Ahora, conecte el motor a los terminales del motor paso a paso M1-M2 (puerto n. ° 1) o M3-M4 (puerto n. ° 2). En nuestro experimento lo estamos conectando a M3-M4.

Motor Shield v1.2 11

Fijate que el Motor Shield tiene entre M1 y M2 (o M3 y M4) una conexión para GND, con lo que podemos conectar directamente el pin correspondiente y manejar motores unipolares como el 28BYJ, o dejarlo al aire y tratarlo como bipolar.

#include <AFMotor.h>

// Number of steps per output rotation
// Change this as per your motor's specification
const int stepsPerRevolution = 48;

// connect motor to port #2 (M3 and M4)
AF_Stepper motor(stepsPerRevolution, 2);

void setup() {
  Serial.begin(9600);
  Serial.println("Stepper test!");

  motor.setSpeed(10);  // 10 rpm   
}

void loop() {
  Serial.println("Single coil steps");
  motor.step(100, FORWARD, SINGLE); 
  motor.step(100, BACKWARD, SINGLE); 

  Serial.println("Double coil steps");
  motor.step(100, FORWARD, DOUBLE); 
  motor.step(100, BACKWARD, DOUBLE);

  Serial.println("Interleave coil steps");
  motor.step(100, FORWARD, INTERLEAVE); 
  motor.step(100, BACKWARD, INTERLEAVE); 

  Serial.println("Micrsostep steps");
  motor.step(100, FORWARD, MICROSTEP); 
  motor.step(100, BACKWARD, MICROSTEP); 
}

Installing AFMotor Library

In order to communicate with the shield, we need to install AFMotor.h library so that we can issue simple commands to control DC, stepper & servo motors.

To install the library navigate to the Sketch > Include Library > Manage Libraries… Wait for Library Manager to download libraries index and update list of installed libraries.

Arduino Library Installation - Selecting Manage Libraries in Arduino IDE

Filter your search by typing ‘motor shield’. There should be a couple entries. Look for Adafruit Motor Shield library(V1 Firmware) by Adafruit. Click on that entry, and then select Install.

Installing AFMotor Library

L293D datasheet


Firmware

A %d blogueros les gusta esto: