Menu mobile
Como introdujimos en las lecciones 19 y 20 del curso introducción a Arduino UNO, los motores Paso A Paso (PAP) son motores DC que necesitan de un driver para su control. En este tutorial vamos a usar un motor NEMA y el driver TB6612FNG.
El TB6612FNG es un controlador (driver) de motores que nos permite variar tanto la velocidad, como el sentido de giro de dos motores de corriente continua desde nuestra Arduino.
El TB6612FNG se puede considerar una versión mejorada del L298N. Su principal diferencia es que los puentes-H usan transistores MOSFET en lugar de los BJT del L298N, lo que le da más eficiencia y menor tamaño.
En cuanto a las corrientes, permite controlar intensidades superiores, suministrando hasta 1.2A por canal y 3,2A de pico máximo.
Este driver permite controlar hasta 2 motores de corriente continua o un motor paso a paso bipolar. También permite controlar un motor paso a paso unipolar configurado como bipolar, siendo ideal para proyectos de Arduino.
Aunque este controlador está especialmente pensado para controlar dos motores (separándolo por bobinas A y B), en este ejemplo vamos a controlar un motor Paso a Paso NEMA 17, el cual lleva dos bobinados en su interior, mediante este driver.
Conexión
El módulo se alimenta directamente de Arduino, así que no necesitamos una fuente de energía externa. Sin embargo, para alimentar el motor si se requiere alimentación externa que suministre la intensidad requerida en los pines VM.
El módulo tiene los siguientes pines que se conectan a los correspondientes de Arduino:
Los pines están conectados según la tabla:
Pin Módulo
Pin de Arduino UNO
PWMA
VCC
AIN2
D4
AIN1
D5
STBY
R: 10K -> VCC
BIN1
D6
BIN2
D7
PWMB
GND
Pin Motor/Alimentación
VM
12V
5V
A1
A01 Bobina A
A2
A02 Bobina A
B1
B01 Bobina B
B2
B02 Bobina B
NOTA: Cuando hay alimentación externa, como en este caso, debemos siempre poner GND común, unir todas las tierras.
Los motores NEMA 17 que vamos a usar tienen 6 pines de conexión, cuyo orden mirando dese arriba: A1, 0, A2, B1, 0, B2
El diagrama resultante queda así:
NOTA: Si la fuente proviene de corriente alterna, siempre es mejor poner un condensador en serie.
Una vez conectado todo, abrimos un sketch vacío en el Arduino IDE y copiamos el siguiente código:
#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, 4, 5, 6, 7);
void setup()
{
Serial.begin(9600);
Serial.println("Stepper test!");
// set the speed of the motor to 30 RPMs
stepper.setSpeed(60);
}
void loop()
Serial.println("Forward");
stepper.step(STEPS);
Serial.println("Backward");
stepper.step(-STEPS);
Debemos descargar la librería “Stepper”, asegurarnos del puerto y la placa, y darle a subir.
Con este código vemos como se mueve hacia adelante el número de pasos indicado, en este caso 200, y luego realiza los mismos en sentido contrario. Esto realizado a 30 revoluciones por minuto, indicado con el doble, debido a los dos bobinados.
Con estos motores se consigue una gran precisión en cada paso. Puedes probar a diseñar tu código para la aplicación que requieras y modificar su velocidad.