Pages Menu
TwitterFacebook



BANNER2_ALT

Posted by on Oct 21, 2014 in Motores | 26 comments

TB6560 Controlador Motor a Pasos

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 Terminal Descripción
B-        B+ Fase B Motor a pasos
A-        A+ Fase A Motor a pasos
GND        +24V Alimentació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.
 }

26 Comments

  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?

    • Saul, si podrias, supongo que 2 cables de tu motor son comunes de las bobinas no? de cualquier manera siempre y cuando generes los pulsos con el PLC.

  2. el potenciometro donde iria conectado?

    • Dylan, en el canal A0 “int Pot = 0; // Lectura Analógica en A0, Potenciómetro de 10k ohm”

  3. Hola quiero saber como es la conexión y función. Tengo los tres tb6560 y arduino uno. Con el sistema operativo gbrl. Y tres motores NEMA 23 a. 3A. bipolares como conecto todo gracias.

    • Riyar checa la Tabla 1 ahí vienen las conexiones. Saludos.

  4. 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….

    • Buena observación Euler, deja le comento a la persona que realizo el tutorial, igual en el código se observa que son los pines 8 y 9 los de control del Arduino. Saludos

  5. 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?

    • Monserath, solamente cambia el estado del pin en el Arduino. Lo puedes hacer mediante condiciones de programa o un selector de hardware.

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

    • Jorge, comienza por implementar este tutorial :) Si tienes una duda particular te ayudamos. Saludos.

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

    • Totalmente viable Jose, igual no digo que facil pero si son compatibles. Saludos.

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

    • Luis, se usan otros pines, 2 mas para cada controlador. Saludos.

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

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

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

        • Hola Nelson gracias por tu colaboracion y por tu ayuda a otros usuarios

  10. 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?

    • Hola buen dia si es uno de los recomendables para los NEMA y nosotros te los podemos vender te paso el link de nuestra tienda https://hetpro-store.com/ puedes encontrar el controlador con nosotros

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

Post a Reply

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