¿Motor paso a paso que causa el apagón de Arduino?

Estoy tratando de construir lo que equivale a una máquina CNC de un solo eje que funciona con un sistema eléctrico de tipo automotriz de 12v. Aquí hay una descripción básica de la construcción:

  • arduino uno
  • Solo para probar, estoy usando una fuente de alimentación conmutada regulada de 12v dc 30A conectada a 110v ac.
  • También solo para probar, estoy usando un paso a paso Nema 24 de 426 oz-in. El paso a paso real será más grande. Este es 2.8A cableado en paralelo.
  • Convertidor elevador de 600w para aumentar 12v a 36v para entrada en el controlador del motor.
  • Módulo de fuente de alimentación de 9v entre fuente de 12v y Arduino.
  • Controlador de motor Geckodrive G201x configurado en 3A.

La máquina funciona bien cuando alimenta mi Arduino con una fuente separada del motor paso a paso. Pero parece apagarse cuando todos están conectados a la misma fuente de alimentación. Desafortunadamente, solo tengo una única fuente de poder.

Originalmente pensé que estaba recibiendo algún tipo de pico de voltaje. El sistema automotriz podría producir esto (y yo estaba probando ese sistema en ese momento). Por eso pensé en poner el módulo de 9v allí. Creo que lo necesito de todos modos, pero no parece haber solucionado este problema.

Luego me dieron una sugerencia para optoaislar el motor. Por lo mejor que pude ver, necesitaba colocar el optoaislador entre el Arduino y el controlador. Puse uno entre el paso/dirección y los pines apropiados en el Arduino y encendí el aislador con una fuente de alimentación de 5v. Eso tampoco funciona.

Si desconecto el motor, pero dejo el suministro de 600w y el controlador del motor conectados, no veo las caídas de tensión. Mi instinto me dice que el motor paso a paso consume demasiada energía y provoca un apagón. Según tengo entendido, podría poner un diodo y un condensador entre el Arduino y la fuente de alimentación. ¿Pero no es mi fuente de alimentación lo suficientemente potente como para no necesitar esto? Debería estar usando aproximadamente 100w de potencia, ¿correcto? Según tengo entendido, el motor puede usar más que esto al arrancar, pero ¿realmente usaría mucho más?

Editar:

Intenté usar el esquema de capacitores de 47uF y .1uF aquí entre mi suministro de 9v y el Arduino. No pareció ayudar. Puse mi multímetro en las entradas del Arduino y jugué con el sistema hasta que hizo algunas cosas locas (por lo general, distorsionará la salida a una pantalla LCD que he conectado). No noté ningún cambio en el voltaje, aunque supongo que podría ser solo un pequeño pico que el medidor no detectó.

Creo que ayudaría si dibujara un esquema del sistema. ¿Quizás entonces alguien pueda señalar algo?

Editar: Aquí hay un esquema. Perdón por la mala calidad. Ojalá sea legible. Traté de incluir todo en mi proyecto, pero asumo que los botones, el interruptor de palanca, el codificador rotatorio y la pantalla LCD no son la causa.Esquemático

¿Puede confirmar que en realidad se trata de un apagón con un osciloscopio o incluso con un multímetro rápido? Si se trata de una situación de caída de tensión, debería poder observar la caída del voltaje de salida de 9 V. Además, ¿qué tipo de suministro es su módulo de 9V? ¿Es un regulador de tipo lineal o de conmutación?
Tengo acceso a un osciloscopio, así que lo intentaré. Aquí hay un enlace a la fuente de alimentación que estoy usando para el Arduino.
Un esquema definitivamente ayudaría. Tenga en cuenta que las entradas de Geckodrive ya están ópticamente aisladas (según el manual aquí: geckodrive.com/g201x-g210x-rev-6 ). La unidad no debería extraer más de 2,5 mA del arduino. ¿Tiene una resistencia entre el pin Arduino y la entrada gecko? No estoy seguro de cuánta corriente tiraría el gecko sin él. En general, los optoaisladores usan un LED infrarrojo, por lo que debe conectar el Arduino como si estuviera manejando un LED y limitar la corriente en el pin de salida.
Tenía la sensación de que ya estaba optoaislado, pero estaba trabajando en una sugerencia de otra persona. Sin resistencia. El optoaislador que puse allí no parece funcionar y tal vez sea por eso. De todos modos, todavía no evita que mi arduino se congele. El esquema llegará pronto...
Los 12V caen demasiado, lo que hace que la línea de 9V caiga demasiado, lo que apaga el regulador de 5V en el arduino, lo que provoca un apagón. Hay algo llamado 'regulación de carga y línea' que es la capacidad de una fuente de alimentación para mantener la salida igual bajo grandes cambios en la carga o la 'línea' de entrada. Creo que tienes un efecto dominó. Mucha capacitancia y un diodo schottky de caída de voltaje directo bajo que alguien más ya ha sugerido ayudará. Por lotes, me refiero a muchos cientos de microfaradios, tal vez incluso milifaradios.
No estoy tan versado en electrónica como me gustaría, así que esta puede ser una pregunta estúpida... Pero, ¿puedo usar un capacitor como el que se usa en los sistemas de audio de los automóviles? Por ejemplo, estoy viendo esto que supongo que podría permitir que Arduino funcione durante mucho tiempo. ¿O hay alguna razón por la que no funcionaría?

Respuestas (2)

Existe una gran variabilidad cuando se observan cambios de alta velocidad en el consumo de energía. No es tan fácil como pensar en lo que podría pasar en DC. Algunos de los problemas pueden basarse en la longitud y el tamaño de los cables conductores, así como en la configuración del enrutamiento de energía. Esto se aplica tanto al cableado como al enrutamiento de PCB de un sistema de energía.

Es posible que tenga un pulso de demanda de energía lo suficientemente rápido como para pensar en el bus de energía como una línea de transmisión, en lugar de un elemento de circuito agrupado. La inductancia de su cable de suministro de energía resistirá el flujo de corriente lo suficiente como para hacer caer el voltaje en una cantidad significativa al final de la línea de transmisión. Entonces, en esta situación, un diodo y un capacitor pueden resolver el problema manteniendo alto el voltaje de Arduino hasta que la corriente pueda bajar por el cable para satisfacer la necesidad.

Es una buena idea aislar los circuitos de control y de variación de demanda de alta potencia. Esto no tiene que ser tanto como una fuente de alimentación separada, pero podría significar simplemente no compartir largos tramos de cableado de la fuente de alimentación, antes de conectarse entre sí.

Probaré el condensador y el diodo. Gracias por la sugerencia.
+1 para ejecutar cables separados a la fuente de alimentación para el motor y arduino.

Su mitigación dependerá de la causa real, que probablemente sea una de las siguientes:

  • Caída de suministro en el 12 como resultado del consumo del motor, lo que hace que su suministro de arduino caiga por debajo de un nivel aceptable
  • Picos en el 12 debido al flyback que lo hace aguas arriba del controlador del motor, lo que hace que la salida del regulador barato 12-> 9 se comporte mal
  • Picos en la red GND (nuevamente como resultado del retroceso del motor) que causan uno de los problemas anteriores

Debe confirmar la causa real de su problema usando un osciloscopio antes de implementar una solución.

Soluciones que puede probar:

  • Más capacitancia de entrada en su convertidor 12-> 9 (esto puede ayudar si se cae en el 12)
  • Más capacitancia de entrada en su arduino (esto puede ayudar si se cae en el 12, o si el regulador se vuelve inestable debido a una perturbación en la entrada de 12V)
  • Use un diodo TVS en la entrada de su regulador para suprimir las perturbaciones en los 12V
  • Cambiar el regulador por uno que proporcione aislamiento, o un regulador lineal, que debería responder mejor a las perturbaciones en la entrada, siempre que sea estable y tenga suficiente capacidad de entrada/salida.
Según el manual, las entradas del Gecko Driver están ópticamente aisladas. Como tal, no veo cómo algo en el lado del motor del controlador podría influir en el arduino en el escenario en el que no comparten la misma fuente de alimentación, a menos que haya algún acoplamiento capacitivo/inductivo/RF. Es posible que desee agregar algo de supresión de RF en el lado del motor: geckodrive.com/rf-interference