Problema con perdida de pasos NEMA 17 con POLOLU 8825

Bs Ts amigos. Mi nombre es Ricardo, soy de Argentina, estoy armando una CNC con motores NEMA 1 de 17 y 2 de 23.
Estoy dando mis primeros pasos en gral. con Arduino, hice varias pruebas/proyectos menores para familiarizarme con la programacion etc. fui programador asembler del 8085 y programe tb con C++.
Hecha la presentación mínima pero creo que suficiente, les pido por favor si me pueden orientar con mi problema.

Tengo una rutina que bajé de : Control de motor paso a paso con Arduino y pololu A4988 - YoMaker que usando un 8825 sólo pretendí dando mis primeros pasos con el motor PAP ajustar y probar el funcionamiento.

La rutina es la sig :

const int dirPin = 8;
const int stepPin = 9;

const int steps = 200;
int stepDelay;

void setup() {
// Marcar los pines como salida
pinMode(dirPin, OUTPUT);
pinMode(stepPin, OUTPUT);
}

void loop() {
//Activar una direccion y fijar la velocidad con stepDelay
digitalWrite(dirPin, HIGH);
stepDelay = 5000; //modifique la velocidad a 5000
// Giramos 200 pulsos para hacer una vuelta completa
for (int x = 0; x < 200; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
delay(1000); // lo modifique a 1000

//Cambiamos la direccion
digitalWrite(dirPin, LOW);
stepDelay = 5000; //mofique la velocidad a 5000
// Giramos 200 pulsos para hacer una vuelta
for (int x = 0; x < 200; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
delay(1000);
}

Estoy usandolo con paso completo y el motor es un 1,8 de 5V y 1,68A
Regule la Vref promero midiendo sin carga de motores y luego con el amperimetro en serie sobre el motor para el ajuste mas fino, lo dejé en 1,2A.

Tengo el motor en vacío sobre la mesada de trabajo solo para ver si lo podia "gobernar" en el movimiento.
El tema es que la rutina que bajé venía ya seteada para un stepdelay=200 y solo hacía ruido, no más.
Comencé a subir este tiempo entre flancos del step y llegue a que recién comenzaba a moverse algo el motor cuando lo levanté aprox. stepdelay=800, pero, ahí comenzó a girar pero perdiendo pasos aleatoriamente.
Asi las cosas comencé a subir ese delay y llegue a 2000 valor en que daba giros en un sentido y el otro tal como la rutina lo indicaba sin pérdidas, pero al cabo de unas 10 o 15 giros, comienza nuevamente a perder vueltas.
Seguí subiendo y el tema es que llegue a estos 5000 y mas o menos hace lo mismo que con valores de 2000 ( no cambió nada aumentando este delay ) .
No quiero seguir probando a ciegas, por eso les pido por favor si me pueden ayudar.
Desde ya les agradeceré mucho la misma.

AH, me olvidaba, el motor lo alimento con fuente switch 12v, 5A y el pololu le puse el capacitor de 100uF 63v.

Gracias

Hi,
Una cosa que yo noto es que estas usando motores de paso de 5 voltios pero estas usando una fuente de 12 voltios. O sea que estas alimentando el motor dos veces el voltaje de operacion especificado por el fabricante. Puedes hacer una prueba y es de correr el programa y toca a ver si el driver 8825 se esta calentando. Recuerda que el voltaje minimo del 8825 es de 8.2-V to 45 voltios.

Gracias Edison.
Lo que me dices lo pensé en su momento, pero en el comercio donde me vendieron los drivers y motores me dijeron que no influía pues la corriente sería la que terminaría mandando, es decir, la regulación del driver con el valor de Vref y la corriente pico sería al fin la que determinaría etc etc. ( mismo leí en varios post sobre el tema).

Igual, tengo mis dudas porque siempre el problema me aparece despues de un par de vueltas, alprincipio funciona perfecto, al cabo de 10 o 20 giros comienza a fallar y de ahí, cada vez falla mas hasta que lo debo desconectar.
Me fijé la temperatura, tanto del motor como la del pololu ( disipadador) y están aceptables, al punto que los puedo tocar con el dedo sin problemas...

Estoy desconcertado, llevo mas de un dia entero leyendo y leyendo a ver si encuentro algo, pero nada de nada..
Ya cambié incluso por si era algo por ahí, el driver, pero no se modificó en nada la situación...

Gracias de todas formas, si le encuentro alguna vuelta aviso y mientras tanto espero a ver si a alguién le pasó alguna vez algo así.

Hi,
Bueno pero que tiene que var el voltaje con la corriente pues el voltaje es casi 3 veces el volatje de operacion del motor y estas usando un corriente de 1.2 amperios. Aqui Puedes hacer una prueba y es de anadirle una resistencia en serie de 5 ohmios a cada coil para bajar el voltaje 5 voltios y mira a ver si te trabaja sin problemas. Esta pueba te va decir si el alto voltaje es el problema. Adjunto foto decomo instalar la resistencia. Si quires puedes esperar a ver si alguien tiene una mejor sugerencia

Ya lo pruebo y te comento, gracias !!!

PD: lo de la corriente y la tensión, lo que leí y me dijeron fue que, en realidad, al regular picos de corriente maxima con el driver, lo importante era eso, tener bien regulada la corriente máxima pues por ley de ohm, a tal resistencia de la bobina si se limita bien la corriente max con el driver, la tensión nunca llegará al valor de la fuente, parecía razonable a simple vista, pero por algo consulté a los que saben y no a los que venden =:)

Bueno, finalmente lo corregí sin bajar la tensión del motor.
No sé si se debe pone ni como hacerlo en el titulo de este hilo para avisar.

Era un parámetro mal puesto sobre una variable que media en milisegundos y yo asumí que era en microsegundos ( demasiadas hs de pantalla y código, me mareé... ), modifiqué el parámetro stepdelay a valores mucho menores y salió andando sin problemas.

Igualmente muchisimas gracias Edison, y gracias además por la molestia de dibujar y enviarme la imagen. !!!
Saludos
Ricardo

PD: habia calculado igual que la resistencia esa que me recomendaste deberia disipar mucha potencia ( 5 ohm con una corriente de 1,6A) y habia supuesto que era mas práctico usar un regular de tensión para bajar la alimentación que lo haría mañana, pero no hizo falta igual.

PD2: solo para informacion general, en argentina hoy, este NEMA 17 de alto par me costó $1.300 ( Argentinos), aquí una jubilación mínima es de $9.000.- así que imaginen mi sustito de que el motor este mal o que lo haya dañado... por suerte no sucedió sino se truncaba el proyecto del jubilado =:)

Hi,
Bueno me alegro que hayas resuelto el problema pero todavia tienes el problema del alto voltaje pues los embobinados de los motores van estar energizados con 12 voltios y posiblemente la confiabilidad de los motores a larga pueden danarse. Ojala me equivoque. Una cosa que se me ocurio es la de bajar el voltaje a a lo minimo de 9.5 voltios, El voltaje minimo de los motores es de 8.2 para estar seguro puedes usar uno de 9.5 voltios. Otra solucion seria buscar un driver que tenga un voltaje minimo cerca del voltaje de 5 voltios de los motores.

Lee las normas del foro y edita tu post.
Códigos van con etiquetas.
Enlaces van con etiquetas.