🛠 Bouton et potentiomètre sans marcher sur le sans-fil (GPIO libres & ADC)

Raspberry Pi Pico W · debutant · Schéma : IMG-pico-w-debutant-3-picow-gpio-libres.svg — Pico W sur breadboard, bouton poussoir sur GP2 vers GND et potentiomètre sur GP26 (ADC0), broches GP23 à GP25 et GP29 barrées en rouge avec étiquette reserve radio, console serie affichant les valeurs ADC

Objectifs

La Pico W hérite de toute la partie microcontrôleur du RP2040 : 2× UART, 2× SPI, 2× I²C, 16 canaux PWM, ADC SAR 12 bits 500 ksps, 8 machines PIO… Mais le sans-fil a mangé une partie du brochage : seules GP0–GP22 et GP26–GP28 sont librement utilisables (26 pastilles, dont 3 entrées analogiques). Ce tuto t'apprend à câbler un bouton et un potentiomètre sans jamais toucher aux broches réservées, et à lire l'ADC correctement sur une carte qui a ses pièges.

Matériel

Code complet

# gpio_adc.py — bouton GP2 + potentiomètre GP26/ADC0 (MicroPython Pico W)
from machine import Pin, ADC
import time

btn = Pin(2, Pin.IN, Pin.PULL_UP)     # bouton GP2 -> GND, actif à 0
pot = ADC(26)                          # GP26 = ADC0 (GP26..GP28 seules
                                       # entrées ADC sorties sur la Pico W)
while True:
    raw = pot.read_u16               # 16 bits MicroPython (0..65535)
    mv = raw * 3300 // 65535
    état = 'APPUIE' if not btn.value else 'repos'
    print(f'adc={raw:5d} ~{mv} mV  bouton={état}')
    time.sleep_ms(200)
# > NE PAS UTILISER : GP23 (power-on radio), GP24 (SPI data/IRQ),
# GP25 (SPI CS), GP29 (SPI CLK radio, partagé ADC3=VSYS/3).

Vérification attendue

En tournant le potentiomètre, la valeur suit 0 → 65535 et les mV calculés suivent 0 → 3,3 V ; l'appui sur le bouton bascule l'état affiché. Deux pièges ADC documentés dans la datasheet Pico W : (1) ADC_VREF est filtrée depuis le 3V3 via une résistance de 200 Ω, ce qui crée un offset inhérent d'environ 30 mV ; (2) la lecture VSYS/3 (ADC3) est corrompue pendant les transactions SPI du Wi-Fi — et GP29 est justement l'horloge SPI du CYW43439, donc ne compte pas dessus avec le radio actif.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels