🛠 Sommeil profond et watchdog pour économiser la pile

LilyPad Arduino · avance · Schéma : IMG-lilypad-avance-1-lilypad-sleep-watchdog.svg — Carte endormie sous un croissant de lune, icône watchdog avec horloge près de l'ATmega328P et batterie à faible consommation.

Objetivos

Prolongar la autonomía de la pila de 110 mAh del SimpleSnap: poner el ATmega328P en modo power-down, despertarlo con el watchdog y desactivar el ADC antes de dormir. Aprovechamos para desmontar la trampa de los 8 MHz frente a los 16 MHz: un sketch configurado para 16 MHz hace que todo funcione el doble de rápido (delay incorrecto, UART desincronizado).

Material

Código completo

// Sommeil power-down + réveil watchdog (~4 s) — LilyPad ATmega328P @ 8 MHz
#include <avr/sleep.h>
#include <avr/wdt.h>

const uint8_t LED = 13;

ISR(WDT_vect) { /* simple réveil : le travail se fait dans loop */ }

void setup {
  // F_CPU = 8000000 (carte « LilyPad Arduino ») : jamais 16 MHz ici !
  pinMode(LED, OUTPUT);
  ADCSRA &= ~_BV(ADEN);          // ADC coupé : économie immédiate
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // mode le plus profond
  wdt_reset;
  MCUSR  &= ~_BV(WDRF);
  WDTCSR  = _BV(WDCE) | _BV(WDE);      // suite d'accès aux fuseaux watchdog
  WDTCSR  = _BV(WDIE) | _BV(WDP3) | _BV(WDP0); // 2^15 cycles / 8 MHz ≈ 4,1 s
}

void loop {
  digitalWrite(LED, HIGH);       // « battement de cœur » bref
  delay(20);
  digitalWrite(LED, LOW);

  set_sleep_enable(true);
  sleep_cpu;                   // dort jusqu'à l'expiration du watchdog
}

Verificación esperada

El LED emite un breve destello, luego la placa duerme durante unos 4 segundos; el patrón se repite indefinidamente. El amperímetro insertado entre la pila y la placa baja muy por debajo de la corriente en estado activo (LED encendido + CPU a 8 MHz). Si el ritmo parece el doble de rápido, F_CPU está en 16 MHz: vuelva a seleccionar la placa LilyPad y vuelva a cargar el programa.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales