Compartiendo la misma batería con dos motores de corriente continua y dos servos

Tengo una batería de 12v que alimenta dos motores de CC a través de un Arduino y un controlador de motor. La batería de 12v también alimenta el Arduino usando el pin VIN.

Ahora estoy tratando de conectar dos servomotores del mismo Arduino. Las fuentes de alimentación del servo están conectadas entre sí y van al pin de 5v del Arduino. Los terrenos también están juntos y van al pin de tierra de Arduino. Ambos servos tienen un capacitor de 100uf entre su positivo y tierra.

Hay tres tierras provenientes del microcontrolador, una de ellas la fuente de alimentación y otras dos a los controladores de motor.

Cuando tengo todos los terrenos que van a los pines de tierra de Arduino, los motores de CC se encienden durante aproximadamente 5 segundos y luego se apagan una y otra vez. Parece que el Arduino podría estar encendiéndose y apagándose. Pero pensé que tal vez tenía algo que ver con los condensadores que interfieren con los motores de CC ya que todos comparten tierra. Ni siquiera lo sé.

Entonces, cuando elimino el suelo, proveniente de los servos, del Arduino, los motores de CC funcionan bien.

¿Es posible compartir la misma fuente de batería para los servos y ambos motores de CC? ¿Alguien sabe lo que está pasando aquí?

Respuestas (2)

No es probable que los condensadores que colocas en los servos tengan mucho que ver con eso, lo más probable es que solo interfieran en el arranque, si se enciende bien cada vez que comiences a hacer algo, no te preocupes por ellos.

Aunque es posible que desee convertirlos en 3x 10uF o 2x 22uF, ya que los condensadores más pequeños en paralelo son igual de buenos en los picos de corriente, dibuje un pico de arranque más pequeño. No está tratando de suavizar nada, por lo que una capacitancia muy grande es excesiva, solo están ahí para ayudar a que el servo arranque, cuando tiene mucha energía.

Podría agregar una resistencia de bajo valor, así:

esquemático

simular este circuito : esquema creado con CircuitLab

Dependiendo del consumo de corriente de estado estable de los servos, puede modificar un poco la resistencia, durante el funcionamiento normal no deberían caer más de 0,5 V, y considere una carga más pesada cuando calcule la potencia de la resistencia. Por ejemplo, si lo modela para 100mA, puede hacer que sea de 5 ohmios, luego 0.5V caerá normalmente. Pero, si luego se detiene o tiene más trabajo por hacer, podría consumir 250 mA o más. Con 250 mA, el voltaje en la resistencia sería de 1,25 V. Entonces, la potencia sería de 1,25 V * 0,25 A = 0,3125 W, por lo que debe elegir una resistencia de 0,5 W para mantenerse seguro.

De hecho, la caída del voltaje cuando quiere tener más hambre de la que debería, también ayudará a reducir el riesgo allí, evitando que consuma tanto que el regulador de voltaje del Arduino se derrita. (Ya que el punto que sucede depende del Arduino y qué regulador usaron en él y cómo lo montaron). Debido a que al voltaje más bajo que obtiene el servo, consumirá un poco menos de corriente cuando se detenga, por lo que esto se equilibra con un menor consumo de corriente en caso de falla.

El mismo efecto es lo que evita que los pulsos pesados ​​de energía causen problemas al Arduino, cuando el servo arranca, consume una corriente alta, pero la resistencia hace que sea más difícil extraerla directamente del Arduino, por lo que primero comenzará a consumir algo de energía. los capacitores, hasta que caigan a un voltaje lo suficientemente bajo como para que la resistencia se haga cargo de la fuente de corriente.

Un inductor también sería una solución, pero modelarlos correctamente requiere más conocimiento de los picos y su duración, donde las matemáticas alrededor de una resistencia son bastante simples, por lo que comenzaría con la resistencia. Si ayuda pero no lo suficiente, puede agregar una inductancia de tan solo 2.2uH, pero hasta 100uH, clasificada para su corriente de bloqueo para ver si eso ayuda, solo en serie con la misma resistencia o un valor ligeramente menor. (3,3 ohmios en lugar de 5 ohmios ya sería una reducción más que suficiente).


Lo que probablemente sea el problema es que estás poniendo todo el poder a través del Arduino. Eso hace que el ruido de los servos y los motores de CC se acoplen a través de la placa e induzcan todo tipo de basura en el sistema allí.

Lo mejor es conectar los servos completamente al Arduino, ya que ahí se generan los 5V, la ruta de retorno es mejor pasarla también por el Arduino, para no hacer grandes bucles que puedan crear sus propios problemas. Pero conecte las tierras de los motores de CC a la batería directamente.

Gregory se refiere a él como "tierra estelar", este es un término comercial para conectar todas las rutas de retorno de energía en un solo lugar, generalmente lo más cerca posible de la fuente de alimentación. En este caso, debido a que desea que Arduino suministre los 5 V, es mejor mantener los servos fuera de su diseño de estrella.

Para explicar por qué desea que los motores estén conectados directamente a la batería, aquí hay algunos chismes e imágenes:

esquemático

simular este circuito

Mientras dibujo, el sistema dentro del Arduino no es perfecto, por lo que el suelo tendrá cierta resistencia. Ningún tablero es perfecto en ese sentido, no puede serlo, tales son las reglas de la naturaleza. (Aunque, un par de Arduinos que he tenido podrían haberlo hecho mejor, pero ese es un tema para otro hilo).

Entonces, si pasa corriente a través del sistema de tierra, creará una caída de voltaje a lo largo de las huellas en el tablero, representada por las cuatro resistencias. Esta diferencia de voltaje también será vista por el circuito interno. En realidad, el problema podría ser aún peor, porque no solo hay resistencia, también hay inductancia, lo que hará que la caída de voltaje del ruido de frecuencia media a alta sea mucho peor que solo la resistencia.

Entonces, si ahora coloca 1A adicional para los motores de CC a través de ese rastro, aumentará el voltaje de la tierra, en diferentes grados en todos los ámbitos. Eso significa que las cosas internas verán diferentes voltajes de suministro, con respecto a su contacto con tierra. Tal como lo dibujé, el aumento de voltaje no será demasiado grande con 1A CC, pero es posible que esas resistencias simbólicas sean más grandes.

Sin embargo, lo que realmente sucede es que los motores de CC crean picos y ruido porque sus escobillas conectan y desconectan bobinas todo el tiempo, ese voltaje de ondulación está en un lado conectado directamente a la batería, que presumiblemente tiene suficiente energía para mantener ese lado en un razonablemente constante 12V. Entonces, ¿a dónde van esas ondas? ¡Ay! ¡Ey! Hay una pista de tierra que tiene mucha más resistencia (e inductancia como se mencionó antes) que los cables entre la batería y el motor: Tada, ahí es donde van. La mayoría de la ondulación de 50 Hz ~ 500 Hz (o superior, según el número de bobinas y la velocidad de rotación) de sus motores de CC entra en el sistema de tierra de Arduino: ¡Malo!

Ahora, puede agregar filtrado, todo tipo de esquemas elegantes, pero la mejor regla para aplicar es: cualquier cosa alimentada por Arduino también vuelve a la tierra de Arduino y, si eso causa problemas, agrega algunas resistencias, capacitancia y/o inductancias para filtrar sacar lo peor. Todo lo que funciona con un voltaje no creado en el Arduino, especialmente los voltajes más altos, no tiene una ruta de tierra dentro del Arduino.

Y no sobrecargues los 5V del Arduino. Si sus servos toman más de 100 mA a 200 mA, estoy dispuesto a apostar que al regulador de su Arduino no le gusta eso, lo mejor es comprar un LM7805 y un disipador de calor pequeño y alimentarlos por separado también. Pero allí, aún querrá que la tierra del servo se acople de nuevo al Arduino, o su señal PWM que los controla tendrá que pasar por aros (literalmente) para obtener una ruta de retorno. Eso es un poco molesto de decir, si no quiere profundizar mucho en la electrónica desde el principio, pero las corrientes operativas más pequeñas y el hecho de que están filtradas internamente deberían ayudar, por lo que no debería ser un gran problema.

Nota:

Sé que simplifiqué y corté algunas esquinas, pero debería ser lo más simple posible, viendo la pregunta y los comentarios curiosos en otros lugares.

Sin embargo, si ve un error o error, presente una queja.

¡Gracias! Sin duda me has abierto las puertas a cosas nuevas que necesito aprender. Probaré esto en un momento y le haré saber si funciona, pero la primera pregunta, ¿por qué la resistencia de 1 ohmio para los servos y me haría daño dejar los condensadores de 100 uf que estoy usando ahora? Preferiría no desoldar e intentarlo de nuevo, parece que están bien. El kit Arduino de inicio es el que me enseñó eso.
@MichaelRader Un solo 100uF debería estar bien en la mayoría de los casos. La resistencia se explica en la publicación: si la coloca, limitará la cantidad de inmersión de alto drenaje que obtiene en el VCC principal de Arduino y también protegerá automáticamente contra grandes problemas cuando uno se detiene. Todavía podría ser un pequeño problema, pero no enorme :-D.
Devolví los terrenos a la tierra de la batería en lugar del Arduino, pero sigo teniendo el mismo problema. Los motores de CC se encienden y apagan. La luz verde que no es Arduino se enciende y luego se apaga una y otra vez sin importar dónde corra el terreno.
@MichaelRader El siguiente paso es probar la alimentación de los servos externamente. Podría ser que le estés exigiendo demasiado al regulador de voltaje interno de Arduino. No tengo detalles sobre los servos que está utilizando, por lo que si no se trata de retroalimentación de tierra, podría ser que los 5V se hayan drenado en exceso. Pruébelo con un adaptador externo, fuente de alimentación o con un chip 7805 separado. Sin embargo, vigile el calor del chip, si no lo está montando en nada con un poco de pasta térmica.
@MichaelRader Siéntete libre de avisarme si no funciona. Tal vez por mensaje directo, si es interesante para la totalidad del problema, ambos podemos editar nuestras publicaciones en consecuencia, mantiene la cadena de comentarios un poco recortada.
@Asmldof No estoy exactamente seguro de por qué, pero ahora está funcionando. Sin embargo, si descubrí que uno de mis pines Arduino estaba defectuoso. ¿Quizás comenzó a funcionar después de usar un pin nuevo? Realmente no estoy seguro. Aunque gracias

Es posible, pero se necesita un diseño cuidadoso de la tierra y la potencia. Un uso de capacidad suficiente en cada controlador.

Comience con una conexión en estrella de alimentación y tierra con el centro en la batería. No hay conexiones gbd o 9ower en ningún otro punto. Asegúrese de que los cables sean lo suficientemente gruesos.

Su mayor problema será lidiar con los pulsos actuales. Por lo tanto, debe omitir el dispositivo rach con un condensador lo suficientemente grande, idealmente con un filtro de entrada.

También debe asegurarse de que su batería pueda proporcionar suficiente corriente para todas las cargas juntas. Suponga que los capacitores toman pulsos, así que simplemente sume todas las corrientes de CC.

Buena suerte, mantennos informados.

Lo siento, eso no ayudó en absoluto. Ni siquiera entiendo lo que estás diciendo. "Comenzar con conexión en estrella" ? "No gbd o 9ower"?
Sí GND y alimentación, pero conectados cada uno en un único punto a la batería. Y de nuevo, vea que tiene suficientes tapas para pulsos de corriente y que la batería puede proporcionar corriente continua total