🛠 Fonctionner sur batterie LiPo et économiser l'énergie

Arduino MKR WiFi 1010 · avance · Schéma : IMG-mkr-wifi-1010-avance-3-mkrwifi-batterie-sommeil.svg — MKR WiFi 1010 alimentée par une batterie LiPo mono-élément via le connecteur JST, circuit de charge BQ24195L, LED ON éteinte sur batterie, cycle réveil par interruption externe vers le SAMD21 en sommeil.

Objetivos

Alimentar la MKR WiFi 1010 con una batería LiPo de un solo elemento de 3,7 V (conector JST, se recomiendan ≥1024 mAh) con cargador integrado — el PMIC es el TI BQ24195L (flag core -DUSE_BQ24195L_PMIC) — y construir un ciclo eficiente: medir, transmitir una ráfaga WiFi, dormir (__WFI) hasta una interrupción externa. Recordatorios críticos: el LED ON permanece apagado con batería (riel de 5 V) y VIN solo acepta 5–6 V regulados, no los 6–12 V brutos de los Arduino AVR.

Material

Código completo

#include <WiFiNINA.h>
const uint8_t PIN_WAKE = A1;   // pin 16, interruption externe possible

void setup {
  Serial.begin(115200);
  pinMode(PIN_WAKE, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(PIN_WAKE), reveil, FALLING);
}

void reveil { /* reveille le SAMD21 via __WFI */ }

void loop {
  // 1) Rafale : lecture capteur + envoi rapide
  Serial.println("mesure...");
  // ... lecture ADC, connexion WiFi, envoi, WiFi.end ...
  WiFi.disconnect;
  WiFi.end;                    // coupe la radio NINA, gros gain

  // 2) Sommeil : le CPU attend l'interruption (broche 0,1,4,5,6,7,8,9,
  //    16/A1, 17/A2 supportent les interruptions externes).
  noInterrupts;
  if (digitalRead(PIN_WAKE) == HIGH) {  // pas d'appui deja en cours
    __WFI;
  }
  interrupts;
  delay(100);
}

Verificación esperada

Con batería, la placa funciona correctamente aunque el LED ON esté apagado (comportamiento normal, FAQ oficial). El botón despierta la placa: el monitor (si el USB está conectado para la prueba) muestra una nueva medición. Al desconectar el USB, la corriente medible cae después de WiFi.end — la radio es el primer elemento de consumo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales