En este tutorial, aprenderás a controlar un motor paso a paso con el driver microstepping TB6600 y Arduino. Este driver es fácil de usar y puede controlar grandes motores paso a paso como un NEMA 23 de 3 A.
I have included a wiring diagram and 3 example codes. In the first example, I will show you how you can use this stepper motor driver without an Arduino library.
This example can be used to let the motor spin continuously. In the second example, we will look at how you can control the speed, number of revolutions, and spinning direction of the stepper motor.
Finally, we will take a look at the AccelStepper library. This library is fairly easy to use and allows you to add acceleration and deceleration to the movement of the stepper motor.
Después de cada ejemplo, desgloso y explico cómo funciona el código, por lo que no deberías tener problemas para modificarlo y adaptarlo a tus necesidades.
Si tiene alguna pregunta, deje un comentario a continuación.
Si quiere saber más sobre otros controladores de motores paso a paso, los artículos siguientes pueden resultarle útiles:
- Tutorial de TB6560 Stepper Motor Driver con Arduino
- Cómo controlar un motor paso a paso con el driver A4988 y Arduino
- Motor paso a paso 28BYJ-48 con controlador ULN2003 y tutorial de Arduino
- Cómo controlar un motor paso a paso con Arduino Motor Shield Rev3
I also have an article on How To Use the TB6600 Stepper Motor Driver with ESP32 if you want to work with an ESP32 microcontroller instead.
Suministros
Componentes de hardware
Controlador de motor paso a paso TB6600 | × 1 | Amazon | |
Motor paso a paso NEMA 23 | × 1 | Amazon | |
Arduino Uno Rev3 | × 1 | Amazon | |
Alimentación (24/36 V) | × 1 | Amazon | |
Cables de puente | × 4 | Amazon | |
Cable USB tipo A/B | × 1 | Amazon |
Herramientas
Pelacables | Amazon | ||
Destornillador pequeño | Amazon | ||
Alicates de presión autoajustables (recomendados)*. | Amazon | ||
Surtido de casquillos (recomendado)* | Amazon |
*Hackaday escribió un magnífico artículo sobre las ventajas de utilizar virolas de cable (también conocidas como manguitos finales).
Software
Makerguides.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to products on Amazon.com. As an Amazon Associate we earn from qualifying purchases.
Sobre el conductor
El microcontrolador TB6600 está construido en torno al CI TB6600HG de Toshiba y puede utilizarse para controlar motores paso a paso bipolares de dos fases.
Con una corriente máxima de 3,5 A continuos, el controlador TB6600 puede utilizarse para controlar motores paso a paso bastante grandes, como un NEMA 23. Asegúrese de no conectar al controlador motores paso a paso con una corriente superior a 3,5 A.
El controlador tiene varias funciones de seguridad incorporadas, como la protección contra la sobrecorriente, el apagado por baja tensión y el sobrecalentamiento.
Puede encontrar más especificaciones en la siguiente tabla. Tenga en cuenta que las especificaciones y dimensiones exactas pueden diferir ligeramente entre fabricantes. Consulte siempre la hoja de datos de su controlador en particular, antes de conectar la alimentación.
Especificaciones del TB6600
Tensión de funcionamiento | 9 - 42 V |
Corriente de salida máxima | 4,5 A por fase, 5,0 A de pico1 |
Resolución de micropasos | completo, 1/2, 1/4, 1/8 y 1/162 |
Protección | Desconexión por baja tensión, protección contra sobrecalentamiento y sobrecorriente |
Dimensiones | 96 x 72 x 28/36 mm |
Distancia entre agujeros | 88, ⌀ 5 mm |
Coste | Comprobar el precio |
1 Estas son las especificaciones del CI TB6600HG, el driver en sí tiene una corriente máxima de 3,5 A y 4,0 A de pico.
2 Véase el comentario sobre los drivers TB6600 falsos/actualizados más abajo.
Para más información, puede consultar la hoja de datos y el manual que aparecen a continuación:
Controladores falsos o "actualizados" del TB6600
Hace poco desmonté uno de los controladores TB6600 que pedí y descubrí que en realidad no utilizaba un chip TB6600HG. En su lugar, utilizaba un chip TB67S109AFTG mucho más pequeño, también fabricado por Toshiba. El rendimiento y las especificaciones de estos chips son similares, pero el TB6600HG tiene una mayor capacidad de corriente de pico (hasta 5 A) y es un chip mucho más grande con mejor disipación térmica en general.
Hay una forma muy sencilla de comprobar si su controlador utiliza un chip TB6600HG o un chip TB67S109AFTG, el TB6600HG sólo soporta hasta 1/16 de micropaso (ver hoja de datos), mientras que el TB67S109AFTG llega hasta 1/32. La principal razón por la que los fabricantes se han pasado a este otro chip es probablemente el precio. A continuación puede encontrar los enlaces a los chips en LCSC.com que muestra que el TB67S109AFTG es alrededor de 1,50 dólares más barato.
TB6600HG: https://lcsc.com/product-detail/Motor-Drivers_TOSHIBA_TB6600HG_TB6600HG_C66042.html
TB67S109AFTG: https://lcsc.com/product-detail/Motor-Drivers_TOSHIBA_TB67S109AFTG_TB67S109AFTG_C92125.html
Puedes comprar drivers TB6600 genuinos en Amazon, como esta placa de driver de 4 ejes, pero la mayoría utiliza el chip TB67S109AFTG. Se puede decir que utiliza el chip TB6600HG de los pines que sobresalen de la PCB y también sólo va hasta 1/16 microstepping.
Jim de embeddedtronicsblog hizo algunas pruebas con los drivers TB67S109AFTG y descubrió que los motores paso a paso funcionaban mejor que con los drivers TB6600. Así que, ¿debería usted optar por un TB6600 genuino o por la "actualización"? Yo diría que depende de si realmente necesita la salida de alta corriente o si prefiere hasta 1/32 microstepping.
Puede encontrar la hoja de datos del TB67S109AFTG a continuación.
Alternativas
Tenga en cuenta que el TB6600 es un controlador analógico. En los últimos años, los controladores digitales como el DM556 o el DM542 son mucho más asequibles. Los controladores digitales suelen ofrecer un rendimiento mucho mayor y un funcionamiento más silencioso. Se pueden cablear y controlar de la misma manera que el TB6600, por lo que puede actualizar fácilmente su sistema más adelante.
He utilizado los controladores DM556 para mi router CNC de bricolaje y han funcionado muy bien durante varios años.
TB6600 vs TB6560
Al comprar un controlador de motor paso a paso TB6600, probablemente también se encontrará con el controlador TB6560, ligeramente más barato. Este driver puede ser controlado con el mismo código/cableado, pero hay algunas diferencias clave.
TB6560 | TB6600 | |
---|---|---|
Tensión de funcionamiento | 10 - 35 VDC, se recomienda 24 VDC | 9 - 42 VDC, se recomienda 36 VDC |
Corriente de salida máxima | 3 A por fase, 3,5 A de pico | 3,5 A por fase, 4 A de pico |
# Configuración actual | 14 | 8 |
Resolución de micropasos | completo, 1/2, 1/8 y 1/16 | completo, 1/2, 1/4, 1/8, 1/16 y 1/32*. |
Frecuencia del reloj | 15 kHz | 200 kHz |
Coste | Comprobar el precio | Comprobar el precio |
*Conductores que utilizan el chip TB67S109AFTG.
Así que las principales diferencias son el mayor voltaje máximo, la mayor corriente máxima, y hasta 1/32 microstepping. El TB6600 también tiene un mejor disipador de calor y un mejor factor de forma general. Si quieres controlar motores paso a paso más grandes o necesitas una mayor resolución, te recomiendo que elijas el TB6600.
Cableado - Conexión del TB6600 al motor paso a paso y al Arduino
Conectar el controlador de motor paso a paso TB6600 a un Arduino y a un motor paso a paso es bastante fácil. El siguiente diagrama de cableado muestra las conexiones que debes realizar.
En este tutorial, conectaremos el controlador en una configuración de cátodo común. Esto significa que conectamos todos los lados negativos de las conexiones de la señal de control a tierra.
Las conexiones también se indican en la tabla siguiente:
Conexiones del TB6600
TB6600 | Conexión |
---|---|
VCC | 9 - 42 VDC |
GND | Tierra de la fuente de alimentación |
ENA- | No conectado |
ENA+ | No conectado |
DIR- | Arduino GND |
DIR+ | Pin 2 Arduino |
PUL- | Arduino GND |
PUL+ | Pin 3 Arduino |
A-, A+ | Bobina 1 motor paso a paso |
B-, B+ | Bobina 2 motor paso a paso |
Observe que hemos dejado los pines de habilitación (ENA- y ENA+) desconectados. Esto significa que el pin de habilitación siempre está en LOW y el driver siempre está habilitado.
¿Cómo determinar el cableado correcto del motor paso a paso?
Si no puedes encontrar la hoja de datos de tu motor paso a paso, puede ser difícil averiguar qué color de cable va donde. Yo uso el siguiente truco para determinar cómo conectar motores paso a paso bipolares de 4 cables:
Lo único que tienes que identificar son los dos pares de cables que se conectan a las dos bobinas del motor. Los cables de una bobina se conectan a A- y A+ y el otro a B- y B+, la polaridad no importa.
Para encontrar los dos cables de una bobina, haga lo siguiente con el motor desconectado:
- Intenta hacer girar el eje del motor paso a paso con la mano y fíjate en lo difícil que es girar.
- Ahora escoge un par de cables al azar del motor y toca los extremos desnudos entre sí.
- A continuación, mientras mantiene los extremos juntos, intente hacer girar el eje del motor paso a paso de nuevo.
Si siente mucha resistencia, ha encontrado un par de cables de la misma bobina. Si todavía puede girar el eje libremente, pruebe con otro par de cables. Ahora conecte las dos bobinas a las clavijas mostradas en el diagrama de cableado anterior.
(Si todavía no está claro, por favor deja un comentario abajo, también se puede encontrar más información en la wiki de RepRap.org)
Ajustes del micropaso del TB6600
Los motores paso a paso suelen tener un tamaño de paso de 1,8° o 200 pasos por revolución, esto se refiere a pasos completos. Un controlador de micropasos como el TB6600 permite resoluciones más altas al permitir ubicaciones de pasos intermedios. Esto se consigue energizando las bobinas con niveles de corriente intermedios.
Por ejemplo, al conducir un motor en el modo de 1/2 paso, el motor de 200 pasos por revolución dará 400 micropasos por revolución.
Puede cambiar la configuración de los micropasos del TB6600 activando o desactivando los interruptores DIP del controlador. Consulte la tabla siguiente para obtener más detalles. Asegúrese de que el controlador no está conectado a la corriente cuando ajuste los interruptores DIP.
Tenga en cuenta que estos ajustes son para los controladores de micropasos 1/32 con el chip TB67S109AFTG. Casi todos los drivers TB6600 que se pueden comprar hoy en día utilizan este chip. Normalmente también puedes encontrar una tabla con los ajustes de micropaso y corriente en el cuerpo del driver.
Mesa de micropasos
S1 | S2 | S3 | Resolución de micropasos |
---|---|---|---|
EN | EN | EN | NC |
EN | EN | OFF | Paso completo |
EN | OFF | EN | 1/2 paso |
OFF | EN | EN | 1/2 paso |
EN | OFF | OFF | 1/4 de paso |
OFF | EN | OFF | 1/8 paso |
OFF | OFF | EN | Paso 1/16 |
OFF | OFF | OFF | 1/32 paso |
En general, un ajuste de micropasos más pequeño dará lugar a un funcionamiento más suave y silencioso. Sin embargo, limitará la velocidad máxima que puede alcanzar al controlar el controlador del motor paso a paso con un Arduino.
Configuración actual del TB6600
Puedes ajustar la corriente que va al motor cuando está en marcha activando o desactivando los interruptores DIP S4, S5 y S6. Recomiendo empezar con un nivel de corriente de 1 A. Si tu motor pierde pasos o se cala, siempre puedes aumentar el nivel de corriente más adelante.
Tabla actual
Corriente (A) | Corriente máxima | S4 | S5 | S6 |
---|---|---|---|---|
0.5 | 0.7 | EN | EN | EN |
1.0 | 1.2 | EN | OFF | EN |
1.5 | 1.7 | EN | EN | OFF |
2.0 | 2.2 | EN | OFF | OFF |
2.5 | 2.7 | OFF | EN | EN |
2.8 | 2.9 | OFF | OFF | EN |
3.0 | 3.2 | OFF | EN | OFF |
3.5 | 4.0 | OFF | OFF | OFF |
Código de ejemplo del TB6600 básico con Arduino
Con el siguiente sketch, puedes probar la funcionalidad del driver del motor paso a paso. Simplemente deja que el motor gire a una velocidad fija.
Puedes subir el código a tu Arduino utilizando el IDE de Arduino. Para este ejemplo específico, no es necesario instalar ninguna biblioteca.
En el siguiente ejemplo veremos cómo controlar la velocidad, el número de revoluciones y el sentido de giro del motor paso a paso.
Puede copiar el código haciendo clic en el botón de la esquina superior derecha del campo de código.
/* Example sketch to control a stepper motor with TB6600 stepper motor driver and Arduino without a library: continuous rotation. More info: https://www.makerguides.com */ // Define stepper motor connections: #define dirPin 2 #define stepPin 3 void setup() { // Declare pins as output: pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); // Set the spinning direction CW/CCW: digitalWrite(dirPin, HIGH); } void loop() { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); }
Como puedes ver, el código es muy corto y súper sencillo. ¡No necesitas mucho para hacer girar un motor paso a paso!
Explicación del código
El sketch comienza definiendo los pines de paso (PUL+) y dirección (DIR+). Los conecté a los pines 3 y 2 de Arduino.
La declaración #define
se utiliza para dar un nombre a un valor constante. El compilador sustituirá cualquier referencia a esta constante por el valor definido cuando se compile el programa. Por lo tanto, en todos los casos en los que se menciona dirPin
el compilador lo sustituirá por el valor 2 al compilar el programa.
// Define stepper motor connections: #define dirPin 2 #define stepPin 3
En el setup()
del código, todos los pines de control del motor se declaran como OUTPUT digital con la función pinMode(pin, mode)
. También establezco el sentido de giro del motor paso a paso poniendo el pin de dirección en HIGH. Para ello utilizamos la función digitalWrite(pin, value)
.
void setup() { // Declare pins as output: pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); // Set the spinning direction CW/CCW: digitalWrite(dirPin, HIGH); }
En el loop()
del código, dejamos que el driver ejecute un paso enviando un pulso al pin de paso. Como el código en la sección de bucle se repite continuamente, el motor paso a paso comenzará a girar a una velocidad fija. En el siguiente ejemplo, verás cómo puedes cambiar la velocidad del motor.
void loop() { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); }
2. Ejemplo de código para controlar la rotación, la velocidad y la dirección
Este esquema controla tanto la velocidad, como el número de revoluciones y el sentido de giro del motor paso a paso.
/* Example sketch to control a stepper motor with TB6600 stepper motor driver and Arduino without a library: number of revolutions, speed and direction. More info: https://www.makerguides.com */ // Define stepper motor connections and steps per revolution: #define dirPin 2 #define stepPin 3 #define stepsPerRevolution 1600 void setup() { // Declare pins as output: pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); } void loop() { // Set the spinning direction clockwise: digitalWrite(dirPin, HIGH); // Spin the stepper motor 1 revolution slowly: for (int i = 0; i < stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(2000); digitalWrite(stepPin, LOW); delayMicroseconds(2000); } delay(1000); // Set the spinning direction counterclockwise: digitalWrite(dirPin, LOW); // Spin the stepper motor 1 revolution quickly: for (int i = 0; i < stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(1000); digitalWrite(stepPin, LOW); delayMicroseconds(1000); } delay(1000); // Set the spinning direction clockwise: digitalWrite(dirPin, HIGH); // Spin the stepper motor 5 revolutions fast: for (int i = 0; i < 5 * stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); // Set the spinning direction counterclockwise: digitalWrite(dirPin, LOW); // Spin the stepper motor 5 revolutions fast: for (int i = 0; i < 5 * stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); }
Cómo funciona el código:
Además de establecer las conexiones del motor paso a paso, también definí un stepsPerRevolution
constante. Como he configurado el driver en modo microstepping 1/8 lo he puesto a 1600 pasos por revolución (para un motor paso a paso estándar de 200 pasos por revolución). Cambia este valor si tu configuración es diferente.
// Define stepper motor connections and steps per revolution: #define dirPin 2 #define stepPin 3 #define stepsPerRevolution 1600
El setup()
es lo mismo que antes, sólo que no necesitamos definir el sentido de giro todavía.
En el loop()
del código, dejamos que el motor gire una revolución lentamente en la dirección CW y una revolución rápidamente en la dirección CCW. Luego, dejamos que el motor gire 5 revoluciones en cada dirección con una velocidad alta. Entonces, ¿cómo se controla la velocidad, la dirección de giro y el número de revoluciones?
// Set the spinning direction clockwise: digitalWrite(dirPin, HIGH); // Spin the stepper motor 1 revolution slowly: for(int i = 0; i < stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(2000); digitalWrite(stepPin, LOW); delayMicroseconds(2000); }
Controla la dirección de giro:
Para controlar el sentido de giro del motor paso a paso ponemos el pin DIR (dirección) en HIGH o LOW. Para ello utilizamos la función digitalWrite()
. Dependiendo de cómo hayas conectado el motor paso a paso, al poner el pin DIR en alto el motor girará en sentido de la marcha o en sentido contrario.
Controla el número de pasos o revoluciones:
En este ejemplo, los bucles for controlan el número de pasos que dará el motor paso a paso. El código dentro del bucle for resulta en 1 (micro)paso del motor paso a paso. Como el código en el bucle se ejecuta 1600 veces (stepsPerRevolution), esto resulta en 1 revolución. En los dos últimos bucles, el código dentro del bucle for se ejecuta 8000 veces, lo que resulta en 8000 (micro)pasos o 5 revoluciones.
Tenga en cuenta que puede cambiar el segundo término del bucle for por el número de pasos que desee. for(int i = 0; i < 800; i++)
resultaría en 800 pasos o media revolución.
Velocidad de control:
La velocidad del motor paso a paso viene determinada por la frecuencia de los pulsos que enviamos al pin STEP. Cuanto mayor sea la frecuencia, más rápido funcionará el motor. Puedes controlar la frecuencia de los pulsos cambiando delayMicroseconds()
en el código. Cuanto más corto sea el retardo, mayor será la frecuencia y más rápido funcionará el motor.
Instalación de la biblioteca AccelStepper
La librería AccelStepper escrita por Mike McCauley es una librería impresionante para usar en tu proyecto. Una de las ventajas es que soporta la aceleración y la desaceleración, pero tiene un montón de otras funciones agradables también.
Puede descargar la última versión de esta biblioteca aquí o hacer clic en el botón de abajo.
Puedes instalar la librería yendo a Sketch > Incluir librería > Añadir librería .ZIP ... en el IDE de Arduino.
Otra opción es ir a Herramientas > Administrar Bibliotecas... o teclear Ctrl + Shift + I en Windows. El Administrador de Bibliotecas se abrirá y actualizará la lista de bibliotecas instaladas.
Puedes buscar 'accelstepper' y buscar la biblioteca de Mike McCauley. Seleccione la última versión y luego haga clic en Instalar.
3. Código de ejemplo de AccelStepper
Con el siguiente sketch, puedes añadir aceleración y desaceleración a los movimientos del motor paso a paso, sin ninguna codificación complicada. En el siguiente ejemplo, el motor irá de un lado a otro con una velocidad de 1000 pasos por segundo y una aceleración de 500 pasos por segundo al cuadrado.
Tenga en cuenta que todavía estoy utilizando el controlador en el modo 1/8 microstepping. Si estás usando una configuración diferente, juega con los ajustes de velocidad y aceleración.
/* Example sketch to control a stepper motor with TB6600 stepper motor driver, AccelStepper library and Arduino: acceleration and deceleration. More info: https://www.makerguides.com */ // Include the AccelStepper library: #include <AccelStepper.h> // Define stepper motor connections and motor interface type. // Motor interface type must be set to 1 when using a driver: #define dirPin 2 #define stepPin 3 #define motorInterfaceType 1 // Create a new instance of the AccelStepper class: AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin); void setup() { // Set the maximum speed and acceleration: stepper.setMaxSpeed(1000); stepper.setAcceleration(500); } void loop() { // Set the target position: stepper.moveTo(8000); // Run to target position with set speed and acceleration/deceleration: stepper.runToPosition(); delay(1000); // Move back to zero: stepper.moveTo(0); stepper.runToPosition(); delay(1000); }
Explicación del código:
El primer paso es incluir la biblioteca con #include <AccelStepper.h>
.
// Include the AccelStepper library: #include <AccelStepper.h>
El siguiente paso es definir las conexiones entre el TB6600 y el Arduino y el tipo de interfaz del motor. El tipo de interfaz del motor debe establecerse en 1 cuando se utiliza un controlador de paso y dirección. Puedes encontrar los otros tipos de interfaz aquí.
// Define stepper motor connections and motor interface type. Motor interface type must be set to 1 when using a driver: #define dirPin 2 #define stepPin 3 #define motorInterfaceType 1
A continuación, hay que crear una nueva instancia de la clase AccelStepper con el tipo de interfaz del motor y las conexiones adecuadas.
En este caso, he llamado al motor paso a paso 'stepper', pero también puedes utilizar otros nombres, como 'z_motor' o 'liftmotor', etc. AccelStepper liftmotor = AccelStepper(motorInterfaceType, stepPin, dirPin);
. El nombre que le des al motor paso a paso se utilizará más tarde para establecer la velocidad, la posición y la aceleración de ese motor en particular. Puedes crear múltiples instancias de la clase AccelStepper con diferentes nombres y pines. Esto le permite controlar fácilmente 2 o más motores paso a paso al mismo tiempo.
// Create a new instance of the AccelStepper class: AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
En la función setup(), además de la velocidad máxima, necesitamos definir la aceleración/desaceleración. Para ello utilizamos la función setMaxSpeed()
y setAcceleration()
.
void setup() { // Set the maximum speed and acceleration: stepper.setMaxSpeed(1000); stepper.setAcceleration(500); }
En la sección de bucle del código, dejamos que el motor gire un número predefinido de pasos. La función stepper.moveTo()
se utiliza para fijar la posición del objetivo (en pasos). La función stepper.runToPostion()
mueve el motor (con aceleración/deceleración) a la posición objetivo y se bloquea hasta que esté en la posición objetivo. Debido a que esta función es de bloqueo, no deberías usarla cuando necesites controlar otras cosas al mismo tiempo.
// Set the target position: stepper.moveTo(8000); // Run to target position with set speed and acceleration/deceleration: stepper.runToPosition();
Si quieres ver más ejemplos de la librería AccelStepper, echa un vistazo a mi tutorial sobre el controlador del motor paso a paso A4988:
Conclusión
En este artículo, he mostrado cómo controlar un motor paso a paso con el controlador de motor paso a paso TB6600 y Arduino. Espero que lo hayas encontrado útil e informativo. Si lo has hecho, ¡compártelo con un amigo al que también le guste la electrónica y hacer cosas!
Me encantaría saber qué proyectos planeas construir (o ya has construido) con este controlador. Si tienes alguna pregunta, sugerencia, o si crees que faltan cosas en este tutorial, por favor deja un comentario abajo.
Tenga en cuenta que los comentarios son retenidos por la moderación para evitar el spam.
Esta obra está bajo una licencia de Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Otros enlaces útiles de la web:
Benne is professional Systems Engineer with a deep expertise in Arduino and a passion for DIY projects.
Zee
Friday 11th of August 2023
What is going on with all of these excessive ads? Too annoying!
Stefan
Friday 11th of August 2023
Agreed, but somehow the authors need to get paid and currently it is ads. Sorry. But I aim to reduce the ad frequency. They are annoying, indeed.
Mejse
Monday 27th of February 2023
Thank you for the tutorial! I'm totally new to working with arduino, drivers and stepper motors, but you explained it in a way that even I could understand! One quick (maybe stupid) question: in the microstep table it says that when all three switches are on the microstep resolution is "NC" - what does that mean? Thank you
Tom
Martes 20 de diciembre de 2022
Como sugerencia, tal vez aclarar que el "digital" vs "analógico" que se refiere es en realidad decimal vs fraccional. 200,400,etc, da pasos fraccionarios de una revolución mientras que 1000,2000,etc da pasos decimales de revolución. Esto se convierte en un problema en aplicaciones de posicionamiento donde 800 pasos/rev en un husillo de bolas de 5mm de paso daría pasos de 0.00625mm, y 1000 pasos en un husillo de 5mm de paso daría pasos de 0.005mm. Para mover un mm a 0,00625 se necesitan 160 pasos. Un mm a 0,005 requiere 200 pasos. Dicho de otro modo, el controlador "analógico" no puede zambullirse correctamente los pasos requeridos. Además, debemos diferenciar entre los controladores "analógicos", como usted los denomina, y los lineales. AMBOS de los drivers discutidos, TB6600 y DM542 son drivers digitales. Llamarlos "analógicos" sería una denominación errónea. Deberían llamarse "fraccionales". El driver digital utiliza un regulador chopper para controlar la potencia del motor. Ambos drivers son circuitos de accionamiento por chopper. Un driver "analógico" sería sinónimo de un driver lineal que utiliza resistencias y condensadores para alimentar el motor. No utiliza un circuito chopper para controlar el motor. Por lo demás, ¡gracias por el artículo!
Kelvin
Miércoles 7 de septiembre de 2022
Gracias por esto Por favor, quiero detener mi motor stemp después de 2 revoluciones completas ¿Cómo puedo hacerlo?
Vicen
Lunes 21 de junio de 2021
¡Genial! He seguido tu tutorial y todo funciona como es de esperar. Tengo aparcado un CNC que he construido debido a problemas de adaptación con los motores paso a paso hasta ahora. Creo que después de este artículo he logrado disipar los problemas que estaba arrastrando con mi CNC, estoy convencido que era una cuestión de controlar los pasos y la corriente de cada motor. Por lo tanto, sólo me queda darte las gracias por tu trabajo y tu correcto trato del tema. Repito GRACIAS.