Processing math: 100%

4 votos

¿Cómo puedo averiguar lo que está mal con mi configuración de un motor paso a paso bipolar utilizando el controlador L293DNE conectado a Arduino?

Utilizando esta hoja a un Arduino Uno Estoy tratando de conducir un motor paso a paso bipolar. He sacado todas las conexiones 6 veces y he vuelto a intentarlo, pero aún así el stepper sólo hace una extraña vibración cuando está conectado y cargo el esquema. He comprobado el emparejamiento de las conexiones con un polímetro, así que sé que ese no es el problema, pero en algún punto de la conexión debo haber estropeado algo. Si puede servir de ayuda he subido unas capturas de pantalla de mi configuración en la parte inferior del post. No pido que las observen a fondo para encontrar mi error, sólo por si quieren echar un vistazo rápido para comprobar si hay algún error evidente.

Ficha técnica del motor paso a paso Especificaciones del motor paso a paso

Cualquier consejo sobre errores comunes al conectar steppers con este tipo de driver a Arduino también es útil. O cualquier otro error de novato.

El esquema de subida a Arduino lo he copiado de esta página: http://www.tigoe.com/pcomp/code/circuits/motors/stepper-motors/

También he probado a utilizar sólo el estándar Biblioteca Stepper.h de Arduino.cc y cambié los valores usando dos pines. El mismo resultado, solo vibraciones aleatorias del stepper.

Esquema: enter image description here

Antes de conectar los cables de arranque: enter image description here

Conexión de transistores NPN: enter image description here

Todas las conexiones hechas: (aquí he conectado el jack que va a la batería justo a la fuente de alimentación de los 5v en el Arduino, he probado con una fuente de alimentación de 12v, que da el mismo resultado) enter image description here

No sé si es útil, pero puedo proporcionar más imágenes.

6voto

user25828 Puntos 1

Tengo muchos años de experiencia con circuitos de accionamiento de motores paso a paso y no hay nada básicamente malo en el esquema que has proporcionado. Coincide con los requisitos de la hoja de datos. El hecho de que el motor zumbe también indica que tienes alimentación para el driver, tienes señales lógicas conectadas al driver y el driver conectado al motor.

Para encontrar el fallo de este circuito necesitarás un multímetro, un par de pequeños LEDs y un par de resistencias (de 330R a 680R).

En primer lugar, comprueba las fuentes de alimentación:

  1. Comprueba que todas las conexiones Gnd están conectadas entre sí: el Gnd de tu Arduino, el Gnd de la alimentación de +5V del driver y el Gnd de la alimentación de +12V del motor. Si no es así, nada se va a comportar como esperas.

  2. Con todo conectado y alimentado, utiliza el multímetro para comprobar que tienes entre 4,5V y 5,5V entre el pin 16 y Gnd, y entre 10V y 15V entre el pin 8 y Gnd. Si no es así, tienes que corregir esto primero.

Conecta cada LED en serie con una de las resistencias. Luego conecta una combinación LED-resistencia entre +5V y el pin 7, y la otra entre +5V y el pin 10. (Puedes comprobar que el LED está en el sentido correcto conectando tu alimentación de 5V y conectando la resistencia LED entre +5V y Gnd). Tus transistores NPN inversores encenderán estos LEDs al mismo tiempo que tiran de los pines del driver invertido hacia abajo, así que puedes ver con precisión lo que está pasando con tus señales de accionamiento.

Ahora, modifica el código de tu Arduino para que funcione a una velocidad de paso lenta, algo así como 1 paso por segundo será perfecto, y observa los LEDs. Si tu código es correcto, y el Arduino está correctamente conectado al circuito, deberías observar lo siguiente:

  1. Cada LED debe encenderse y apagarse cada 2 segundos, (4 pasos para que cada LED complete su ciclo). Si alguno de los LEDs no parpadea, compruebe que los LEDs están correctamente conectados y que el Arduino está correctamente conectado al circuito.

  2. Cada LED debe estar encendido la mitad del tiempo, 2 pasos de encendido y dos pasos de apagado. Si este no es el caso, revise su código Arduino.

  3. Sólo un LED debe cambiar de estado en cada paso. Si ambos cambian a la vez, 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 de la posición de retención a la posición de energía, (menos de medio paso) y de vuelta. Si este es el caso, vuelve a mirar el código de tu Arduino, tienes un problema de software, no de circuito.

  4. Si los LEDs parpadean en ciclos de 4 estados, según lo anterior, entonces las señales de accionamiento son correctas. Ahora debes centrarte en el enlace conductor-motor.

  5. Desconecte las conexiones del motor a los pines 3 y 6 y mida la resistencia del bobinado del motor con un multímetro. Debe ser un valor entre 25 y 50 ohmios. Si no es así, no tienes el motor que crees que tienes, o si la resistencia es muy alta (o circuito abierto), entonces a pesar de tu comprobación el motor no está cableado correctamente. En este caso, desconecta los otros dos cables y busca un par que sí midan la resistencia correcta entre ellos y conéctalos a los pines 3 y 6, y los otros dos a los 10 y 15.

  6. Si los cables del motor a los pines 3 y 6 tienen la resistencia correcta, vuelva a conectarlos y compruebe lo mismo con los cables entre los pines 10 y 15. Si un par es correcto, pero el otro no, entonces tienes un motor defectuoso y no girará bajo control.

Si todo lo anterior está bien, pero el circuito sigue sin funcionar, entonces has agotado mi imaginación. Por favor, hágame saber lo que usted encuentra y voy a hacer mi mejor esfuerzo para ayudar más.

Al final, cuando todo funcione, quita las combinaciones de LEDs y resistencias, sólo eran ayudas para el diagnóstico. Hay algunas pequeñas mejoras en el circuito que yo haría:

  1. Disminuir las resistencias de pullup de salida del inversor a algo así como 2k7, (ya que con la máxima corriente de entrada especificada, podrías estar dejando caer un voltio allí); y

  2. Añade unos buenos condensadores de desacoplamiento al IC del driver, (100nF de cerámica entre los pines 16 y Gnd, y algo más de 100uF a no menos de 50V entre el pin 8 y Gnd.

Esto mantendrá las cosas bonitas y ordenadas, y más resistentes a las interferencias y a los cambios de temperatura, pero no hacerlo NO es tu problema.

Por último, no hagas funcionar este circuito con una alimentación de motor superior a 18V. Los diseños originales de silicio de esta familia de controladores eran propensos a fallar si se pensaba en el voltaje del motor por encima de su máximo de 36V. Y mucha gente se ha quedado sin poder hacerlo cuando se manejan cargas inerciales que hacen que los motores regeneren energía en la alimentación del motor, elevando momentáneamente la tensión de alimentación y haciendo explotar el driver. La tensión máxima regenerada es igual a la tensión de alimentación, así que manténgala por debajo de los 18V y no podrá matar al driver por la regeneración.

Mucha suerte.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X