🛠 Fonctionnement sur batterie LiPo et sommeil profond

Arduino Nicla Vision · avance · Schéma : IMG-nicla-vision-avance-2-niclavision-sommeil-bas-courant.svg — Nicla Vision alimenté par une batterie LiPo sur ses pads JST, chronologie éveil court / sommeil profond entre deux appuis bouton

Objetivos

Alimentar el Nicla Vision de forma autónoma con una batería LiPo y prolongar la autonomía sumergiendo el STM32H747 en sueño profundo entre dos eventos, con despertar mediante botón.

Material

Código completo

// Sommeil profond STM32H747 via Mbed, reveil par EXTI sur bouton D0
// > 
#include "mbed.h"

const pin_t BUTTON = D0;
volatile bool reveille = false;

void onReveil { reveille = true; }

void setup {
  pinMode(LED_BUILTIN, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(BUTTON), onReveil, FALLING);
}

void loop {
  // 1) tache breve : signal d vie
  digitalWrite(LED_BUILTIN, LOW); delay(50);
  digitalWrite(LED_BUILTIN, HIGH);

  // 2) extinction des peripheriques inutiles pendant le sommeil
  //    (couper camera, radio si initialises : les debrancher explicitement)

  // 3) sommeil profond : M7 et horloges principales a l arret
  reveille = false;
  while (!reveille) {
    sleep_deeplow;   // retourne au premier evenement EXTI
    delayMicroseconds(200); // anti-rebond grossier
  }
  delay(300);          // laisse le temps au rebond de retomber
}

Verificación esperada

Entre dos pulsaciones, el LED permanece apagado y la corriente medible cae drásticamente (> NO VERIFICADO: valor exacto a determinar en la prueba). Cada pulsación produce un destello de 50 ms. El reloj millis continúa mediante el ticker, pero el RTC original funciona con LSI: el MCUboot está compilado con lse_available=false y reconfigura el RTC desde el LSE externo hacia el LSI en cada reinicio duro — el calendario se pierde por tanto al reprogramar, a tener en cuenta para un sellado de tiempo de registro.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales