Cita Iniciado por MVS Ver Mensaje
Hola Kreutz, se que ya habeis comentado esto mismo en otro post pero no consigo entenderlo, tambien he leido todo el código y esto es lo que no entiendo:
Estoy realizando una tarjeta basada en el A3986 (que tu conoces también....) y si pongo 1/16 micropaso y comienzo a enviar pulsos de forma individual necesito 16 pulsos para dar un paso completo ¿no es así?
¿Que pasa en vuestro diseño si pongo por ejemplo 1/8 paso y envio 8 pulsos a la entrada? Entiendo que debe dar un paso completo.
¿Que pasaria si envio 5 y giro al contrario?
La única forma que entiendo que puede funcionar es que cuando envias un pulso a la entrada el motor da siempre un paso completo, lo que cambia es la forma en como lo da, es decir, el microcontrolador genera los micropasos necesarios segun como se haya configurado pero siempre que envio un pulso a la entrada doy un paso completo, ¿es así?. La verdad es que es dificil explicar esto con texto....

Tengo un Gecko G203v y he probado con el Kcam (por que tiene esta función) a ir enviando pulsos a mano (con cada pulsación en el mouse envia un pulso) y para girar una revolución en un motor de 200 pasos he necesitado 500 pulsaciones. Esto tampoco me coincide con lo que marca el fabricante de 1/5 micropaso en baja velocidad,(200 pasos del motor X 5 micropasos=1000) ¿que estoy haciendo mal? Lo mismo que en tu caso, ¿como realizan el cambio de modo a alta velocidad sin perder pasos?
Seguro que estoy perdiendo algún concepto básico......
Gracias de antemano y un saludo
Un motor de 200 pasos por revolucion tiene 50 pares de polos, un "full step" te llevaria de un polo al otro, o sea, una revolucion electrica (360 grados), el motor tiene 200 pasos porque toma una secuencia de 4 pasos para ir de un polo al otro, es decir, un "full Step" necesita 4 pasos (90 grados por paso).

Cuando tu aplicas "micro-step" lo unico que haces diferente es regular la corriente que circula por los enrollados de forma de obtener una forma sinusoidal en lugar de los pulsos cuadrados de corriente que generaria la secuencia normal. (en realidad no son completamente cuadrados porque la corriente en la inductancia del enrollado sube linealmente con el tiempo)

Es decir, la secuencia de conmutacion de corriente por los enrollados es exactamente la misma que en "Full step" pero la corriente es limitada siguiendo una aproximacion sinusoidal. Cada microstep produce solo un cambio de la corriente y no una conmutacion de enrollados, la conmutacion se realiza solo en los cruces por cero de la sinusoide.

Siguiendo este razonamiento: 1/5 microstep daria 5 microsteps por cada paso, o 20 microsteps por cada Full Step (=5 x 4) 50 full steps x 20 microsteps = 1000 micro-steps por revolucion del rotor.

En mi caso, yo solo cambio la forma de onda de corriente pero la secuencia de pulsos sigue siendo la misma. El cambio se realiza en los cruces por cero de la fase A y el micro-controlador sigue contando la cantidad de microsteps necesarios antes de incrementar o decrementar la secuencia de conmutacion de los enrollados.

Por ejemplo: yo parto de cero y voy a usar 1/10 microstep comienzo a contar hacia delante y el primer cambio de enrollado (conmutacion de los mosfets) se realiza en el decimo conteo. Ahora continuo contando pero en el quinceavo micro paso decido cambiar la direccion, entonces cuento hacia atras (14, 13, 12...) y cuando llego al decimo vuelvo a la secuencia que tenia anteriormente.

Durante ese tiempo en cada paso yo regulo la corriente a un valor diferente siguiendo una tabla de valores sinusoidales (90 grados /10 microstep = 9 grados por microstep, entonces mi tabla consiste en los valores: Seno(0), Seno(9), Seno(18), etc. En la otra fase los valores para cada paso serian: Coseno(0), Coseno(9), Coseno(18), etc.

Esos valores me producen un voltaje de referencia que cambia sinusoidalmente con cada paso. Al ir hacia atras solo cambio el valor de corriente por el valor anterior en lugar del siguiente en la secuencia, por lo que efectivamente no existe un cambio brusco de torque al invertir el giro (el torque es proporcional a la corriente)

Hace un tiempo publique en este "thread" una tabla con los graficos correspondientes para todos los valores de microstep hasta 1/16 incluyendo 1/5 y 1/10. y los valores de referencia correspondientes.

En cuanto al cambio de forma de onda solo es un cambio de tabla con diferentes valores de referencia para cada paso.

Ahora bien, no se por que, en tu caso, tu motor dio una vuelta completa con 500 pulsos a 1/5 microstep. Solo debio haber dado media vuelta.

Me parece un poco extensa la respuesta y no se si quedo claro el concepto sin la ayuda de los graficos.