Tengo un Nema 17, nominal de 0,8 amperios , ángulo de paso de 1,8 grados .
El motor se ve así y tiene seis cables que salen de él:
Los cuatro cables que he usado son los que están etiquetados a continuación (mi vendedor me indicó que usara todo excepto el negro y el blanco):
Mi cableado actual:
Los cables A+ y B+ están conectados a A1 y B1 respectivamente. Asimismo, A- y B- están conectados a A2 y B2 respectivamente.
Estoy tratando de usar este motor con un Arduino Uno y un controlador Polulu DRV 8825 . La potencia suministrada al motor es de 12 V, 500 mA a través del controlador paso a paso.
Conduzco el controlador paso a paso con dos cables (uno para el paso, otro para la dirección). Se verifica que todo mi cableado sea correcto.
Estoy tratando de usar este motor para el control deslizante de mi cámara, pero sin suerte.
El problema
Quiero lograr una rotación realmente lenta pero suave con mi paso a paso, pero no puedo hacerlo. Idealmente, me gustaría alcanzar velocidades tan bajas como las que se muestran en este video de YouTube .
Cuando trato de variar la velocidad de la velocidad paso a paso a través de mi código, solo reduce marginalmente la velocidad (definitivamente no tan lento como me gustaría), e incluso cuando lo hace, hay muchas vibraciones a esas velocidades particulares. Sin embargo, solo hay un (pequeño) rango de velocidades en el que el motor está silencioso. Me temo que estas vibraciones pueden hacer que la configuración de mi control deslizante quede completamente inutilizable.
El engranaje tampoco es realmente una opción, debido a la falta de limitaciones de espacio (quiero que este control deslizante sea liviano y pueda caber dentro de una maleta de viaje sin muchos problemas).
También probé micropasos a través de mi controlador (DRV 8825): para los mismos valores de velocidad (que se usan con pasos completos), se puede escuchar que la bobina del motor vibra. Y si modifico los valores para hacer que el motor gire, parece ser un múltiplo (aproximado) de los valores que usé para pasos completos anteriormente, por lo tanto, nuevamente, hago que el motor se pueda usar solo en los mismos rangos que estaba en paso completo modo. De lo contrario, el motor vibra fuerte o levemente, pero sin girar.
Soluciones probadas:
1) Micropasos (sin suerte)
2) Engranaje (Probado y funciona, pero no puedo usarlo para mi caso de uso)
3) Diferentes bibliotecas paso a paso (Accel, PWM, etc.)
4) Control de resistencia variable (sin suerte)
En este punto, estoy completamente perdido y sin idea. ¿Podría ser algo simple que me esté perdiendo? ¿O podría ser algo drástico, como tener que cambiar algún componente principal (como el propio motor o el controlador)? Cualquier ayuda sería muy apreciada y si se requieren aclaraciones, estaré encantado de proporcionarlas.
¡Gracias!
Mi código actual para Referencia:
#include <AccelStepper.h>
AccelStepper stepper (1, 9, 8);
int MODE0 = 7;
int MODE1 = 6;
int MODE2 = 5;
void setup()
{
stepper.setMaxSpeed(15000);
stepper.setSpeed(12000);
pinMode(MODE0, OUTPUT);
pinMode(MODE1, OUTPUT);
pinMode(MODE2, OUTPUT);
//Motor is now running in Microstepping mode (1/16)
digitalWrite(MODE0, LOW);
digitalWrite(MODE1, LOW);
digitalWrite(MODE2, HIGH);
}
void loop()
{
stepper.runSpeed();
}
De acuerdo, resulta que también hubo un problema con el cableado y el etiquetado de los motores era incorrecto. Muchas gracias a Andy por dedicar su precioso tiempo a ayudarme.
Como resolvi el problema
Actualización: después de la discusión con uno de los comentaristas a continuación, se sabe que no hay diferencia en el orden de los cables conectados al controlador, por lo tanto, el orden de los cables etiquetados en mi pregunta y en la respuesta a continuación no importa tanto como establecer el valor en la propia resistencia variable.
Estos controladores tienen una pequeña resistencia variable integrada que limita la corriente al motor. Solo tuve que ajustarlo para que todo funcionara. Ahora el motor funciona a velocidades ultrabajas, aunque con algunas vibraciones leves (en modo de paso completo).
Después de habilitar el modo de micropaso proporcionado por el chip, pude amortiguar las vibraciones por un margen enorme y conseguí que todo funcionara sin problemas.
Para cualquier otra persona que pueda tener este motor, aquí hay algunas referencias:
Los cables naranja y marrón constituyen una bobina de este motor, siendo el negro la derivación central.
Del mismo modo, Amarillo y Rojo constituyen la segunda bobina, siendo el cable blanco la derivación central.
La forma de conectarlo a un Polulu DRV8825 es la siguiente:
Espero que esto ayude a cualquier otra persona que pueda tener el mismo problema.
Salud.
Solo en función de cómo los cables ingresan al motor paso a paso de la imagen proporcionada por el OP, existe una posibilidad razonable de que A- y B + tengan un nombre incorrecto. Así es como interpreto el cableado de las dos bobinas con derivación central en el motor paso a paso: -
Si este es el caso, no me sorprende que el motor no se comporte correctamente. Me baso en el hecho de que naranja, blanco y amarillo parecen estar agrupados como si fueran para una de las bobinas y marrón, negro y rojo para la otra bobina. Si esto es así, las etiquetas A- y B+ se cambiarán erróneamente.
Su código solo puede configurar el modo de micropasos si conecta las salidas de comando de su Arduino (pines 7, 6 y 5) a las entradas correspondientes en el escudo DRV882x (entradas M0, M1 y M2). ¿Por qué si no sabría el chip lo que quieres?
Andy alias
diseño
Andy alias
diseño
Andy alias
diseño
Andy alias
diseño
Andy alias
diseño
usuario66114
usuario120707
usuario2943160
chris stratton
diseño