Acoplamiento del condensador a través de la entrada GPIO de la Raspberry Pi (+ Arduino + robótica)

4

He estado jugando con un kit de robot de Parallax (el BOE Shield Kit), que tiene una fuente de alimentación de 5xAA (7.2 V?). El escudo escudo de BOE incluye su propio regulador de 5 V, que se utiliza para controlar los servos que, a su vez, hacen girar las ruedas del robot. El regulador tiene una capacidad nominal de hasta 1 A de potencia regulada.

Ahora, para la parte divertida: también quiero alimentar una Raspberry Pi desde este mismo circuito. He podido alimentar con éxito la Raspberry Pi a través de la salida de 5 V del Arduino (no a través del regulador BOE) y los pines GPIO. La Raspberry Pi tiene un único periférico USB: un adaptador de Wi-Fi. Cuando los servos no se están ejecutando, o cuando se están ejecutando de manera constante, no hay problema, y todo el sistema, incluida la Raspberry Pi, avanza felizmente. Cuando la Raspberry Pi no hace nada a través de Wi-Fi, apagar y encender los servos tampoco tiene ningún efecto en la operación de la Raspberry Pi.

Sin embargo, cuando la Raspberry Pi está usando mucho Wi-Fi (ejecuté 'apt-get update' como prueba de concepto), y comienzo a encender los servos, la Raspberry Pi se reinicia. Supongo que detectó una condición de subtensión y se reinició para protegerse.

¿Funcionaría un condensador de desacoplamiento a través de las entradas de la Raspberry Pi para superar estos períodos de carga de servo de "inicio"? Algo como esto:

Si es así, ¿qué tipo y tamaño de capacitor debo usar para esto? ¿Hace una diferencia a qué distancia del Raspberry Pi se coloca el condensador (realmente no quiero soldar uno directamente al Pi)?

(Sí, lo sé, utilicé un símbolo de relevo para representar el servo en el diagrama del CircuitLab, pero no tenían un bloque "servo". Imagínelo como "cosa que consume mucha corriente por un tiempo muy corto tiempo ".)

    
pregunta Devin R

4 respuestas

4

Un capacitor de derivación en la entrada al RPi puede ser suficiente, pero depende de la duración y la magnitud de las caídas causadas por los servos.

Yo usaría un osciloscopio para investigar las caídas. Si son muy cortos (nosotros), agregaría topes arbitrarios (100uF, 1000uF) y volver a realizar la prueba.

Otra solución sería tratar de limitar esos pulsos de pico de pico agregando un diodo de la batería al Arduino, luego conectando el Vin al regulador de 5V antes del diodo. De esta manera, los transitorios no se extraerán de las tapas de entrada de Arduino, solo de la batería.

    
respondido por el Mark B
1

WiFi generalmente requiere alrededor de 200 mA en RX y TX, pero los picos pueden alcanzar 1A o más. Agregar un capacitor de derivación podría ayudar si estas caídas son momentáneas, pero si el regulador se esfuerza por proporcionar la corriente promedio requerida, podría ser necesario un regulador reforzado.

    
respondido por el Gustavo Litovsky
1

Un condensador de desacoplamiento en el RPi sin duda ayudará. Aunque deseará acercarse lo más posible a los pines de suministro. Use un electrolítico e intente encontrar uno con la ESR más baja posible.

Analog Devices tiene algunas buenas recomendaciones:

  
  • Un condensador electrolítico grande (generalmente de 10 µF a 100 µF) a una distancia máxima de 2 in del chip.   
    • El propósito de este condensador es ser un depósito de carga para suministrar los requisitos de carga instantánea de los circuitos a nivel local.   por lo que la carga no necesita venir a través de la inductancia del poder   traza.
    •   
  •   
  • Todos los condensadores de desacoplamiento deben conectarse a un área grande de baja impedancia   plano del suelo a través de una vía o traza corta para minimizar la inductancia.
  •   

También sería una buena idea agregar una tapa de almacenamiento masivo al servo. De nuevo, busque un valor de ESR bajo y un valor en los miles de μF.

    
respondido por el embedded.kyle
1

Tuve un problema similar con un Arduino alimentado por 4 baterías NiMH que también manejaban dos servos. Cada vez que los servos comenzaban o cambiaban de dirección, reiniciaba el Arduino. Resolví el problema colocando una gran tapa electrolítica 4300uF cerca del Vin & de Arduino; Suelo. Después de usar la tapa, el arduino nunca se reinicia, no importa lo que haya hecho el servo.

La Raspberry Pi tiene un dibujo actual más grande que el Arduino. Una tapa de 4300uF puede funcionar. También es posible que desee utilizar dos mayúsculas, una grande justo antes del Regulador de Voltaje, y luego otra justo antes de la Raspberry Pi.

Realmente, sin embargo, debes usar un alcance y mirar la línea. Podría ser que el ruido (y no una caída de voltaje) haga que el Rpi se reinicie. En ese caso, querría usar pequeños condensadores de filtro (es decir, 0.1uf) en cada servomotor para probar el filtro de ruido.

    
respondido por el Gene R

Lea otras preguntas en las etiquetas