¿cómo puedo entender cuando un motor paso a paso obtiene una ronda completa?

4

Acabo de sacar de una impresora antigua un motor paso a paso y estoy experimentando con ella y con la placa arduino y easydriver . Los motores tienen 4 pines y 8 imanes. Puedo conducirlo correctamente: lo ejecuto y cambio de dirección. pero ahora solo me pregunto cuál es la mejor solución para entender cuándo se completa una ronda.

He hecho un circuito simple: con un botón lo muevo, cuando presiono el botón reinicio de un contador, cuando se presiona el botón el contador se incrementa y luego suelto el botón en el que se guarda el contador. Luego imprimo el contador: más o menos es cerca de 1600. Esto es empírico y por ahora funciona. pero: ¿cómo encontrar un valor preciso?

    
pregunta nkint

2 respuestas

6

Los motores paso a paso generalmente tienen un número razonable de pasos por revolución, 100, 200, 400 son números populares. Entonces, supongo que 1600 es el valor preciso para su motor.

La forma de comprobarlo es simplemente esta:

for (i=0; i<400; i++)
{
    pause_ms(100);

    for (k=0; k<1600; k++)
        take_one_step();
}

Mira lo que pasa. Si el número es exactamente 1600, simplemente verá que el motor gira 360º 400 veces, con una pausa de 0,1 segundos entre cada rotación.

Si el número era realmente 1599, vería que el motor se detiene en un lugar ligeramente diferente cada vez. Y después de 400 revoluciones, terminaría enfrentando 90º desde donde comenzó.

    
respondido por el Rocketmagnet
1

¿El motor no tiene una etiqueta? Debe encontrar una indicación del ángulo del escalón (cuántos grados gira el eje en un escalón completo). Divida 360 por el ángulo de paso y obtendrá los pasos totales por revolución.

Si no hay una etiqueta y no puede encontrar la hoja de datos de su motor, puede medir el ángulo del escalón conectando algún tipo de mano / aguja / puntero al eje. En casi todos los motores paso a paso, puede sentir los pasos, ya que el eje se "bloquea" en cada posición del paso al girarlo manualmente. Entonces, use un transportador para leer el desplazamiento angular en un solo paso, y ya está.

    
respondido por el Axeman

Lea otras preguntas en las etiquetas