attiny_atmega_verylowpower
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
attiny_atmega_verylowpower [2019/11/19 21:13] – joseph | attiny_atmega_verylowpower [2020/04/06 16:10] (Version actuelle) – serge | ||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
**Conclusion**: | **Conclusion**: | ||
- | ====== Méthode 1 : TinySnore | + | ===== Méthode 1 : TinySnore ===== |
Il suffit d' | Il suffit d' | ||
Ligne 43: | Ligne 43: | ||
Mais on peut faire encore mieux, voir le paragraphe suivant. | Mais on peut faire encore mieux, voir le paragraphe suivant. | ||
- | ====== Méthode 2 : utiliser des interruptions | + | ===== Méthode 2 : utiliser des interruptions ===== |
On peut mettre l' | On peut mettre l' | ||
- | Exemple: | + | Exemple |
- | ====== Références intéressantes | + | < |
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | ISR(PCINT0_vect) { | ||
+ | if (digitalRead(0) | ||
+ | digitalWrite(4, | ||
+ | else if (digitalRead(1) == LOW) # PB1 = pin 6 enfoncé => on éteint la LED | ||
+ | digitalWrite(4, | ||
+ | else if (digitalRead(2) == LOW) # PB2 = pin 6 enfoncé => on allume la LED | ||
+ | digitalWrite(4, | ||
+ | } | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(4, | ||
+ | pinMode(0, | ||
+ | pinMode(1, | ||
+ | pinMode(2, | ||
+ | ADCSRA = 0; // ADC disabled | ||
+ | GIMSK = 0b00100000; | ||
+ | PCMSK = 0b00000111; | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | sleep_enable(); | ||
+ | set_sleep_mode(SLEEP_MODE_PWR_DOWN); | ||
+ | sleep_cpu(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Consommation : | ||
+ | |||
+ | * 0.2 µA en temps normal 8-) | ||
+ | * 0.11 ma = 110 uA quand un bouton est enfoncé (c'est la résistance PullUp interne à l' | ||
+ | * 5.43 mA quand la LED est allumée (normal) | ||
+ | |||
+ | |||
+ | ===== Références intéressantes ===== | ||
https:// | https:// |
attiny_atmega_verylowpower.1574198022.txt.gz · Dernière modification : 2019/11/19 21:13 de joseph