Tengo muchos años de experiencia con los circuitos impulsados por motores paso a paso y no hay nada básicamente incorrecto en el esquema que ha proporcionado. Se ajusta a los requisitos de la hoja de datos. El hecho de que el motor zumba también indica que tiene energía para el conductor, que tiene señales lógicas conectadas al conductor y que el conductor está conectado al motor.
Para encontrar fallas en este circuito, necesitará un multímetro, un par de LED pequeños y un par de resistencias (rango 330R a 680R).
Primero, revise las fuentes de alimentación:
-
Verifique que todas las conexiones de Gnd estén conectadas entre sí: su Arduino Gnd, el controlador de alimentación + 5V Gnd y el motor + 12V de alimentación Gnd. Si no, nada va a comportarse como usted espera.
-
Con todo lo que está conectado y encendido, use el multímetro para verificar que tenga 4.5V a 5.5V entre el pin 16 y Gnd, y 10V a 15V entre el pin 8 y Gnd. Si no, necesita corregir esto primero.
Conecte cada LED en serie con uno de los resistores. Luego, conecte una combinación de resistencia de LED entre + 5V y el pin 7, y la otra entre + 5V y el pin 10. (Puede verificar que el LED es el correcto al conectar su suministro de 5V y la resistencia de LED entre + 5V y Gnd). Sus inversores de transistores NPN encenderán estos LED al mismo tiempo que bajan los pines del controlador invertidos para que pueda ver exactamente lo que está pasando con las señales de su unidad.
Ahora, modifique su código Arduino para que se ejecute a un ritmo lento, algo así como 1 paso por segundo será perfecto, y observe los LED. Si su código es correcto y Arduino está correctamente conectado al circuito, debe observar lo siguiente:
-
Cada LED debe encenderse y apagarse cada 2 segundos, (4 pasos para que cada LED complete su ciclo). Si alguno de los LED no parpadea, verifique que los LED estén conectados correctamente y que el Arduino esté conectado correctamente al circuito.
-
Cada LED debe estar encendido durante la mitad del tiempo, 2 pasos encendidos y dos pasos apagados. Si este no es el caso, verifique su código Arduino.
-
Solo un LED debe cambiar el estado de cada paso. Si ambos cambian juntos, ambos encendidos al mismo tiempo, o uno encendido y el otro apagado al mismo tiempo, entonces el motor no tiene información de dirección y no girará. Se moverá alternativamente desde la posición de retén a una posición energizada (menos de medio paso) y retrocederá. Si este es el caso, regresa y mira tu código Arduino, tienes un problema de software, no un problema de circuito.
-
Si los LED parpadean en ciclos de 4 estados, según lo anterior, entonces las señales del variador son correctas. Su enfoque ahora debe cambiar al enlace conductor-motor.
-
Desconecte las conexiones del motor a los pines 3 y 6 y mida la resistencia del devanado del motor con un multímetro. Debe ser un valor entre 25 y 50 ohmios. Si no es así, no tiene el motor que cree que tiene, o si la resistencia es muy alta (o circuito abierto), a pesar de su comprobación, el motor no está correctamente conectado. En este caso, desconecte los otros dos cables y encuentre un par que mida la resistencia correcta entre ellos y conecte esto a los pines 3 y 6, y los otros dos a 10 y 15.
-
Si los cables del motor a los pines 3 y 6 tienen la resistencia correcta, reconéctelos y verifique lo mismo con los cables entre los pines 10 y 15. Si un par es correcto, pero el otro no, entonces tiene un motor defectuoso y no girará bajo control.
Si todo lo anterior está bien, pero el circuito aún no funciona, entonces has agotado mi imaginación. Hazme saber lo que encuentres y haré todo lo posible para ayudarte.
Eventualmente, cuando todo funcione, elimine las combinaciones de resistencia de LED, solo eran ayudas de diagnóstico. Hay algunas pequeñas mejoras en el circuito que haría:
-
Reduzca las resistencias de extracción de salida del inversor a algo así como 2k7, (como en la corriente de entrada máxima especificada, podría estar cayendo un voltio allí); y
-
Agregue algunos buenos condensadores de desacoplamiento al controlador IC (100nF de cerámica entre los pines 16 y Gnd, y algo más de 100uF a una clasificación de no menos de 50 V entre el pin 8 y Gnd.
Esto mantendrá las cosas agradables y ordenadas, y más resistente a las interferencias y los cambios de temperatura, pero no hacerlas NO es tu problema.
Por último, no haga funcionar este circuito con un suministro de motor superior a 18V. Los diseños de silicona originales de esta familia de controladores eran propensos a fallar si incluso pensaba que el voltaje del motor iba por encima de su máximo de 36V. Y muchas personas se han desprendido cuando conducen cargas inerciales que hacen que los motores regeneren la energía en el suministro del motor, lo que aumenta momentáneamente el voltaje de suministro y explota al conductor. La tensión máxima regenerada es igual a la tensión de alimentación, así que manténgala a menos de 18 V y no puede matar al conductor al regenerarse.
¡La mejor de las suertes!