TB6560 Controlador Motor a Pasos

TB6560 Stepping Motor Driver

 

La tarjeta contiene un TB6560 que básicamente al darle un Pulso de trabajo y Dirección podemos aprovechar la precisión de un Motor a pasos como el NEMA 17 HS8401. En este Tutorial se verá cómo hacer uso de el en parte gracias al Microcontrolador Arruino. (Recordemos que existen gran variedad de Microcontroladores) Donde podemos tener un Pulso Controlado y salidas digitales. Y más delante la posibilidad de lectura Analógica., para afectar tanto tiempos de actividad, inactividad y velocidad.
Como ya veremos a continuación…

Ocupamos nuestra tarjeta TB6560, Arduino, Motor a pasos (NEMA 17) y fuente de Voltaje a 3A con función al Voltaje de operación de nuestro Motor a pasos, en nuestro caso usaremos 12V.

Primero que nada, la Tarjeta controladora de motores a pasos bipolar TB6560 max 3A y max 24V, es muy fácil de descifrar, lo primero que notaremos son sus 2 grandes terminales a sus costados y sus switches.
Empecemos con sus Terminales, 6 Entradas y 6 Salidas y Después los Switches de Control.

HOJA DE DATOS DE LA TARJETA

 

Tabla 1

Símbolo de la TerminalDescripción
B-        B+Fase B Motor a pasos
A-        A+Fase A Motor a pasos
GND        +24VAlimentación
EN-        EN+Enable – Activación
CW-        CW+Dirección
CLK-        CLK+Pulso de Trabajo
tmap_002

Conexiones de la tarjeta TB6560

 

PASO 1:

Las Entradas a 5V “EN- EN+ CW- CW+ CLK- CLK+” en caso de requerir operarlo a más de 5V, requiere colorar una resistencia de 1k para 12V y 2.4 para 24V máximo. El + significa entrada el – significa salida, en este caso conectado a GND de nuestro Arduino.

  • EN- EN+: Habilitan o deshabilitan la operación
    • (NO LOS USAREMOS).
  • CW- a GND y CW+ Es el Giro, en Bajo “0” lógico Sentido Horario y “1” Anti Horario.
    • (Step Arduino PIN 8 a CW+ TB6560)
  • CLK- a GND y CLK+ es la Velocidad de Operación, Controlada por Pulsos.
    • (Dir Ardruino PIN 9 a CLK+ TB6560)

 

TB6560

Conexiones con el motor NEMA al TB6560

Las Salidas que dependen del Voltaje de Alimentación “B- B+ A- A+” y “GND +24V”.

  • En el NEMA 17 (Azul: B-, Amarillo: B+, Verde: A-, Rojo: A+) recomiendo revisar DataSheet.
  • Continuamos con GND conectado a la GND de la fuente y +24V a los 12V de la Fuente “APAGADA”.
TB6560

Conexión del Arduino Notchduino con el TB6560 mediante las salidas de los pines digitales.

PASO 2:

Los interruptores de control, cuenta con “SW1 SW2 SW3 S1 S2 S3 S4 S5 S6”, como muestran las tablas.

  • “SW1 SW2 SW3 S1” controlan el Amperaje, se recomienda colorarlo debajo del Amperaje de opresión de nuestro Motor a pasos (NEMA 17 1.8A) lo colocamos a 1.6Amp.
    • (SW1 “ON” SW2 “OFF” SW3 “OFF” S1 “OFF”)
  • “S1 20% y S2 50%” Stop Current, donde si el Amp aumenta un 20% se Detendrá.
    • (S1 “OFF” y S2 “OFF”)
  • “S3 S4” son el paso por Pulso e Opresión, a menor paso, más precisión, menor potencia.
    • (Experimenten S3 S4: 1 “OFF OFF”, ½ “ON OFF”, 1/8 “ON ON”, 1/16 “OFF ON”)
  • “S5 S6” Decay Setting
    • (RECOMENDADO S5 “OFF” S6 “OFF”)

 

TB6560

Conexiones del sistema, el conector jack 2.1mm es para fuente externa.

PASO 3:

Cargar programa al Arduino, a continuación podemos encontrar un enlace con mas información con el Módulo EasyDriver que tambien manejamos en HeTPro, de cualquier manera el TB6560  funciona similar:

http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html

 

CÓDIGO DE EJEMPLO 1:

void setup() {
pinMode(8, OUTPUT); // Es el Giro, en Bajo “0” lógico Sentido Horario y “1” Anti Horario.
pinMode(9, OUTPUT); // Velocidad de Operación, Controlada por Pulsos.
digitalWrite(8, LOW); // Sentido Horario
digitalWrite(9, LOW);
}
void loop() {
 digitalWrite(9, HIGH);
 delayMicroseconds(1000); // delay define la Velocidad o tiempo entre pasos
 digitalWrite(9, LOW);
 delayMicroseconds(1000); // delay de X milisegundos
 }

Aunque pequeño y elegante en este punto el Sistema ya es Funcional.
Nota: si estamos usando el Motor a pasos NEMA17 ten en cuenta lo siguiente:

“S3 S4” son el paso por Pulso e Opresión, a menor paso, más precisión, menor potencia.
(S3 S4: 1/1 “OFF OFF”, 1/2 “ON OFF”, 1/8 “ON ON”, 1/16 “OFF ON”)

[Exitation Mode, Quality Step’s, Max MiliSeconds Ficuency]
[1/1,200,327]   <–  200 pasos por vuelta a un pulso maximo de 327 mimisegundos
[1/2,400,156]   <– 400 pasos por vuelta a un pulso maximo de 156 mimisegundos
[1/18,1600,36] <– 1600 pasos por vuelta a un pulso maximo de 36 mimisegundos
[1/16,3200,16] <– 3200 pasos por vuelta a un pulso maximo de 16 mimisegundos

PODEMOS CONECTAR LA FUENTE y ENCENDERLA

A continuación podríamos, modificar con condicionales y lecturas analógicas: Controlar Velocidad, Controlar Pasos, Controlar Sentido, Controlar Encendido Apagado.

TB6560

IDE de Arduino probando los ejemplos

 

CÓDIGO DE EJEMPLO 2:

int Pot = 0; // Lectura Analógica en A0, Potenciómetro de 10k ohm
int Tiempo = 0; // Variable Tiempo
void setup() {
 pinMode(8, OUTPUT);
 pinMode(9, OUTPUT);
 digitalWrite(8, LOW);
 digitalWrite(9, LOW);
 }
void loop() {
 // Moviendo el divisor de voltaje o Potenciómetro podemos alterar la velocidad.
 Tiempo = map(analogRead(Pot), 0, 1023, 150, 2000); // de 150 milisegundos a 2 segundos
digitalWrite(9, HIGH);
 delayMicroseconds(Tiempo); // delay define la Velocidad o tiempo entre pasos
 digitalWrite(9, LOW);
 delayMicroseconds(Tiempo); // delay de X milisegundos
 }
 

 

CÓDIGO DE EJEMPLO 3:

/* Controlar Pasos:
 En este caso lo que modificaremos es la Velocidad a la que los Pulsos de Operación se efectúan.
 en el TB6560 */
 int Pot = 0; // Lectura Analógica en A0, Potenciómetro de 10k ohm “NO USAR ACENTOS”
 int Paso = 0; // CONTADOR de Pasos
void setup() {
 pinMode(8, OUTPUT);
 pinMode(9, OUTPUT);
 digitalWrite(8, LOW);
 digitalWrite(9, LOW);
 }
