Controlador de apagado para Raspberry Pi en un automóvil

Siguiendo con mi pregunta anterior , estoy tratando de crear un controlador de apagado para mi Raspberry Pi. La Raspberry Pi debe alimentarse con la batería, pero debe apagarse después de que la Pi detecte que el encendido se ha apagado.

El Pi tomará una alimentación de 3,3 V de la línea ACC (tengo otros componentes que tomarán 5 V de la línea ACC a través de un 7805, por lo que bajaré a 3,3 V usando un divisor de voltaje a menos que alguien tenga una sugerencia mejor). También manejaré un uPD6708 que toma E/S CMOS de 5 V, por lo que tendrá que bajar de 5 V a 3,3 V en otras 2 líneas).

El software que se ejecuta en el RPi establecerá uno de los pines GPIO alto, presumiblemente cuando el RPi se apague, todos los pines GPIO bajarán. Entonces, Q1 debería encender el relé, manteniendo el RPi encendido mientras el encendido esté encendido o el pin GPIO esté alto.

Tengo 3 kits de fusibles con una tapa de 1000uF y algún tipo de transformador/inductor, por lo que también puedo usar uno de ellos en cada batería de 12V y línea de accesorios de 12V.

Este controlador de apagado afirma consumir solo 50 uA en espera: si usara una puerta CMOS 4071 OR, eso sería un comienzo, pero por lo que he leído, necesitaría más corriente de la puerta OR para saturar el transistor. ¿ese derecho?

Teniendo en cuenta que necesito nivelar 5 líneas de 3.3V a 5V y 2 de 5V a 3.3V además de los requisitos de este subcircuito, ¿alguien puede recomendar componentes/alternativas para OR1, Q1, RLY1 y/o alguna modificacion?

esquemático

simular este circuito : esquema creado con CircuitLab

Aquí está mi intento de seguir la sugerencia de @Connor Wolf.

  • Es necesario elegir R1 y C3 para permitir que el RPi se apague correctamente
  • Agregué C1 porque imagino que tomará un breve momento antes de que el relé cambie después de que se apague el encendido; no tengo idea de cuánto tiempo es eso, pero supongo que el RPi va a consumir alrededor de 700 mA desde el condensador, además del 555 y el relé

esquemático

simular este circuito

@Nick sugiere que podría ser más simple, ¿tal vez así? Traté de quitar los diodos para poder usar una fuente de alimentación USB estándar de 12V-5V 1A (o un par de ellos). La hoja de datos del 555 dice que emite 3,3 V (¿fuente máxima de 100 mA? Esta página dice 200 mA). El RPi leerá la línea ACC a 3,3 V para determinar cuándo apagar.

esquemático

simular este circuito

Su 7805 se pondrá MUY CALIENTE a medida que se dibuja su circuito. Con el consumo de 700 mA del raspberry pi, en su vDrop de 7V (12v-5v), disipará 4,9 vatios (7V * 0,7A) en el regulador. Realmente necesitas buscar un DC-DC para eso .
Además, su "kit de fusibles" está dibujado incorrectamente. En este momento, el diodo simplemente está cortocircuitando la entrada de 12 V y el inductor no está haciendo nada. Supongo que el inductor está en serie con la línea de alimentación, y el diodo está al revés (lo que le permitiría evitar la polarización inversa de la entrada).
Los divisores de voltaje no son una buena manera de alimentar nada, ya que la carga varía, el voltaje variará. Solo use un regulador de algún tipo, son lo suficientemente baratos y abundantes.
@ConnorWolf Tengo un 7805CT que tiene una calificación de 1A. ... ¿Eso solo se aplica si baja de 6 V a 5 V? Cuando busco en Google un convertidor DC-DC, muchos de los resultados de búsqueda mencionan 7805. A menos que el convertidor DC-DC emita 5.7VI, creo que necesitaría cambiar D2 y D3 para diodos schottky con una caída de voltaje de menos de 0.25V
@NicholasAlbion: no dije que no funcionaría, solo que necesitará un disipador de calor muy grande, o un ventilador/disipador de calor más pequeño, para mantenerlo adecuadamente fresco.
Tenga cuidado con los picos de alto voltaje en la batería de los automóviles. Puede usar un diodo TVS o un varistor para proteger la entrada del 7805.
Es posible que desee considerar un adaptador de carga USB para automóvil decente como base para su fuente de alimentación; uno decente siempre contiene un convertidor conmutado que minimiza la disipación de calor. Para corrientes más bajas (<= 100mA) he usado circuitos como este (fuente/piezas) durante años en entornos automotrices.
¿No podría simplemente tener un relé que cambie cuando se encienda el encendido del automóvil? Haga que la Pi detecte que se ha apagado y luego apáguela correctamente...
El relé se apagaría en el momento en que se apaga el encendido. ..¿Y que? Necesito comprar el Pi 10 segundos más o menos después de apagar el encendido, luego cortar toda la energía.
Un súper límite de 5 V ~ 5 F proporcionaría ~ 6,25 W durante 10 segundos y costaría entre $ 10 y $ 15. Solo tenga cuidado de no acortarlo y controle la corriente de carga de manera razonable.
De acuerdo con esta respuesta , necesitaría alrededor de 30F, así que multiplique sus $10-15 por 5.
Tenga en cuenta que el 'Pi se especifica a 700 mA máx . Es posible que desee medir la corriente real consumida en su aplicación. Puede estar muy por debajo de esos 0,7 A si el dispositivo no funciona a plena carga (CPU + GPU al 100 %, carga de red masiva, etc.). Si consume solo un promedio de 100 mA, por ejemplo, un capacitor dado durará mucho más.
Es incorrecto usar un condensador para este propósito.
@ConnorWolf, ¿puede dar más detalles sobre "MUY CALIENTE" -> DC-DC? Instalé mi placa de circuito con RPi en el automóvil, funcionó durante 5 minutos e incluso con un disipador de calor de 2x4 cm logró quemarme los dedos. Un 1Amp 7805 definitivamente no es adecuado para este propósito.
@martini: no, en realidad es bastante normal usar un condensador para dar tiempo a un apagado seguro; el problema es más que el pi, al no haber sido diseñado para tal uso, consume un poco de energía.
Use un SOMBRERO como este para proporcionar energía ininterrumpida desde una batería y luego detectar el Auto ENCENDIDO o el Auto APAGADO. Arranque o apagado según corresponda. pi-supply.com/product/ups-pico-uninterruptible-power-supply-hat

Respuestas (4)

Si bien el uso de un circuito de temporizador de un solo uso funcionará, creo que se puede usar una solución más fácil. Echa un vistazo a este circuito.

ingrese la descripción de la imagen aquí

Para aclarar, "VBAT" es una fuente de 12 V que siempre está encendida mientras la batería esté conectada. Sin embargo, "ACC" es una fuente de 12 V que solo está encendida cuando el encendido está encendido o la llave está configurada como "accesorio". En lugar de usar un relé de 5 V solo para controlar la alimentación del RPi, ¿por qué no usar un relé automático estándar de 12 V como se muestra? De esta manera, no se desperdicia energía (a excepción de la corriente de la bobina mientras está encendida) porque todo se desconectará de la batería.

Un lado de la bobina siempre está conectado a 12V. El lado opuesto está conectado a tierra (chasis) a través de un FET de canal N (Q1). Si bien se usa un MOSFET en el diagrama, se puede usar cualquier FET capaz de hundir la corriente de la bobina. Cuando "ACC" está encendido, Q1 se encenderá, conectando la bobina a tierra y activando el interruptor. Esto, a su vez, alimentará cualquier circuito de regulación de 5 V que planee usar (un regulador 7805 simple con disipador de calor, un convertidor DC-DC de conmutación, los suministros USB mencionados, etc.).

El diodo D2 está ahí para garantizar que el capacitor solo pueda descargarse en Q1 y puede ser regular o Shottky. Probablemente se deberían usar otros métodos para la protección contra sobrevoltaje y corriente de la batería.

El voltaje "ACC" se puede pasar a través de un divisor de voltaje para crear una señal de 3,3 V para el RPi. Tenga cuidado con este nivel de voltaje, considerando que una batería de automóvil de 12 V realmente puede ser más como 14 V CC. Siempre que esta señal sea HI, el RPi sabe que está encendido. Obviamente, este pin GPIO debe configurarse como una entrada con cualquier pullup interno deshabilitado. Cuando se apaga "ACC", el RPi debería ver la señal LO en el pin y comenzar su apagado.

Cuando se apaga el voltaje "ACC", el capacitor C1 retendrá la carga durante tanto tiempo, descargándose a través de la resistencia R1. Una vez que el voltaje del capacitor cae por debajo del umbral de puerta de Q1, se apagará, desconectando la bobina del relé de tierra y quitando la energía del circuito periférico. Si se usa un "MOSFET de nivel lógico" para Q1, permanecerá encendido hasta que el voltaje de C1 sea bastante bajo. Probé este circuito usando un NTD4960 ( Hoja de datos ), y permaneció encendido durante unos 15 segundos, hasta que C1 estuvo alrededor de 2V. Para aumentar el tiempo, aumente el valor de la capacitancia.

¿Cómo selecciono un FET apropiado? Ya tengo un relé de 12 V: 621D012 (270 ohmios -> 44 mA) El catálogo en línea de Jaycar enumera lo siguiente: 2N7000, PN100, VN10KM, IRF540N, IRF1405 y más
Creo que el 2N7000 sería una buena opción, pero esto es lo que está buscando... Tipo: N Channel FET (no un NPN BJT); Corriente Directa (I_d): Al menos 100mA - (el doble de 44mA); Voltaje de umbral de puerta (V_gs o V_gth): No más de 3V; Capacitancia de la puerta: ¡No importa, ponemos más externamente! Resistencia "ENCENDIDA" (R_ds): baja es buena, pero su disipación de energía será baja; Disipación de energía (P_d): 44mA ^2 * R_ds << al menos el doble de esto
¿Se puede comprar en la tienda? Estoy tratando de hacer lo mismo que el OP pero no tengo idea de cómo crear mis propios circuitos. ¿Hay alguna solución comprada en la tienda para esto?

Honestamente, creo que estás pensando demasiado en esto.

Personalmente, solo usaría un one-shot con un período de uno o dos minutos, activado por el apagado del automóvil.

Cuando apaga el automóvil, se dispara el one-shot, manteniendo el relé cerrado hasta que se agote el tiempo. Todo lo que necesitaría hacer sería asegurarse de que su raspberry pi se apague dentro de uno o dos minutos después de que se apague el automóvil. Esto debería ser lo suficientemente fácil al monitorear una entrada de energía conmutada del automóvil.

La mayor ventaja de un sistema como este es que cuando su software falla (cuando, no si), se apagará de todos modos, por lo que no terminará con una batería descargada. El one-shot debería ser bastante simple. Podría usar un 555, o un pequeño microprocesador (como sugerirá Olin).
Otra cosa buena es que, si hace el diseño correctamente, el sistema puede desconectarse de la batería del automóvil, lo que garantiza que el consumo de corriente en reposo sea absolutamente 0.

suena muy bien, ¿cómo se hace?
Suena un poco como el circuito utilizado para mantener encendidas las luces de cortesía, después de que se cierra la puerta del automóvil. De memoria, un condensador se carga a 12 V y se mantiene en un FET o similar. Retire la energía, la tapa se descarga lentamente, hasta que el FET se apaga.
El RPi consume 5 V a unos 700 mA y creo que necesito unos 10 segundos para apagarlo. Lo primero que pensé fue usar un capacitor, pero eso implicaría alrededor de $100 en capacitores.
@NicholasAlbion, la tapa no se usaría para proporcionar energía directamente al Pi, sino un voltaje de puerta a un FET (que controlaría un relé). La resistencia de compuerta de un FET es muy alta, por lo que no necesitaría una gran tapa para durar los 10 segundos necesarios.

Cualquier método de retraso fijo tiene el problema de no saber cuánto tiempo necesita realmente el RPi para apagarse. Sería mejor presionar un botón que señale al Pi que se apague, luego podría hacer lo que necesita para un apagado limpio y ordenado, tomando el tiempo que sea necesario, luego emitir una señal GPIO al circuito del botón pulsador que apaga el poder. Eso le da al RPi todo el tiempo que necesita para hacer cosas como apagar de manera segura la tarjeta SD. El circuito no tiene que ser demasiado complicado. Puedes ver un circuito simple en

http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/on-off-power-controller

El sitio web describe el funcionamiento del circuito.

Tienes un buen punto, aunque no creo que nadie quiera tener que pasar por ese proceso cada vez que apaga su automóvil. Tendría más sentido que el RPi detecte el apagado al monitorear el voltaje de la línea ACC (solo encendido cuando el automóvil está encendido), luego elimine su propia energía de la línea de 12 V "siempre encendida" cuando esté listo para hacerlo - automatizar el sistema.

Utiliza 4 pilas AA recargables. Alimente el Pi con ellos y hágalos cargar con la batería del automóvil.

Use 1 GPIO para decirle al Pi si el encendido está encendido o apagado.

Apague cuando esté listo.

Creo que esta respuesta necesita más detalles para ser útil. Tal vez publique un esquema o una descripción sobre cómo cree que funcionaría y qué tipo de circuito de carga/dispositivo/control de potencia propondría.