Outils pour utilisateurs

Outils du site


attiny_atmega_verylowpower

Ceci est une ancienne révision du document !


1 an avec un ATtiny / ATmega avec des piles ?

Pour rappel, ATmega = le chip d'un Arduino et un ATtiny c'est encore plus petit.

Un ATtiny45/85 en marche consomme à peu près 1mA à 1Mhz (et 5mA à 8Mhz), voir https://arduino.stackexchange.com/questions/13983/attiny85-power-consumption-vs-clock-speed/13987#13987

En un an, cela consommerait 8760 mAh ; ce qui dépasse largement la capacité de piles 1.5V.

Mais il est possible d'atteindre … 0.2 µA, c'est à dire 5000 fois moins de consommation si l'on met l'ATtiny en “sommeil profond” de temps en temps.

Conclusion: 1 an? Pfiouu, petit joueur! On peut atteindre 100 ans de durée avec une seule pile bouton de 3V et l'ATtiny qui ne se réveille que lorsqu'un bouton est pressé (voir Méthode 2 ci-dessous) :) En bref, l'auto-décharge de la pile par elle-même consommera plus que l'ATtiny!

Méthode 1 : TinySnore

Il suffit d'inclure “tinysnore.h” ici: https://github.com/connornishijima/TinySnore et de remplacer les commandes delay(…) par snore(…).

#include "tinysnore.h"

void setup() {
  pinMode(4, OUTPUT);  // LED
}

void loop() {
  digitalWrite(4, HIGH); delay(100); digitalWrite(4, LOW);  // on allume la LED pendant 100ms
  snore(1000);                                              // puis on dort profondément pendant 1 seconde
}

On descend à une très faible consommation de 4.7 µA pendant la période de sommeil ! Mais 1 seconde de sommeil peut être beaucoup pour certaines applications. Exemple avec 20ms de sommeil:

void loop() {
  ...
  snore(20);   
}

J'ai obtenu 0.82 mA à 8mhz, et 0.24 mA à 1mhz avec des périodes de 20ms de sommeil profond.

Mais on peut faire encore mieux, voir le paragraphe suivant.

Méthode 2 : utiliser des interruptions

On peut mettre l'ATtiny en Low power jusqu'à ce qu'un pin ne change d'état avec une interruption.

Exemple: https://github.com/rocketscream/Low-Power/blob/master/Examples/powerDownWakeExternalInterrupt/powerDownWakeExternalInterrupt.ino

Références intéressantes

attiny_atmega_verylowpower.1574197843.txt.gz · Dernière modification : 2019/11/19 21:10 de joseph