¿Cómo aislar dos señales de tierra?

1

Tengo problemas de conexión a tierra (80% seguro). Tengo un MPU6050 (sensor de giro que funciona con 3.3V) que funciona con el pin 3.3V del Arduino y los pins SCA, SCL, INT se utilizan con el bus I2C del Arduino Uno, que creo que también es el 3.3V, y finalmente el La tierra está conectada a la tierra del Arduino. Todo funciona bien ahora, obtengo valores sin procesar que se procesan en ángulos y finalmente se imprimen en el monitor en serie. Hasta ahora tan bueno. Aquí viene el gran problema, en el momento en que conecto el suelo de una lipo de 12 V al suelo arduino, el MPU6050 deja de responder. Claramente, la batería está produciendo algún tipo de ruido al arduino, estoy usando la lipo para alimentar un controlador de motor (L298) que controla dos motores. Si separo la conexión a tierra (controlador del motor, es decir, la batería) del arduino, los motores no responden, claramente necesitan una conexión a tierra común para trabajar en armonía. ¿Se solucionará este problema agregando un capacitor en serie con la tierra de arduino y el controlador del motor? En caso afirmativo, ¿de qué valor? [He adjuntado el esquema del tablero de Fritzing, no obtengo la parte exacta de la batería, así que acabo de adjuntar una batería aleatoria. La batería que he usado en mi configuración es 11.1V 2200mah]

Y aquí hay un enlace a las especificaciones de mi controlador de motor: Enlace

    
pregunta Rakshith Gb

2 respuestas

2

Primero, el bus I2C del arduino es 5V. No tiene garantías de que funcionará con un dispositivo de 3.3V. Así que ya estabas viviendo en el borde antes de agregar el motor. En el mejor de los casos, el arduino no considera que los 3.3V de la MPU6050 sean altos. En el peor de los casos, el arduino's 5V fríe el MPU6050. Debe usar algún tipo de palanca lógica o, como mínimo, agregar una resistencia de ~ 330 ohmios en serie con el bus I2C para garantizar que cuando el arduino produzca 5 V, los diodos de protección internos del MPU6050 sobrevivan (no me cite sobre eso). sin embargo, la hoja de datos de la MPU6050 no dice nada sobre esto. Por lo que sé, podría ir singularidad cuando muestra VDD + 0.5V a sus pines I2C)

Ahora, asumiendo que no te importa eso, solo quieres que el motor no influya en el resto del circuito: la razón por la que necesitas conectar los terrenos es porque cuando el arduino envía una señal de 5 V, el conductor tiene que Entiendo que es una señal de 5V. Lo hace comparando el voltaje de la señal con su propia referencia (pin GND). Si se desconectan las conexiones a tierra, el voltaje que el conductor "ve" será aleatorio, ya que la conexión a tierra del conductor podría ser, por ejemplo, 2 V por encima de la conexión a tierra, lo que desordena completamente su lógica. El problema es que su motor probablemente está haciendo un gran flujo de corriente a través de esta ruta a tierra, haciendo que aparezcan algunas caídas de voltaje en él.

Las caídas de voltaje en el camino a tierra ocurren en todos los circuitos. El problema es cuando dos componentes se unen a la ruta de tierra en diferentes puntos, lo que hace que "vean" bases diferentes, por lo que no están de acuerdo en los niveles lógicos. Probablemente este sea su problema: la unidad inercial y el arduino ven motivos muy diferentes cuando el motor produce un pulso de corriente, y eso es suficiente para desordenar la lógica.

Podría: (en orden de menos trabajo a más trabajo)

  • Agregue un condensador grande entre los terminales + 12V y GND del conductor para suprimir los pulsos.
  • Suponiendo Agregue los resistores 330R que mencioné anteriormente: deberían hacer que la señal de nivel lógico '1' sea más robusta (debido a la recuperación I2C del arduino. Consulte esto ). Además, más seguro. Estoy asumiendo una resistencia pull-up en la placa del MPU6050.
  • Agregue una resistencia entre los terrenos para que el aumento en uno de ellos no afecte tanto al otro. El problema es que el conductor utiliza el otro terreno, por lo que podría dejar de entender las señales de control del arduino.
  • Conecte la GND de la batería a la GND del USB, de modo que tanto el arduino como la MPU no estén tan separados en la ruta a tierra. Mala idea peligrosa, freirás tu USB, no lo hagas en absoluto.
  • Usa el maldito circuito de cambio lógico.
  • Utilice un controlador optoaislado. De esta manera, no es necesario que se conecte a tierra.
respondido por el FrancoVS
0

@RakshithGb Solucionó su problema, pero Él me pregunta un ejemplo de circuito usando SI8660 .

Debido a problemas de confidencialidad, no puedo publicar el circuito exacto, pero este boceto muestra una aplicación del aislador digital. Es solo una versión simplificada.

ElhistorialdeestecircuitoesquetieneunaIUy,debidoaproblemasdeseguridad,noserecomiendaquelainterfaztengaalgunaconexiónfísica(tierraofuentesdealimentación)conlapartedealimentación(mediopuente).Paraevitarcualquierdañoalosusuarios.

Entonces,lopensamos.¿Cuáleslamejormaneradeaislarelcircuitodebajapotencia(circuitodecontrol)delcircuitodepotencia?

OtroAC/DC fuente de alimentación aislada Se usó como solución. Echa un vistazo al boceto: PGND y GND no están conectados físicamente.

El transformador de corriente y el relé de seguridad ya están aislados por naturaleza. Sin embargo, la señal de relé se aplica a través de SI8660 porque convierte la señal en un rango entre 0 y VDRV (propio del relé).

    

Lea otras preguntas en las etiquetas