Un pequeño aporte, según mi experiencia, sobre los comandos jogging para nuestros proyectos donde utilicemos los motores paso a paso fuera del ambito CNC
AJUSTE PARA NEMA 17:
Recordemos que estos motores giran 1,8 grados por paso, necesitando 200 pasos para completar una vueltao 360 º. Al utilizar microstepping , en el caso del los tmc 2208/09, cada paso se convierte entre 16 micropasos, y entonces una vuelta será ahora 200×16=3200 micropasos necesarios para completar la vuelta: entonces
$100=3200 ,$101=3200,$102=3200
Expresión jogging para una vuelta a una velocidad de 1 rpm
$J=G21G91X1F1
El motor debera girar 360 grados en un tiempo de 60 segundos, lo que nos informa, que el ajuste es correcto.
el tiempo de giro en segundos será T=60X/F,
$J=G21G91X200F100
Aqui tardara en dar 200 vueltas a 100 rpm un T=120 seg
AJUSTE PARA 28BYJ-48
Estos motores tienen una reducción de 1/64 con un angulo de paso de 5,625 grados, y son unipolares pero lo utilizaremos como bipolares omitiendo el hilo comun de color rojo, entonces pasaremos de 4 medias bobinas a dos bobinados completos, importante de tener en cuenta porque la reducción ahora equivaldrá a 1/32, entonces el calculo de los pasos / vuelta será:
360/5,625*32=2048
y al utilizar 1/16 micropasos
$100=2048×16=32768 pasos/vuelta
Podremos hacer la misma comprobación con la expresión $J=G21G91X1F1, viendo que dara una vuelta completa en 60 segundos.
Igualmente,para trabajar en grados, dividimos 32768 entre 360 que es aprox 91, valor que pondriamos en $100 (en X)
Velocidad máxima F recomendada F=20 rpm o 0,33 rev/s o 120 grados/segundo
E
En principio no me preocupe mucho del consumo que en todos los casos no va a superar por mucho 1000 mA ni de la fuerza o torque de este tipo de motores paso a paso, que siempre va a ser proporcional a la maxima corriente que drenan. Posteriormente vere que ocurre con los TMC-2209 que pueden manejar corrientes de 2 Amp porque los TMC-2208 no puede superar los 1,2 Amp.
Los valores configurables grbl afectados seran ” $100,,$110,,$120″ para el motor actuando en X y sus consecutivos para Y,Z.
Recordemos que el valor $1 puede mantener todos los ejes siempre habilitados configurando $ 1 = 255. Los motores consumiran la corriente maxima que se haya ajustado previamente. Si no nos asegurarems el minimo consumo con $1=0-
Probando varios valores de aceleración,comprobé que $120/121/122 igual a 10 mm/s2 es el mejor para la exactitud rotacional.
$110=1000 nos asegura una velocidad max dentro de los margenes, y hay que tenerlo en cuenta si queremos probar mayores valores de velocidad.
En el siguiente ejemplo,con dos hm10 emparejados a 115200, enviamos por Bluetooth el comando jogging con un delay=1000 de modo que ante una pulsación normal, el motor gire una vuelta exacta, ya que de otro modo no tendra este control casi exacto
SoftwareSerial Bt(2,3);
Bt.println("$J=G21G91X1F60");delay(1000);
El consumo de corriente esta ligada proporcionalmente al torque del motor, mas consumo de corriente iudica mas potencia. Particularmente pienso que para uso discrecional para controlar un motor, mejor utilizar el montaje con arduíno Nano y como driver el nuevo TMC-2209 que tiene mayor capacidad de drenaje de corriente y aunque el calor disipado sea el mismo nos va a dar mayor estabilidad ante un esfuerzo corto. Sin embargo, con un motor menor como el Nema 17HS04-O4O4S, con 400 mA de consumo maximo no hara falta el uso del TMC-2209.
Uso controladora CNC para comprobar consumo motores en función voltaje aplicado.

He querido comprobar ,usando esta controladora cnc y solo a efectos de comprobar el consumo de tres motores como estos, en función de tres voltajes de prueba 5/12/24V.

He usado los drivers Tmc2209 y ajustado los pequeños potenciometros de forma que cada motor consuma lo mismo segun la tensión de entrada. Aunque el funcionamiento de la placa es 12-24V, tambien podemos usar 5V solo a efectos de hacer mover los motores, y estos son los resultados:
5V | ´500 mA |
12V | 250 mA |
24V | 170 mA |
MOTORES ACTUANDO JUNTOS
Cualquiera puede observar que la velocidad de rotación de estos motores actuando con comandos Jogging varia para acciones simultaneas de dos y tres dispositivos en el sentido que disminuye ,aumentando el tiempo-evidentemente- que tardan en completar los valores requeridos para X,Y o Z.
En el comando $J=G21G91XaF1 donde “a” es la expresión de rotación y F1 lla velocidad para un motor actuando solo, el tiempo que empleará será
t1= Xa/F1
con un solo motor en X, pero si metemos otro motor en Y la velocidad F1 disminuirá a F2 y el tiempo t1 aumentara a t2 para mantener la cantidad de rotación igualada, o sea que se cumple esta identidad:
F1T1=F2T2
o sea que la nueva velocidad con dos motores, F2=F1x T1/T2, el valor de disminución viene dado por el cociente t1/t2 que es menor que 1
Vamos a resolver la cuestión de de conocer la frecuencia que debemos expresar en $J para que no varie el tiempo de ejecución actuando con uno, dos y tres motores simultaneamente. Y para ello es necesario hacer las observaciones del tiempo empleado en cada caso.
$j=G21G91XaYbZcFxyz
a,b,c son la vueltas que queremos que de cada motor, y lo que nos importa es encontrar un valor Fx ,Fy ,Fz -dependiendo del valor del eje X ,Y ,Z que tomemos como ref. -que haga que se mantenga constante el tiempo de giro referido a un cierto eje cuando trabaje en solitario o simultáneos.
Si es Xa el objetivo de referencia ,primero calculamos el tiempo que tardará en dar las “a ” vueltas a una velocidad F,
t1=60a/F en segundos,,
Despues mediremos el tiempo para la velocidad F de los tres motores a la vez con sus respectivos numero de vueltas b y c que llamaremos t3, entonces, para cada eje de referencia si queremos que el tiempo en hacer la rotación sea el mismo F1 debera aumentarse a un valor aumentado F3 para que se cumpla:
F1t3=F3t1, y el factor multiplicador de F1 que debemos emplear para aumentar F3 sera
F3=t3/t1 x F1
Ejemplo practico para dos motores Nema 17
$J=G21G91X12Y18F100
con esta expresión queremos que el motor X de 12 vueltas y el motor Y 18 a una velocidad de 100 rpm
Tomando cada motor individualmente Con F100
X,, t1=60*12/100=7, 2 seg .
Y,, t1=60*18/100=10,8 seg
A continuación mediremos el tiempo t2 de la expresión completa con F100
t2=13 seg,
entonces F2x=100*t2/t1=100*13/7,2=171.4 rpm
F2y=100*t2/t1=100*14/10,8=120,3 rpm
ahora $J=G21G91X12Y18F171.4 tendrá un tiempo de ejecución de 7,2 seg, igual que X trabajando solo
y con $J=G21G91X12Y18F120.3 el tiempo será de 10,8 seg igual que Y en solitario.
Con tres motores, haremos lo mismo, calcularemos el tiempo de cada motor en solitario y luego el de conjunto.
El caso mas sencillo se produce cuando todos los motores efectuan las mismas rotaciones. Como cualquiera puede hacer la observación comprobará que se llega a un factor multiplicador constante que es
PARA DOS MOTORES
F2=1,41 F1
PARA TRES MOTORES
F3=1,7 F1
Ejemplo con $J=G21G91X30F100 AL PASAR A $J=G21G91X30Y30F141, incrementaremos la velocidad en 100×1,41 para que no varie
y en el caso $J=G21G91X30Y30Z30F170 EL FACTOR ES 100X1,7
para mas exactitud el factor multiplicador es raiz cuadrada de 2 y raiz cuadrada de 3 simultaneamente con dos y tres motores.
Tu estudio solo sirve para tu jogging, que tiene una capacidad limitada para generar pulsos y que la estas sobrepasando al meter varios motores.
Esa es la explicación de por que cambia la velocidad cuando metes más de un motor; simplemente tu jogging se colapsa y envía los pulsos con retraso.
Las matemáticas son relativamente sencillas si tu controlador tienen una capacidad de generar 20.000 pulsos en un segundo no le pidas que genere 30.000 en un segundo, necesitara 1,5seg. Con otra controladora mejor los motores trabajarían mejor.
Por este motivo en las tj profesionales se indica la capacidad que tienen para generar pulsos por canal o en conjunto, esta característica es del orden de las centenas de KHz y tiene un peso importante en el precio.
Gracias por tu comentario.En cuanto pueda lo repaso.