void loop() {
 // Moviendo el divisor de voltaje o Potenciómetro podemos alterar la cantidad Max de pasos.
 int Max = map(analogRead(Pot), 0, 1023, 150, 2000); // de 150 Pasos a 2k Pasos
digitalWrite(9, HIGH);
 delayMicroseconds(1500); // delay define la Velocidad o tiempo entre pasos
 digitalWrite(9, LOW);
 delayMicroseconds(1500); // delay de X milisegundos
Paso = Paso + 1; // Contar un paso.
// Recuerde experimentar con 1 1/2 1/8 1/16 según sea la aplicación
 // Por ejemplo 1/16 en una CNC de precisión lento,
 // y por ejemplo 1 o 1/2 para abrir y cerrar una chapa rápido
if (Paso == Max) { // Si Paso a llegado a X pasos
 Paso = 0; // RESET contador Paso
 delay(500);} // Pausa de 1/2 segundo.
 }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  1. Quiero mover un motor a pasos de 6 cables con este drive ¿podria usar un PLC para generar los pulsos y controlar la cantidad de pulsos?

  2. Me gustaría que mostraran un esquema, tengo las mismas características del señor Riyar Alberto Garcia Ramirez, pero no se la conexión de los driver con arduino UNO que trabaje con GRBL 0.9j, gracias….

  3. Hola que tal. Tengo una dura, comentas que para el sentido de giro depende del pin 8 si esta en alto o en bajo. ¿Como le hago para que gire en los dos sentidos?

  4. Hola, es la mejor informacion sobere como conectar motores Nema 17/23 a TB6560 ; tengo mis tres motores, la targeta TB6560 y Arduino uno, pero no se por donde comenzar. Agradeceria cualquier informacion.
    Muchas gracias,
    Jorge

  5. Hola hector. Mi nombre es Jose Manuel Moliner. Te explico.
    Estoy diseñando un cnc casero. He conseguido buenos materiales de mecanica y husillos trapezoidales. Como el cnc vaa ser robusto (90cm x 70). Me he decidido a poner nema 23 y drivers tb6560. Ya tengo un arduino uno rev3 y el programa de mastercam y solidworks. Es viable el montaje y la puesta en marcha o tendré problemas de configuracion?. Soy nuevo en esto de programacion cnc y me gustaía que me echases una mano. Por favor.
    Muchas gracias de antemano y espero tu respusta.
    Un saludo

  6. Hola: Muy buen Tutorial. Una pregunta que se a repetido, como conectamos los tres motores, todos se puentean al pin 8 y al pin9 o se usan otros pines para cada driver TB6560.
    Gracias por ser un poco mas explicito ya que somos novatos en esto.
    Saludos.

  7. hola que tal disculpa, yo quiero conectar un motor de 6 hilos con este driver pero no se como, he checa do algunas paginas y me dicen que no conecte el común es cierto eso?

    • José, depende del motor, te recomiendo que primero identifiques cuales son los conexiones de tu motor. Usualmente si tienen mas de 4 hilos es por que tienen común, en este caso tiene mas de 1 común. Ya identificados te aseguro que no tendras duda de cual conectar.

      • Estimado también es importante aclarar que cuando tienes por ejemplo 6 hilos, para el caso del driver tb6560 dos de estos (los comunes) no van conectados a ninguna parte osea van sin conexión y solo se conectan los 4 cables que salen directamente de las bobinas. Saludos y espero sea de ayuda, si necesitas ayuda tengo un par de páginas de referencia.

  8. Hola, disculpa estoy armando una CNC pero no tengo gran conocimiento del tema estoy experimentando, tengo un arduino UNO y tres motores NEMA 23 de dos fases a 3.0Amps/Phase, primero quisiera saber si el driver TB6560 me sirve para ponerlos en funcionamiento sin comprometer la vida útil de ningún elemento?.
    Lo segundo es que según entiendo es necesario un TB6560 para cada motor pero al buscar en Internet el que se ve en el tutorial los precios por unidad van desde $34.000 hasta $90.000 (COP) con especificaciones idénticas, cual seria el precio optimo para un driver de buena calidad de este tipo? o es preferible comprar un solo driver que soporte los tres motores?

  9. Hola, quisiera hacerlo girar en ambos sentidos, me podrías decir que es lo que tengo que cambiar? el arduino o la programación? mi motor es bipolar

    • Hola buen dia puedes verificar tu configuracion y programacion puedes asegurarte que tengas lo necesario para realizarlo saludos

  10. Hola, quiero generar los pulsos con una salida de PLC de 24 volts, en el tutorial dice “2.4 para 24V máximo”, son 2.4K?? Gracias.

  11. hola que tal? saludos, he seguido tu tutorial con muchisimo interés esta muy bien, yo quisiera saber una cosa, seria posible cambiar el sentido de giro mediante un potenciometro? o sensor rotativo si es así como hacerlo? gracias por adelantado¡¡¡

    • David, si se puede pero eso ya seria puramente programación. Puedes definir que el valor del pot en el caso central sea velocidad cero o parado. El pot totalmente girado al sentido de las manecillas velocidad máxima y del otro lado velocidad máxima del otro sentido.

  12. Hola buenas tardes, ando un poco confundido en la conexion de la etapa de señal, los “enable” para que se utilizan? veo que no estan conectados? te menciono, no utilizo un arduino como tal solo una tarjeta “breakout” de cnc4pc el cual tambien saca valores logicos de 0v a 5v para pulso y direccion y configurable si el comun son voltaje o gnd (o 0v), yo he conectado algunos otros motores a pasos y párece que se configuran los eneables, entonces es aqui donde redica mi duda con eso, esos no se conectan ni se configuran?

    saludos

    • El Enable sirve para que cuando necesites controlar la “habilitación” de los pines de salida del sistema mediante un control digital. En este caso se deja sin conectar por que no necesitamos controlar el enable. Ojo al desactivar los pines pierdes torque del motor.

  13. Hola, muy buen post, pero me queda una duda tal vez muy basica, el nema 17 que tengo tiene las siguientes caracteristicas:

    Rated Voltage: 3V.
    Rated Current: 1.7A/Phase.

    Si alimento el driver con una fuente de 12v, como funcionaria?
    el driver regula el voltaje que le llega al motor?
    o lo tengo que alimentar con su voltaje correspondiente?

    muchas gracias de antemano!