Controller di spegnimento per Raspberry Pi in auto


14

In seguito alla mia domanda precedente sto provando a creare un controller di spegnimento per il mio Raspberry Pi. Il Raspberry Pi deve essere alimentato dalla batteria, ma dovrebbe spegnersi dopo che il Pi ha rilevato che l'accensione è stata disattivata.

Il Pi prenderà un'alimentazione di 3,3 V dalla linea ACC (ho altri componenti che prenderanno 5 V dalla linea ACC tramite un 7805, quindi passerò a 3,3 V utilizzando un divisore di tensione a meno che qualcuno non abbia un suggerimento migliore - I ' Guiderò anche un uPD6708 che richiede I / O CMOS a 5 V, quindi dovrà scendere da 5 V a 3,3 V su altre 2 linee).

Il software in esecuzione in RPi imposterà uno dei pin GPIO in alto, presumibilmente quando l'RPi arresta i pin GPIO si abbasserà. Quindi Q1 dovrebbe attivare il relè, mantenendo l'alimentazione dell'RPi finché l'accensione è attiva o il pin GPIO è alto.

Ho 3 kit di fusibili con un cappuccio da 1000uF e un qualche tipo di trasformatore / induttore, quindi posso anche usarne uno su ciascuna batteria da 12V e linea di accessori da 12V.

Questo controller di spegnimento afferma di assorbire solo 50uA in standby - se avessi usato un gate OR CMOS 4071 che sarebbe un inizio, ma da quello che ho letto, avresti bisogno di più corrente dal gate OR per saturare il transistor - è giusto?

Tenendo presente che devo spostare di livello 5 linee da 3,3 V a 5 V e 2 da 5 V a 3,3 V oltre ai requisiti di questo sotto-circuito, qualcuno può consigliare componenti / alternative per OR1, Q1, RLY1 e / o eventuali modifiche?

schematico

simula questo circuito - Schema creato usando CircuitLab

Ecco il mio tentativo di seguire il suggerimento di @Connor Wolf.

  • R1 e C3 devono essere scelti per consentire all'RPi di chiudersi correttamente
  • Ho aggiunto C1 perché immagino che ci vorrà un breve momento prima che il relè si spenga dopo lo spegnimento dell'accensione - Non ho idea di quanto tempo sarà, ma suppongo che l'RPi stia attingendo a circa 700mA da il condensatore, oltre al 555 e al relè

schematico

simula questo circuito

@ Nick suggerisce che potrebbe essere più semplice - come questo forse? Ho provato a rimuovere i diodi in modo da poter semplicemente utilizzare un alimentatore USB 12V-5V 1A standard (o un paio di essi). Il foglio dati 555 indica che emette 3,3 V (sorgente massima 100 mA? Questa pagina indica 200 mA ). L'RPi leggerà la linea ACC a 3.3V per determinare quando spegnerlo.

schematico

simula questo circuito


1
Il tuo 7805 diventerà DAVVERO CALDO man mano che il tuo circuito viene tracciato. Con l'estrazione di 700 mA di Raspberry Pi, sul tuo vDrop di 7 V (12 V-5 V), dissiperai 4,9 watt (7 V * 0,7 A) nel regolatore. Devi davvero cercare un DC-DC per questo.
Connor Wolf,

1
Inoltre, il tuo "kit di fusibili" è disegnato in modo errato. In questo momento, il diodo sta semplicemente cortocircuitando l'ingresso a 12V e l'induttore non sta facendo nulla. Immagino che l'induttore sia in serie con la linea di alimentazione e che il diodo sia il contrario (il che consentirebbe di impedire la polarizzazione inversa dell'ingresso).
Connor Wolf,

2
I divisori di tensione non sono un buon modo per alimentare nulla, poiché il carico varia, la tensione varierà. Basta usare un regolatore di qualche tipo, sono abbastanza economici e abbondanti.
John U

@ConnorWolf Ho un 7805CT valutato a 1A. ... Questo vale solo se scendi da 6 V a 5 V? Quando utilizzo Google per il convertitore DC-DC, molti dei risultati della ricerca menzionano 7805. A meno che le uscite del convertitore DC-DC 5.7VI pensino che dovrei cambiare D2 e ​​D3 per diodi schottky con una caduta di tensione inferiore a 0,25 V
Nicholas Albion

@NicholasAlbion - Non ho detto che non avrebbe funzionato, solo che avrai bisogno di un dissipatore di calore molto grande, o di un ventilatore / dissipatore di calore più piccolo, per mantenerlo correttamente freddo.
Connor Wolf,

Risposte:


8

Mentre l'utilizzo di un circuito timer one-shot funzionerà, penso che possa essere utilizzata una soluzione più semplice. Dai un'occhiata a questo circuito.

inserisci qui la descrizione dell'immagine

Per chiarimenti, "VBAT" è una fonte a 12 V che è sempre attiva fintanto che la batteria è collegata. Tuttavia, "ACC" è una sorgente a 12V che è attiva solo quando l'accensione è inserita o la chiave è impostata su "accessorio". Invece di usare un relè a 5 V solo per controllare l'alimentazione dell'RPi, perché non utilizzare un relè automatico a 12 V come mostrato. In questo modo, non vi è alcun dispendio di energia (ad eccezione della corrente della bobina mentre l'alimentazione è accesa) perché tutto sarà scollegato dalla batteria.

Un lato della bobina è sempre collegato a 12V. Il lato opposto è collegato a terra (telaio) attraverso un FET N-Channel (Q1). Mentre nel diagramma viene utilizzato un MOSFET, è possibile utilizzare qualsiasi FET in grado di assorbire la corrente della bobina. Quando "ACC" è acceso, Q1 si accenderà, collegando la bobina a terra e azionando l'interruttore. Questo a sua volta alimenterà qualsiasi circuito di regolazione 5V che prevedi di utilizzare (un semplice regolatore 7805 con dissipatore di calore, un convertitore CC-CC di commutazione, le forniture USB menzionate, ecc.).

Il diodo D2 è lì per garantire che il condensatore possa scaricarsi solo in Q1 e può essere regolare o Shottky. Altri metodi dovrebbero probabilmente essere utilizzati per la protezione da sovratensione e corrente dalla batteria.

La tensione "ACC" può essere inserita attraverso un partitore di tensione per creare un segnale 3.3V per RPi. Fai attenzione a questo livello di tensione, considerando che una batteria automatica da 12 V può davvero essere più simile a 14 V CC. Finché questo segnale è HI, l'RPi sa che è acceso. Ovviamente, questo pin GPIO dovrebbe essere impostato come input con eventuali pullup interni disabilitati. Quando "ACC" è disattivato, l'RPi dovrebbe vedere il segnale LO sul pin e iniziare il suo spegnimento.

Quando la tensione "ACC" viene disattivata, il condensatore C1 manterrà la carica per così tanto tempo, scaricando attraverso il resistore R1. Una volta che la tensione del condensatore scende al di sotto della soglia del gate di Q1, si spegne, scollegando la bobina del relè da terra e rimuovendo l'alimentazione dal circuito periferico. Se si utilizza un "MOSFET a livello logico" per Q1, rimarrà acceso fino a quando la tensione C1 è abbastanza bassa. Ho testato questo circuito usando un NTD4960 ( Datasheet ), ed è rimasto acceso per circa 15 secondi - fino a quando C1 era circa 2V. Per aumentare il tempo, aumentare il valore della capacità.


Come seleziono un FET appropriato? Ho già un relè 12V - 621D012 (270ohm -> 44mA) Il catalogo Jaycar online elenca i seguenti: 2N7000, PN100, VN10KM, IRF540N, IRF1405 e altro
Nicholas Albion

1
Credo che il 2N7000 sarebbe una buona scelta, ma ecco cosa stai cercando ... Tipo: N Channel FET (non un NPN BJT); Forward Current (I_d): Almeno 100mA - (doppio di 44mA); Tensione soglia gate (V_gs o V_gth): non più di 3 V; Capacità del gate: non importa, mettiamo più esternamente! Resistenza "ON" (R_ds): bassa è buona, ma la tua dissipazione di potenza sarà bassa; Dissipazione di potenza (P_d): 44mA ^ 2 * R_ds << almeno il doppio di questa
Kurt E. Clothier

Questo può essere acquistato in negozio? Sto cercando di fare lo stesso dell'OP ma non ho idea di come creare i miei circuiti. Ci sono soluzioni acquistate in negozio per questo?
John Demetriou,

2

Onestamente, penso che stai pensando troppo a questo.

Personalmente, userei solo un colpo con un periodo di un minuto o due, innescato dall'auto spenta.

Quando spegni la macchina, il colpo singolo spara, tenendo chiuso il relè fino allo scadere del tempo. Tutto quello che dovresti fare sarebbe accertarti che il tuo lampone pi si spenga entro un minuto o due dall'auto che viene spenta. Questo dovrebbe essere abbastanza facile monitorando un input dalla potenza commutata dell'auto.

Il più grande vantaggio di un sistema come questo è che quando il tuo software si arresta in modo anomalo (quando, non se), si spegnerà comunque, quindi non ti esaurirai con una batteria scarica. Il colpo singolo dovrebbe essere molto semplice. Potresti usare un 555 o un piccolo microprocessore (come suggerirà Olin).
Un'altra cosa interessante è che, se si esegue correttamente la progettazione, il sistema può disconnettersi dalla batteria dell'auto, assicurando che l'assorbimento di corrente di riposo sia assolutamente 0.


suona alla grande - come si fa?
Nicholas Albion,

Sembra un po 'come il circuito utilizzato per tenere accese le luci di cortesia, dopo la chiusura della portiera della macchina. Dalla memoria, un condensatore viene caricato a 12V e si mantiene su un FET o simile. Rimuovere l'alimentazione, il cappuccio si scarica lentamente - fino a quando il FET si spegne.
Alan Campbell,

L'RPi assorbe 5 V a circa 700 mA e penso di aver bisogno di circa 10 secondi per spegnerlo. Il mio primo pensiero fu usare un condensatore, ma ciò avrebbe comportato circa $ 100 di condensatori
Nicholas Albion,

@ NicholasAlbion, il cappuccio non verrebbe utilizzato per fornire energia direttamente al Pi, ma una tensione di gate a un FET (che controllerebbe un relè). La resistenza di gate di un FET è molto alta, quindi non avrai bisogno di un grosso cappuccio per durare i 10 secondi necessari.
Pentium100

0

Qualsiasi metodo di ritardo fisso soffre del problema di non sapere quanto tempo l'RPi deve realmente arrestare. Sarebbe meglio premere un pulsante che segnala allo spegnimento del Pi, potrebbe quindi fare ciò di cui ha bisogno per un arresto pulito e ordinato, impiegando il tempo necessario, quindi inviare un segnale GPIO al circuito del pulsante che spegne il energia. Questo dà all'RPi tutto il tempo necessario per fare cose come spegnere in sicurezza la scheda SD. Il circuito non deve essere troppo complicato. Puoi vedere un semplice circuito su

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

Il sito web descrive il funzionamento del circuito.


Hai un buon punto, anche se non credo che qualcuno voglia passare attraverso un processo del genere ogni volta che spengono la macchina. Avrebbe più senso per l'RPi rilevare l'arresto monitorando la tensione della linea ACC (solo su quando l'auto è accesa), quindi uccidere la propria potenza dalla linea "sempre accesa" quando è pronta per farlo - automatizzare il sistema.
Kurt E. Clothier,

-2

Utilizzare 4 batterie ricaricabili AA. Alimenta il Pi da loro e li carica sulla batteria dell'auto.

Usa 1 GPIO per dire al Pi se l'accensione è inserita o disinserita.

Spegni quando sei pronto.


3
Penso che questa risposta abbia bisogno di maggiori dettagli per essere utile. Forse pubblica uno schema o una descrizione su come pensi che funzionerebbe e che tipo di circuito di ricarica / dispositivo / controllo di potenza proporresti.
PeterJ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.