🛠 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é.

Objectifs

Lire un potentiomètre sur une vraie entrée ADC (GP26-GP28 uniquement, GP29 étant détournée vers le moniteur VSYS/3 de la radio), convertir la valeur brute en pourcentage, et comprendre l'offset d'environ 30 mV inhérent à l'alimentation ADC filtrée de la carte.

Matériel

Code complet

# main.py - MicroPython, potentiomètre 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, même principe avec adc_init, adc_gpio_init(26), adc_select_input(0) et adc_read.

Vérification attendue

En tournant le potentiomètre à fond, la valeur affichée balaye 0 % à 100 % de façon continue. Au repos, la lecture est stable à quelques unités près ; le canal masse renvoie une valeur proche de zéro après soustraction de l'offset.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels