🛠 Low-power : extinction, sommeil et réveil

micro:bit V2 (BBC micro:bit v2) · avance · Schéma : IMG-microbit-v2-avance-3-microbit-v2-low-power-sommeil-reveil.svg — micro:bit V2 alimentée par une pile JST, icône lune de sommeil sur la matrice, bouton A et pictogramme mouvement entourés comme sources de réveil

Objetivos

Alimentar la micro:bit V2 con batería ahorrando energía: comprender el apagado (mantener reset 3 s, o power.off), el reinicio y la lectura de la causa del reinicio con power.reset_reason. El regulador integrado de la V2 está diseñado para proyectos con batería (300 mA en total, de los cuales ~190 mA para el conector de borde).

Material

Código completo

from microbit import *
import power

# Au démarrage : pourquoi la carte s'est-elle réveillée ?
reason = power.reset_reason
if reason == power.ResetReason.WAKEUP_BUTTON:
    display.show(Image.YES)      # réveillée par un bouton
elif reason == power.ResetReason.SOFT_RESET:
    display.show(Image.HAPPY)
else:
    display.show(Image.THUMBS_UP)

sommeil = 0
while True:
    display.show(Image.SLEEP)
    # Compter les appuis avant extinction
    while not button_a.is_pressed and not accelerometer.was_gesture("shake"):
        sleep(100)
        # (le comptage d'événements se fait via les flags MicroPython)
    sommeil += 1
    display.scroll("REVEIL %d" % sommeil)
    sleep(1500)
    display.clear
    power.off   # extinction complète ; réveil par bouton/reset

power.off apaga la placa; el despertar físico (botón A/B o pulsación de reset) reinicia el programa, que puede entonces distinguir el origen mediante reset_reason. Para un verdadero sueño profundo con despertar por interrupción de movimiento, es necesario utilizar el runtime CODAL (C/C++), ya que MicroPython no expone una API de suspensión con fuente de acelerómetro.

Verificación esperada

Tras power.off, la placa está totalmente apagada (matriz negra, ningún LED). Una pulsación de A la enciende y muestra una marca de verificación si la causa es efectivamente el botón. Con pila, la autonomía en estado apagado es muy superior al funcionamiento continuo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales