La comunicación serial de Arduino falla al detener / cargar un motor de CC controlado por PWM

3

Estoy usando el siguiente circuito (de enlace ) para controlar la velocidad de un motor de 6V DC alimentado por una fuente de alimentación separada:

Cuando coloco una carga pesada en el motor o la detengo, falla la comunicación en serie entre mi Arduino Uno y mi PC (a través de USB). Los datos se detienen y necesito desconectar el Uno, cerrar el IDE, volver a conectarlo y luego iniciar el IDE para recuperar el enlace.

No estoy seguro si esto es un problema de conexión a tierra (me aseguré de que todas las conexiones a tierra vayan al mismo riel), un problema de carga (aunque el Uno y el motor tengan fuentes de alimentación separadas) o un problema de retroceso.

Cualquier ayuda sería apreciada.

Gracias,

-Rob

    
pregunta RobertoMPerez

4 respuestas

3

Creo que el problema es el tablero sin soldadura. Las conexiones del motor tomarán mucha corriente, lo que no es adecuado para los contactos de resorte en la placa de pruebas, e introduce ruido en el suministro de Arduino a través de la conexión a tierra común cuando el motor se detiene. El motor podría estar tomando 1 A o menos en condiciones de carga pesada o parada y esas placas de prueba sin soldadura solo están clasificadas para algunos mA, IIRC. Conecte el circuito correctamente en una PCB o una tarjeta de prototipos, con una conexión a tierra de un solo punto, y su problema probablemente desaparecerá. O bien, evite detener el motor y someterlo a una carga pesada.

Puede controlar la corriente del motor con una resistencia de detección y una entrada ADC en el Arduino, apagar el variador cuando la corriente sea excesiva y encender un LED para indicar una condición de falla.

    
respondido por el Leon Heller
2

Parece que podría ser un problema de fondo de algún tipo. ¿Cuáles son sus fuentes de alimentación y cómo están conectadas? ¿Hiciste el circuito en un tablero como la imagen en el enlace?

Cuando carga o detiene el motor en gran medida, pasará una corriente significativa. Suponiendo que lo haya construido como en la imagen, una gran corriente en el cable de retorno de potencia de su motor podría hacer que el riel (-) de la placa de pruebas subiera. Si el motor p.s. se hace referencia de nuevo a la tierra de la PC (¡tenga cuidado con el 'sneak path'!), esto podría hacer que los niveles de voltaje aparentes en la interfaz USB queden fuera de especificaciones. Incluso podría obtener algún tipo de efecto de enclavamiento que requeriría la eliminación de energía.

Si su motor p.s. no es una batería, puede intentar usar una batería y ver si la condición persiste.

    
respondido por el JustJeff
1

Agregué un capacitor de 0.1 µF a través de los cables del motor y un condensador de 470µF a través de los rieles de alimentación y tierra en la placa de pruebas, justo al lado del punto de inserción del cable de masa del Uno. Ya no pierdo la comunicación en serie con el Uno cuando el motor está bajo carga o se detiene.

Estaba a punto de construir un circuito aislador para desacoplar completamente el lado del motor del lado Arduino / PC, utilizando un ADUM1402 (http://www.analog.com/en/interface/digital-isolators/adum1402 /products/product.html), pero me di cuenta de que no podía ser la única solución. Investigué un poco más y descubrí que es una buena práctica filtrar el ruido y los picos de los motores de CC mediante el uso de condensadores como se muestra en enlace y en muchos otros sitios. Una muestra deslumbrante de ignorancia por mi parte, pero ahora sé mejor.

No estoy seguro de cómo (es decir, cuál es la teoría subyacente) esto soluciona el problema, porque todavía no estoy seguro de cuál fue la causa del problema. Si alguien puede arrojar algo de luz sobre esto, estaría agradecido. No me gusta hacer cosas sin tener y entender por qué las hago. Seguiré leyendo hasta que descubra cómo esto realmente arregla las cosas.

En cualquier caso, ¡gracias a todos los que intentaron ayudar!

    
respondido por el RobertoMPerez
0

Tengo un Makerbot: una de las placas controla un motor de CC y también tiene una entrada de termistor. Estaba viendo problemas similares. Se resolvieron mediante

1) separando los cables uno del otro 2) dejando caer una tapa de 100nF sobre la entrada analógica 3) poner una cuenta de ferrita en ese cable de entrada

También me preocuparía por los motivos: ¿están los motivos conectados en otro lugar? (un bucle de tierra)

    
respondido por el Taniwha

Lea otras preguntas en las etiquetas