🛠 MicroPython sur Pico 2 : moniteur de tension VSYS

Raspberry Pi Pico 2 · intermediaire · Schéma : IMG-pico-2-intermediaire-3-pico2-micropython-vsys.svg — Pico 2 alimentée par une batterie sur VSYS, tension mesurée en interne par ADC3 (GP29, diviseur /3), REPL série affiché à l'écran

Objectifs

Installer MicroPython spécifique RP2350 sur la Pico 2, utiliser le REPL Thonny, et exploiter les broches système propres à la Pico 2 : GP29 = VSYS/3 pour surveiller une batterie, GP23 = mode SMPS pour un ADC plus propre, GP24 = détection VBUS.

Matériel

Code complet

# main.py — moniteur VSYS + LED d'alerte, Pico 2 / MicroPython >= 1.24
import time
from machine import Pin, ADC

led = Pin(25, Pin.OUT)          # LED utilisateur GP25 (confirmee datasheet)
smps = Pin(23, Pin.OUT)         # GP23 : niveau haut = SMPS en mode PWM
smps.value(1)                   # moins de ripple -> ADC plus stable
vsys = ADC(3)                   # ADC3 = VSYS/3 (GP29, diviseur interne)
vbus = Pin(24, Pin.IN)          # GP24 : presence USB

def lire_vsys:
    total = 0
    for _ in range(16):         # moyenne grossiere anti-bruit
        total += vsys.read_u16
        time.sleep_us(100)
    return total / 16 / 65535 * 3.3 * 3   # 16 bits -> tension, x3 divider

while True:
    v = lire_vsys
    led.value(v < 3.6)          # alerte batterie faible
    print("VSYS = %.2f V  USB = %d" % (v, vbus.value))
    time.sleep_ms(500)

Vérification attendue

Sous Thonny, le REPL affiche les valeurs toutes les 500 ms. En branchant l'USB, USB = 1 et VSYS ≈ 5 V ; sur batterie 3,7 V, on lit ≈ 3,7 V et la LED reste éteinte tant que V > 3,6 V.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels