Contrôleur d'arrêt pour Raspberry Pi dans une voiture

14

Suite à ma question précédente, j'essaie de créer un contrôleur d'arrêt pour mon Raspberry Pi. Le Raspberry Pi doit être alimenté par la batterie, mais doit s'éteindre après que le Pi détecte que le contact a été coupé.

Le Pi prendra une alimentation de 3,3 V de la ligne ACC (j'ai d'autres composants qui prendront 5 V de la ligne ACC via un 7805, donc je descendrai à 3,3 V en utilisant un diviseur de tension à moins que quelqu'un n'ait une meilleure suggestion - je '' Je conduirai également un uPD6708 qui nécessite des E / S CMOS 5 V, il faudra donc passer de 5 V à 3,3 V sur 2 autres lignes).

Le logiciel exécuté dans le RPi mettra l'une des broches GPIO à un niveau élevé, probablement lorsque le RPi s'arrêtera, les broches GPIO deviendront toutes basses. Le Q1 doit donc activer le relais, en gardant le RPi sous tension tant que le contact est mis ou que la broche GPIO est haute.

J'ai 3 kits de fusibles avec un capuchon de 1000 uF et une sorte de transformateur / inducteur, je peux donc aussi bien en utiliser un sur chaque batterie 12V et ligne d'accessoires 12V.

Ce contrôleur d'arrêt prétend n'utiliser que 50uA en veille - si j'utilisais une porte OU CMOS 4071 qui serait un début, mais d'après ce que j'ai lu, vous auriez besoin de plus de courant de la porte OU pour saturer le transistor - est non?

En gardant à l'esprit que je dois changer de niveau 5 lignes de 3,3 V à 5 V et 2 de 5 V à 3,3 V en plus des exigences de ce sous-circuit, quelqu'un peut-il recommander des composants / alternatives pour OR1, Q1, RLY1 et / ou des modifications?

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Voici ma tentative de suivre la suggestion de @Connor Wolf.

  • R1 et C3 doivent être choisis pour permettre au RPi de s'éteindre correctement
  • J'ai ajouté C1 parce que j'imagine que cela prendra un bref instant avant que le relais ne commute après la coupure du contact - je n'ai aucune idée de la durée, mais je suppose que le RPi va tirer environ 700mA de le condensateur, en plus du 555 et relais

schématique

simuler ce circuit

@ Nick suggère que cela pourrait être plus simple - comme ça peut-être? J'ai essayé de retirer les diodes afin de pouvoir simplement utiliser une alimentation USB 12V-5V 1A standard (ou une paire d'entre elles). La fiche technique du 555 indique qu'elle produit 3,3 V (source maximale 100 mA? Cette page indique 200 mA). Le RPi lira la ligne ACC à 3,3 V pour déterminer quand s'arrêter.

schématique

simuler ce circuit

Nicholas Albion
la source
1
Votre 7805 va devenir VRAIMENT CHAUD lorsque votre circuit est tracé. Avec le tirage de 700 mA du Raspberry Pi, à votre vDrop de 7V (12v-5v), vous allez dissiper 4,9 watts (7V * 0,7A) dans le régulateur. Vous devez vraiment chercher un DC-DC pour cela.
Connor Wolf
1
De plus, votre truc de "kit de fusibles" est mal dessiné. À l'heure actuelle, la diode court-circuite simplement l'entrée 12V et l'inductance ne fait rien. Je suppose que l'inductance est en série avec la ligne électrique, et la diode est l'inverse (ce qui permettrait d'éviter une polarisation inverse de l'entrée).
Connor Wolf
2
Les diviseurs de tension ne sont pas un bon moyen d'alimenter quoi que ce soit, car la charge varie, la tension variera. Utilisez simplement un régulateur, ils sont bon marché et assez abondants.
John U
@ConnorWolf J'ai un 7805CT qui est évalué à 1A. ... Est-ce que cela ne s'applique que si vous descendez de 6V à 5V? Lorsque je recherche un convertisseur DC-DC sur Google, de nombreux résultats de recherche mentionnent 7805. À moins que le convertisseur DC-DC ne génère 5,7 VI, je pense que je devrais changer D2 et D3 pour les diodes schottky avec une chute de tension inférieure à 0,25 V
Nicholas Albion
@ NicholasAlbion - Je n'ai pas dit que cela ne fonctionnerait pas, juste que vous aurez besoin d'un très grand dissipateur thermique, ou d'un ventilateur / petit dissipateur thermique, pour le garder correctement au frais.
Connor Wolf

Réponses:

8

Bien que l'utilisation d'un circuit de minuterie à un coup fonctionnera, je pense qu'une solution plus simple peut être utilisée. Jetez un oeil à ce circuit.

entrez la description de l'image ici

Pour plus de précision, "VBAT" est une source 12V qui est toujours allumée tant que la batterie est connectée. Cependant, "ACC" est une source 12V qui n'est allumée que lorsque le contact est mis ou que la clé est réglée sur "accessoire". Plutôt que d'utiliser un relais 5V juste pour contrôler l'alimentation du RPi, pourquoi ne pas utiliser un relais automatique 12V standard comme indiqué. De cette façon, il n'y a pas de perte d'énergie (sauf pour le courant de la bobine lorsque l'alimentation est sous tension) car tout sera déconnecté de la batterie.

Un côté de la bobine est toujours connecté à 12V. Le côté opposé est connecté à la masse (châssis) via un FET à canal N (Q1). Alors qu'un MOSFET est utilisé dans le diagramme, tout FET capable de réduire le courant de la bobine peut être utilisé. Lorsque "ACC" est sous tension, Q1 se met en marche, connectant la bobine à la terre et actionnant l'interrupteur. Cela alimentera à son tour le circuit de régulation 5V que vous prévoyez d'utiliser (un simple régulateur 7805 avec dissipateur de chaleur, un convertisseur CC-CC à commutation, les alimentations USB mentionnées, etc.).

La diode D2 est là pour garantir que le condensateur ne peut se décharger que sur Q1 et peut être régulier ou Shottky. D'autres méthodes devraient probablement être utilisées pour la protection contre les surtensions et les courants de la batterie.

La tension "ACC" peut être placée à travers un diviseur de tension pour créer un signal de 3,3 V pour le RPi. Soyez prudent avec ce niveau de tension, étant donné qu'une batterie automatique 12V peut vraiment être plus comme 14V DC. Tant que ce signal est HI, le RPi sait que l'appareil est sous tension. De toute évidence, cette broche GPIO doit être définie comme une entrée avec tous les pullups internes désactivés. Lorsque "ACC" est désactivé, le RPi devrait voir le signal LO sur la broche et commencer son arrêt.

Lorsque la tension "ACC" est coupée, le condensateur C1 conserve la charge pendant si longtemps, se déchargeant à travers la résistance R1. Une fois que la tension du condensateur tombe en dessous du seuil de grille de Q1, il s'éteint, déconnectant la bobine de relais de la masse et coupant l'alimentation du circuit périphérique. Si un "MOSFET de niveau logique" est utilisé pour Q1, il restera activé jusqu'à ce que la tension C1 soit assez faible. J'ai testé ce circuit à l'aide d'un NTD4960 (fiche technique ), et il est resté allumé pendant environ 15 secondes - jusqu'à ce que C1 soit autour de 2V. Pour augmenter le temps, augmentez la valeur de capacité.

Kurt E. Clothier
la source
Comment sélectionner un FET approprié? J'ai déjà un relais 12V - 621D012 (270ohm -> 44mA) Le catalogue en ligne Jaycar répertorie les éléments suivants: 2N7000, PN100, VN10KM, IRF540N, IRF1405 et plus
Nicholas Albion
1
Je crois que le 2N7000 serait un bon choix, mais voici ce que vous recherchez ... Type: FET à canal N (pas un NPN BJT); Courant direct (I_d): au moins 100mA - (double de 44mA); Tension de seuil de grille (V_gs ou V_gth): pas plus de 3 V; Gate Capacitance: Peu importe, nous en mettons plus en externe! Résistance "ON" (R_ds): faible est bon, mais votre dissipation de puissance sera faible; Dissipation de puissance (P_d): 44mA ^ 2 * R_ds << au moins le double
Kurt E. Clothier
Peut-on l'acheter en magasin? J'essaie de faire la même chose que l'OP mais je n'ai aucune idée sur la façon de créer mes propres circuits. Existe-t-il des solutions achetées en magasin pour cela?
John Demetriou
2

Honnêtement, je pense que vous y pensez trop.

Personnellement, je n'utiliserais qu'un seul coup d'une durée d'une minute ou deux, déclenché par l'arrêt de la voiture.

Lorsque vous éteignez la voiture, un coup de feu se déclenche, maintenant le relais fermé jusqu'à ce qu'il expire. Tout ce que vous auriez à faire serait de vous assurer que votre Raspberry Pi s'arrête dans une minute ou deux après l'arrêt de la voiture. Cela devrait être assez facile en surveillant une entrée de l'alimentation commutée de la voiture.

Le plus grand avantage d'un système comme celui-ci est que lorsque votre logiciel se bloque (quand, pas si), il s'arrêtera quand même, donc vous ne vous retrouverez pas avec une batterie morte. Le one-shot devrait être très simple. Vous pourriez utiliser un 555, ou un petit microprocesseur (comme Olin le suggérera).
Une autre bonne chose est que, si vous effectuez la conception correctement, le système peut se déconnecter de la batterie de la voiture, ce qui garantit que le courant de repos est absolument nul.

Connor Wolf
la source
sonne bien - comment est-il fait?
Nicholas Albion
Cela ressemble un peu au circuit utilisé pour garder les lampes cortesy allumées, après la fermeture de la portière de la voiture. De la mémoire, un condensateur est chargé à 12V et tient sur un FET ou similaire. Coupez l'alimentation, le capuchon se décharge lentement - jusqu'à ce que le FET soit désactivé.
Alan Campbell
Le RPi consomme 5V à environ 700mA et je pense que j'ai besoin d'environ 10 secondes pour arrêter. L'utilisation d'un condensateur a été ma première pensée, mais cela impliquerait environ 100 $ de condensateurs
Nicholas Albion
@NicholasAlbion, le capuchon ne serait pas utilisé pour fournir de l'énergie directement au Pi, mais une tension de grille à un FET (qui contrôlerait un relais). La résistance de grille d'un FET est très élevée, vous n'aurez donc pas besoin d'un grand capuchon pour durer les 10 secondes nécessaires.
Pentium100
0

Toute méthode à retard fixe souffre du problème de ne pas savoir combien de temps le RPi a vraiment besoin de s'arrêter. Il serait préférable d'appuyer sur un bouton qui signale au Pi de s'arrêter, il pourrait alors faire ce dont il a besoin pour un arrêt ordonné et propre, en prenant le temps nécessaire, puis émettre un signal GPIO vers le circuit du bouton-poussoir qui arrête le Puissance. Cela donne au RPi autant de temps qu'il le faut pour faire des choses comme arrêter la carte SD en toute sécurité. Le circuit ne doit pas être trop compliqué. Vous pouvez voir un circuit simple à

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

Le site Web décrit le fonctionnement du circuit.

user22047
la source
Vous faites valoir un bon argument, bien que je ne pense pas que quiconque veuille passer par un tel processus chaque fois qu'il arrête sa voiture. Il serait plus logique pour le RPi de détecter l'arrêt en surveillant la tension de la ligne ACC (uniquement lorsque la voiture est allumée), puis de tuer sa propre alimentation à partir de la ligne 12V "toujours allumée" lorsqu'elle est prête à le faire - automatiser le système.
Kurt E. Clothier
-2

Utilisez 4 piles rechargeables AA. Alimentez le Pi d'eux et chargez-les à partir de la batterie de la voiture.

Utilisez 1 GPIO pour indiquer au Pi si le contact est mis ou coupé.

Arrêtez-vous lorsque vous êtes prêt.

Erfaan56
la source
3
Je pense que cette réponse a besoin de plus de détails pour être utile. Peut-être publier un schéma ou une description de la façon dont vous pensez que cela fonctionnerait et du type de circuit de charge / appareil / contrôle de puissance que vous proposeriez.
PeterJ