TB6560 Controlador Motor a Pasos

La tarjeta con el integrado TB6560 es un controlador de motores. Funciona al proporcionar un pulso digital de trabajo y dirección. Podemos usar la tarjeta para el control 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 Arduino.

(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.

Se requiere una 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.

TB6560 Controlador de motor a pasos con Arduino
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 para el TB6560  – EJEMPLO 1:

[code language=»cpp»]
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
}
[/code]

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:

[code language=»cpp»]
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
}
[/code]

 

CÓDIGO DE EJEMPLO 3:

[code language=»cpp»]
/* 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.
}
[/code]

 

49 comentarios en «TB6560 Controlador Motor a Pasos»

  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.

      1. Saludos Hector y Gracias por la respuesta. Te pregunto me puedes decir a qué pines va que No de pin.
        Gracias y Saludos.

        1. Luis, los que tu quieras, solo declara nuevos pines como en el caso de los del ejemplo.
          pinMode(8, OUTPUT);
          pinMode(9, OUTPUT);
          digitalWrite(8, LOW);
          digitalWrite(9, LOW);
          solo que necesitas declarar, ahora por ejemplo 2, 3, 4 y 5.

  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?

    1. 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.

      1. 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

  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¡¡¡

    1. 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

    1. 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!

  14. Hola, estoy intentando usar el driver mandando un PWM de 25KHz pero no funciona tengo duda si funciona con PWM o solo mandando pulsos con delay de frecuencia pequeña

  15. todo esta excelente amigo, me ha funcionado de maravilla. Tengo una duda
    ¿Cómo supiste que a 200 pasos con «S3 y S4 en OFF» tarda aproximadamente 327 milisegundos en dar el giro completo? saludos 🙂

  16. amigos, soy nuevo en el mundo del cnc, pero ahi he ido aprendiendo poco a poco, tengo una cnc con un area de trabajo de 600mmx1200mm, 2 motores nema23 en y 1 motor nema23 en x, y un nema 17 en z..

    la maquina ya le hecho algunas modificaciones, como baleros, y eso mejoro muchisimo la precision de mis trabajos.. la maquina funciona muy bien, puedo estar trabajando varias horas continuas, siempre y cuando sea trabajos de cortes, o 2d… todo bien ahi, pero supongamos que hago o quiero hacer un modelado, o algo en 3d. y puede fallar a los 9min o 40min, o una hora, depende del trabajo y lo que he visto o las pruebas que he hecho es el motor de z se calienta mucho.. es un motor nema17 conectado a un driver tb6560 me pudieran ayudar si necesito modificar la configuracion.. mi correo es ivanpalomocavazos@hotmail.com

  17. Buenos dias.
    Con el tutorial pude hacer funcionar el motor.
    Todavia tengo algunas dudas porque cuando vario los datos hay momentos que el motor hace mas ruido que otras veces y en otras hace ruido pero no gira.

    Estoy haciendo un proyecto para mi hijo en la escuela que es una grúa.
    Que lo que tiene que hacer es subir y bajar una cuerda.
    La idea es usar el motor con una polea donde se enrolla la cuerda.

    Lo que yo quiero hacerle e esta circuito es colocarle 2 pulsadores uno para que al apretarlo el toro gire hacia uno lado y al apretar el otro botón gire hacia el otro.

    Y con el potencio metro regular la velocidad con la que enrolla y desenrolla.
    y capaz que seria bueno colocarle cuando se enrolla todo el recorrido de la cuerda tenga un final de carreta para que pare y llegue al punto de inicia, cuando el gancho esta arriba del todo para que no se pase y siga enrollando y se roma el gancho.

    Hay posibilidad de hacer eso?

    Muchas gracias.
    Saludos

    1. Buenos dias.

      Con el tutorial pude hacer funcionar el motor.
      Todavia tengo algunas dudas porque cuando vario los datos hay momentos que el motor hace mas ruido que otras veces y en otras hace ruido pero no gira. «SI, esto de debe a que entra en un estado de enclava-miento que es como un freno»

      Estoy haciendo un proyecto para mi hijo en la escuela que es una grúa.
      Que lo que tiene que hacer es subir y bajar una cuerda.

      La idea es usar el motor con una polea donde se enrolla la cuerda.
      «Recomiendo usar un Motor de directa, el rin del moto reductor sirve de polea»
      «le aconsejo usar popotes o un cilindro para guiar la cuerda a la polea»
      https://hetpro-store.com/motorreductor-48-1-con-llanta/

      «también ayuda tener manera de colocar un contra peso de balance, como en los elevadores»
      Y con el potencio metro regular la velocidad con la que enrolla y desenrolla.
      «Esto no es aconsejable»

      Lo que yo quiero hacerle e esta circuito es colocarle 2 pulsadores
      «Puede usar 2 motores, 2 o mas Finales de Carrera NC, 1 Puente H, 4 Botones (4 Resistencias), 1 proto y un eliminador a 5v»
      https://hetpro-store.com/modulo-puente-h-l298n-para-control-de-motores/
      https://hetpro-store.com/eliminador-5v-3a-jack-2.1mm/
      https://hetpro-store.com/boton-con-tapa-roja/
      https://hetpro-store.com/protoboard-transparente-medio/

      uno para que al apretarlo el toro gire hacia uno lado y al apretar el otro botón gire hacia el otro.
      «Le aconsejo de igual manera un Motor de directa, pero puede usar un Servo de 360 grados para darle precisión»
      https://hetpro-store.com/servomotor-towerpro-mg995-rotacion-continua/

      y capaz que seria bueno colocarle cuando se enrolla todo el recorrido de la cuerda
      tenga un final de carreta para que pare y llegue al punto de inicia,
      cuando el gancho esta arriba del todo para que no se pase y siga enrollando y se rompa el gancho.
      «Necesita 2 Finales de carrera NC Normalmente cerrado, para que cuando se activado, mande a tierra el botón de subir»
      «Si el contrapeso no es suficiente, puede hacer un diagrama usando logia negativa para que los motores esten simpre activos y generen un freno constante»

      Hay posibilidad de hacer eso?
      «SI»

  18. hola, tengo tres motores de 3.5 v a 1.5a si conecto estos motores directamente al driver este regula el voltage automáticamente que le llega a los motores, si mi fuentes es de 12 o 24 volts?
    De antemano gracias por su respuesta,

  19. hola queria saber si me puede resolver una duda ya que yo de electronica nada estoy montando una cnc y tengo nema 23 ,tb6560 , una fuente alimentacion de 24v esta Power: DC24V 15A 360W
    Input Voltage: AC85-265V mi pregunta es si conecto los tb 6560 a la fuente los quemare ????

  20. Hola que tal buenos dias sabe de que estoy haciendo un proyecto de una guillotina automatica y esta llevando de accesorios dos motores nema 23, un cilindro neumatico y un sensor de detector de plastico y quiero conectarlos y sincronisarlos pero la verdad desconosco todo 🙁 y tambien quisiera saber que motores utilizar y que programas ya que desconosco para hacer este tipo de conexiones a ver si porfavor me puede ayudar

  21. Hola,
    ¿Este controlador valdría para mover un motor de corriente continua de 24V?
    Solo veo ejemplos para motores paso a paso.
    He comprado este controlador por que aguanta 3A y mi motor de 24v es de 1,6A y ya he quemado varios controladores L298N.
    Si este valiera, ¿que salidas son?

    muchas gracias a todos.

Deja una respuesta

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