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

Raspberry Pi Pico · debutant · Schéma : IMG-pico-debutant-3-pico-adc-potentiometre.svg — potentiomètre relié à 3V3, GND et GP26 (ADC0) de la Pico, tension USB et console série affichant les valeurs

Objetivos

Utilizar el convertidor analógico-digital de la Pico: un SAR de 12 bits, 4 canales a 500 ksps (GP26 = ADC0, GP27 = ADC1, GP28 = ADC2; ADC3 = VSYS/3 y ADC4 = sonda de temperatura interna). Leerás un potenciómetro y mostrarás los valores en la consola serie USB. Atención: la Pico no tiene DAC — el ADC es la única vía analógica, solo de lectura.

Material

Código completo

// adc_pot.c — ADC0 (GP26), moyenne sur 16 échantillons
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/adc.h"

int main(void) {
    stdio_init_all;               // console sur USB (stdio_usb)
    adc_init;
    adc_gpio_init(26);              // GP26 en mode ADC
    adc_select_input(0);            // canal ADC0
    while (true) {
        uint32_t sum = 0;
        for (int i = 0; i < 16; i++) sum += adc_read;
        uint16_t raw = sum / 16;
        float mv = raw * 3300.0f / 4095.0f;
        printf("raw=%u  ~%.0f mV\n", raw, mv);
        sleep_ms(200);
    }
}

Verificación esperada

Al girar el potenciómetro, los valores varían de ~0 a ~4095 (12 bits) y el voltaje calculado sigue 0 → 3,3 V. Los valores pueden tener algo de ruido: es normal, el ADC de la Pico utiliza su propia alimentación de 3,3 V filtrada como referencia, con un offset inherente de aproximadamente 30 mV documentado en la hoja de datos.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales