🛠 Sommeil profond et réveil programmé ou sur broche

Raspberry Pi Pico 2 W · avance · Schéma : IMG-pico-2-w-avance-8-pico2w-sommeil-reveil.svg — Pico 2 W sur batterie avec convertisseur RT6154, chronomètre d'alarme, réveil par GPIO et courant de veille en µA.

Objetivos

Alimentar la Pico 2 W con batería obliga a dormir: poner en reposo el RP2350 entre dos lecturas, despertarlo a una hora fija mediante alarmas de hardware (1 temporizador + 4 alarmas) o mediante un flanco GPIO, y medir la ganancia. Atención: el CYW43 debe apagar su parte de radio, y las corrientes específicas de la Pico 2 W (incluida la radio) no están publicadas en la hoja de datos.

Material

Código completo

// main.c - cycle : reveil -> releve -> dormant -> alarme 30 s plus tard
#include "pico/stdlib.h"
#include "pico/sleep.h"

#define BOUTON_REVEIL 15

int main(void) {
    stdio_init_all;
    sleep_init_runsleep_and_sleep_mode(
        SLEEP_MODE_DORMANT,
        WAKE_ON_GPIO | WAKE_ON_ALARM_0 | WAKE_ON_RP2350_DORMANT_WAKEUP_SOURCE_GPIO);
    gpio_init(BOUTON_REVEIL);
    gpio_set_dir(BOUTON_REVEIL, GPIO_IN);
    gpio_pull_up(BOUTON_REVEIL);
    while (true) {
        printf("Releve : je travaille\n");   // tache utile ici
        sleep_run_when_both_cores;          // les deux coeurs doivent dormir
        sleep_goto_dormant_until_timer_alarm_absolute(
            make_timeout_time_ms(30000));     // ou : bouton sur GP15
        printf("Reveille !\n");
    }
}

Verificación esperada

La placa imprime Lectura cada 30 segundos en modo alarma, e inmediatamente cuando se pulsa GP15 en modo despertar por GPIO. Un amperímetro en serie con la batería muestra una caída neta de la corriente durante el sueño (órdenes de magnitud del Pico 2: 148-233 microamperios, radio apagada).

Errores frecuentes

> NO VERIFICADO: corriente exacta del Pico 2 W en reposo, incluido el CYW43 — no publicada; medir en su propio montaje.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales