Comment programmez-vous un mode veille pour votre Arduino? Surtout pour les conceptions alimentées par batterie, quelles sont les bonnes techniques pour mettre le processeur en veille mais se réveiller uniquement en cas de besoin?
Comment programmez-vous un mode veille pour votre Arduino? Surtout pour les conceptions alimentées par batterie, quelles sont les bonnes techniques pour mettre le processeur en veille mais se réveiller uniquement en cas de besoin?
Réponses:
avr / sleep.h peut avoir ce dont vous avez besoin - la documentation est à http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
Il y a cependant des avertissements sur la mise en veille du processeur :)
J'espère que cela t'aides.
gardez à l'esprit qu'en fonction de votre mode veille, il y a quelques sources d'interruption en cours d'exécution sur votre arduino. timer0 génère une interruption de débordement qui réveillera votre arduino environ toutes les millisecondes et l'uart générera une interruption à chaque fois qu'il y aura un personnage entrant. ... et, bien sûr, il y a les interruptions externes sur les broches 2 et 3 que vous avez peut-être activées ou non à l'aide de la fonction attachInterrupt.
lorsqu'une interruption se produit, votre esquisse sera réveillée du sommeil et une fois l'interruption réparée, elle continuera à fonctionner à partir du point où elle s'est endormie. la solution à cela est de configurer votre esquisse pour qu'elle se remette en veille à chaque boucle, à moins qu'il ne soit vraiment temps de se réveiller.
ici, ma bibliothèque de sommeil Arduino