¡Tu carrito está actualmente vacío!
Controladora de motor TB6600 con librería AccelStepper


AccelStepper
Esta librería permite un control preciso del motor, incluyendo características como la aceleración y la desaceleración, lo que la hace adecuada para aplicaciones que requieren un movimiento más suave y controlado.
Las características del TB6600 aquí.
Conexiones del TB6600
El controlador TB6600 tiene varias terminales que necesitan ser correctamente conectadas para funcionar con tu motor paso a paso y microcontrolador:
- Entrada de Alimentación (Power Input):
- VCC: Conectar a la fuente de alimentación positiva (9V-42V).
- GND: Conectar al negativo de la fuente de alimentación.
- Conexiones del Motor:
- A+, A-: Conectar a una bobina del motor.
- B+, B-: Conectar a la otra bobina del motor.
- Señales de Control:
- EN (Enable): Activa/desactiva el controlador. Conectar al pin de habilitación del microcontrolador.
- DIR (Direction): Controla la dirección de rotación del motor. Conectar al pin de dirección del microcontrolador.
- PUL (Pulse/Step): Recibe las señales de pulso para el movimiento del motor. Conectar al pin de paso/pulso del microcontrolador.
Conexiones Básicas
- Microcontrolador:
- PUL (Pulso/Step): Pin GPIO 17
- DIR (Dirección): Pin GPIO 16
- EN (Enable): Pin GPIO 5
- Motor Paso a Paso:
- Bobina A: Conectar a
A+
yA-
. - Bobina B: Conectar a
B+
yB-
.
- Bobina A: Conectar a
- Fuente de Alimentación:
- Conectar el positivo y negativo a
VCC
yGND
del TB6600.
- Conectar el positivo y negativo a
Código de Ejemplo
Este es un ejemplo de cómo controlar un motor paso a paso utilizando el TB6600 y un ESP32 con AccelStepper
/*
Código está diseñado para mover el motor a una posición específica (1000 pasos) con una aceleración y velocidad predefinidas, y luego invertir la dirección del motor cuando alcanza la posición deseada. Esto permite un movimiento continuo hacia adelante y hacia atrás.
https://tfmingenieria.com/accelstepper-controladora-de-motor-tb6600-uso-con-esp8266-y-esp32/
*/
#include <AccelStepper.h> //Mike Mc Cauley v1.64
// Definición del tipo de motor: DRIVER
#define TIPO_DE_INTERFAZ AccelStepper::DRIVER
// Pines de conexión: Pulso y Dirección
const int pinPulso = 17; // Pin de pulso
const int pinDireccion = 16; // Pin de dirección
// Crea una instancia de la clase AccelStepper
AccelStepper motorPasoAPaso(TIPO_DE_INTERFAZ, pinPulso, pinDireccion);
void setup() {
// Establece la velocidad máxima y la aceleración
motorPasoAPaso.setMaxSpeed(1000); // Velocidad máxima en pasos por segundo
motorPasoAPaso.setAcceleration(500); // Aceleración en pasos por segundo al cuadrado
// Mueve el motor a la posición inicial (opcional)
motorPasoAPaso.moveTo(0);
}
void loop() {
// Mueve el motor a una posición absoluta de 1000 pasos
motorPasoAPaso.moveTo(1000);
// Ejecuta el movimiento (no bloqueante)
motorPasoAPaso.run();
// Verifica si el motor alcanzó la posición deseada
if (motorPasoAPaso.distanceToGo() == 0) {
// Cambia la dirección del movimiento
motorPasoAPaso.moveTo(-motorPasoAPaso.currentPosition());
}
delay (5000);
}
Peculiaridades del TB6600 con ESP32/ESP8266
1. Niveles de Voltaje
- ESP32: Opera a 3.3V, lo que significa que la lógica de control del ESP32 usa niveles de voltaje de 3.3V para los pines de entrada/salida.
- TB6600: Aunque generalmente está diseñado para aceptar niveles lógicos de 5V, el TB6600 es lo suficientemente tolerante como para trabajar con los niveles lógicos de 3.3V del ESP32 en la mayoría de los casos. Sin embargo, si experimentas problemas de señal, considera usar un convertidor de nivel lógico para garantizar la compatibilidad.
2. Corriente de Salida y Calentamiento
- Corriente Máxima: El TB6600 puede manejar hasta 4.5A, lo cual es excelente para motores de alta potencia, pero ten en cuenta que esto puede llevar a un calentamiento significativo.
- Disipación de Calor: Asegúrate de montar el TB6600 en un disipador de calor adecuado o en un entorno bien ventilado para evitar el sobrecalentamiento.
3. Microstepping
- Configuración de Microstepping: El TB6600 permite ajustar el microstepping para lograr un movimiento más suave del motor. Esto es especialmente útil en aplicaciones donde la precisión es crítica. Los interruptores DIP en el TB6600 se utilizan para configurar el microstepping.MicrosteppingSW1SW2SW31ONONON1/2OFFONON1/4ONOFFON1/8OFFOFFON1/16ONONOFF1/32OFFONOFF
- Impacto en la Velocidad: Mayor microstepping reduce la velocidad máxima del motor, pero mejora la suavidad del movimiento y la precisión.
4. Ruido y Vibración
- Ruido: El uso de microstepping puede ayudar a reducir el ruido y la vibración, lo que es importante en aplicaciones que requieren un funcionamiento silencioso.
- Vibración: Asegúrate de que el motor esté montado firmemente y de que las conexiones de los cables estén aseguradas para minimizar la vibración.
5. Pulsos de Control (PWM)
- Frecuencia del Pulso: El TB6600 requiere pulsos de control adecuados para funcionar correctamente. La frecuencia de los pulsos afectará la velocidad del motor. Puedes usar la función
delayMicroseconds()
para ajustar la duración del pulso y controlar la velocidad. - Consistencia del Pulso: Asegúrate de que los pulsos sean consistentes, ya que las inconsistencias pueden causar movimientos erráticos del motor.
6. Protección y Seguridad
- Protección Contra Sobrecalentamiento y Sobrecorriente: El TB6600 tiene protección integrada, pero es importante verificar la configuración de corriente y asegurarse de que el motor no esté sobrecargado.
- Desconexión Segura: Siempre apaga la fuente de alimentación antes de desconectar o cambiar cualquier cable para evitar daños al controlador o al motor.
Consejos para Optimizar el Uso del TB6600 con ESP32
1. Uso de Convertidores de Nivel Lógico
Si experimentas problemas de señal debido a los niveles de voltaje, considera usar un convertidor de nivel lógico para ajustar la lógica de 3.3V del ESP32 a 5V compatible con el TB6600. Esto asegura una transmisión de señal más confiable.
2. Alimentación del Motor
Utiliza una fuente de alimentación adecuada que pueda proporcionar suficiente corriente para el motor y el controlador. Asegúrate de que la fuente de alimentación sea capaz de manejar el pico de corriente necesario para el motor bajo carga.
3. Pruebas de Configuración de Corriente
Ajusta la corriente de salida utilizando los interruptores DIP en el TB6600 para coincidir con las especificaciones del motor. Aquí tienes una tabla de ejemplo para ajustar la corriente:
Corriente (A) | SW4 | SW5 | SW6 |
---|---|---|---|
1.0 | ON | ON | ON |
2.0 | OFF | ON | ON |
3.0 | ON | OFF | ON |
4.5 | OFF | OFF | ON |
Etiquetas:
Deja una respuesta