Arrêter arduino par le code ou par transistor

J'ai fait un pcb avec un ATMEGA32U4. Il fonctionne en 3.3v et il est alimenté avec une batterie lipo en 3.7v via un régulateur de tension AP2112K-3.3.
La charge de la batterie est assurée par un MCP73831T-2ATI_OT et le niveau de la batterie est suivie par un MAX17048G+T10.
Pour sélectionner la source d'alimentation externe via usb ou interne via batterie, j'ai un mosfet ZXMP6A13FTA et une diode BAT20JFILM.
Le pcb peut être placé sur une station de charge via le port usb.
Le microcontroleur démarre lorsqu'on l'enlève de la station de charge et s'arrête lorsqu'on le replace sur la station de charge.
Pour cela, j'ai utilisé un 2N7000, j'ai connecté la grille du mosfet au VBUS, j'ai connecté le drain à la masse et j'ai connecté la source au reset du microcontrôleur.
Quand le microcontrôleur est branché sur l'USB, il s'arrête et quand je débranche l'usb, le microcontrôleur démarre.
Maintenant je voudrais pouvoir arrêter le microcontrôleur au bout d'un certain temps si il n'est pas replacé sur sa station de charge. Le montage final ne comporte pas de bouton. Comment faire?

Bonsoir

un petit schéma , même à main levée ne serait pas de trop...... :wink:

je voudrais pouvoir arrêter le microcontrôleur au bout d'un certain temps

Ce 'un certain temps' il se mesure en minutes , en heures , en jours ?

chosis une capacité d'accu en fonction du temps de fonctionnement désiré ! accu vide=arrêt garanti

+pour rester cohérent avec le fil de discussion précédent tu devrais sans doute ajouter ici que le montage final ne doit pas comporter de bouton.....

Oui la solution du 2N7000 marche parfaitement (j'ai du inverser source et drain par rapport à ta proposition)
j'essaye de mettre mon schematic en espérant qu'il soit lisible...
schematic.pdf (122.4 KB)
Pour mon problème, j'avais pensé mettre en pause l'AP2112K par la broche EN, mais le reste du circuit continuera à fonctionner?

J’utilise la gamme de power switch de pololu pour piloter l’extinction totale de certains montages

Il y’a différentes sortes

oui j'aurai du préciser que le montage final ne comporte pas de bouton.
Le temps avant l'arrêt souhaité si pas utilisé se mesure en minutes, et si le microcontrôleur est utilisé, le temps de fonctionnement est en heures. De plus, je pense que vider complètement une batterie, ça l'abime?

si tu acceptais un simple petit bouton poussoir (appui momentané) pour activer manuellement la mise en marche l'arrêt temporisé serait plus facile à réaliser.......

pas si elle est protégée contre les décharges profondes

On n’est pas obligé d’utiliser le bouton du power switch, on peut allumer sur interruption (je suppose she c’est comme cela ?) et éteindre par le code


Si c’est la suite d’un autre post le mieux aurait été de continuer dans l’autre file pour avoir le contexte

je partage cet avis. Fusionner les 2 fils de discussion ?

perso : j'attends le schéma, il y a peut être quelque chose à exploiter avec les composants déjà en place........

j'ai mis le schematic en pdf dans un message précédent.
en image,

Pour le bouton, j'avais déjà fait une version avec, mais justement je veux l'enlever pour complétement encapsuler le pcb (la recharge se fera en pogo)
Comment peut on fusionner 2 fils de discussion?

désolé je n'avais pas vu le schéma joint au fil précédent....

pour info : le schéma montre un régulateur de tension AP2112K doté d'une entrée EN qui permet d'arrêter ou mettre en marche le µC .....

@zjbjbjbz Mettre l'ATMega en sommeil au bout d'un certain temps ne te suffirait pas ?
En choisissant SLEEP_MODE_POWER_DOWN le µC cesserait son activité et la consommation serait très faible

un article comple sur le sujet : Gammon Forum : Electronics : Microprocessors : Power saving techniques for microprocessors

la fusion des 2 fils de discussions est l'affaire de la modération du forum.... à suivre...

Oui j ai essayé mais je n'arrive pas à sortir de la veille
et que penses tu de mettre le régulateur de tension en disabled?

Qu’est-ce qui devrait faire sortir le système de la veille ?

@ J-M-L le fait de remettre le microcontrôleur sur la station de charge puis de l'en enlever

LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

Ave cette configuration toutes les 8s environ le µC se reveille tout seul (temps unitaire maxi de sommeil d'un ATMega). on peut alors choisir dans le code le replonger immédiatement en sommeil et ce à répétition.......

de plus si je comprend ton objectif @zjbjbjbz l'appareil en sommeil est destiné à être rechargé .... d'ou un Reset forcé par le 2N7002 et un nouveau départ au retrait du chargeur à nouveau par le 2N7002

Ok

Et il n’y a que les pins de charge sur le
Socle ?

sur le socle pin de charge plus pins usb+ et usb-, mais je peux en rajouter.
Je regarde la datasheet de l'AP2112K , le pin EN doit être sur high pour enabled et low pour disabled. je ne pourrais pas piloter ce pin?

si bien entendu , ça sert à ça ! (cf message #10)

oui mais au démarrage, si je pilote le pin EN à partir d'un GPIO le pin est à LOW et l'AP2112K ne pourra pas alimenter le microcontrôleur

oui , le signal appliqué à EN doit tenir compte de toutes les contraintes de fonctionnement : mis à 1 dès le retrait du chargeur, mis à 0 par le code au bout du temps choisi OU à la connection du chargeur

bien gérée l'entrée EN du régulateur peut rendre inutile le 2N7002 pilotant le Reset (quand j'ai proposé ce mosfet je ne connaissais pas le besoin d'arrêt temporisé et je n'avais la le schéma sous les yeux...)

oula, je ne suis pas sur de comprendre, quand la carte est sur la station de charge, le microcontrôleur est à l'arrêt. Quand je le retire de la station, et qu'il démarre tous les gpio sont à LOW, donc je ne permet au régulateur de fonctionner, etc..