🛠 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

Objetivos

La Pico W hereda toda la parte de microcontrolador del RP2040: 2× UART, 2× SPI, 2× I²C, 16 canales PWM, ADC SAR de 12 bits a 500 ksps, 8 máquinas PIO… Pero la parte inalámbrica ha consumido parte del cableado: solo GP0–GP22 y GP26–GP28 son libremente utilizables (26 pines, de los cuales 3 son entradas analógicas). Este tutorial te enseña a conectar un botón y un potenciómetro sin tocar nunca los pines reservados, y a leer correctamente el ADC en una placa que tiene sus trampas.

Material

Código completo

# 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
    etat = 'APPUIE' if not btn.value else 'repos'
    print(f'adc={raw:5d} ~{mv} mV  bouton={etat}')
    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).

Verificación esperada

Al girar el potenciómetro, el valor sigue de 0 → 65535 y los mV calculados siguen de 0 → 3,3 V; la pulsación del botón cambia el estado mostrado. Dos trampas del ADC documentadas en la hoja de datos de la Pico W: (1) ADC_VREF está filtrada desde 3V3 mediante una resistencia de 200 Ω, lo que crea un offset inherente de aproximadamente 30 mV; (2) la lectura de VSYS/3 (ADC3) se corrompe durante las transacciones SPI del Wi-Fi — y GP29 es precisamente el reloj SPI del CYW43439, así que no cuentes con ello con la radio activa.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales