🛠 Lire un potentiomètre avec l'ADC 12 bits

Raspberry Pi Pico 2 W · debutant · Schéma : IMG-pico-2-w-debutant-3-pico2w-adc-potentiometre.svg — potentiomètre relié à GP26, 3V3 et GND, convertisseur ADC 12 bits du RP2350 et offset d'environ 30 mV annoté.

Objetivos

Leer un potenciómetro en una entrada ADC real (solo GP26-GP28, ya que GP29 está desviado al monitor VSYS/3 de la radio), convertir el valor bruto en porcentaje y comprender el offset de aproximadamente 30 mV inherente a la alimentación ADC filtrada de la placa.

Material

Código completo

# main.py - MicroPython, potentiometre sur GP26 (ADC0)
import machine, time

pot = machine.ADC(26)

def lire_pct:
    brut = pot.read_u16 >> 4        # 12 bits
    # offset ~30 mV du a la filtre d'alim ADC (datasheet paragraphe 3.3)
    offset = int(30.0 / 3300.0 * 4095)
    if brut > offset:
        brut -= offset
    return brut * 100 // (4095 - offset)

while True:
    print("Potentiometre :", lire_pct, "%")
    time.sleep_ms(500)

En C, el mismo principio con adc_init, adc_gpio_init(26), adc_select_input(0) y adc_read.

Verificación esperada

Al girar el potenciómetro a fondo, el valor mostrado recorre continuamente del 0 % al 100 %. En reposo, la lectura es estable con una desviación de algunas unidades; el canal conectado a masa devuelve un valor cercano a cero tras restar el offset.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales