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

GD32F103 (GigaDevice) — chip + placas compatibles Blue Pill · intermediaire · Schéma : IMG-gd32f103-intermediaire-2-adc-potentiometre.svg — potentiomètre entre 3,3 V et masse, curseur relié à PA1, conversion ADC 12 bits du GD32F103C8 affichée sur la console série

Objetivos

Configurar y leer una entrada analógica: el GD32F103C8 incorpora ADC SAR de 12 bits de hasta 1 MSPS (atención: ADC2 no está presente en las variantes C4/C6/C8/CB) y la frecuencia de reloj del ADC nunca debe superar los 14 MHz. Con el núcleo CommunityGD32Cores, analogRead devuelve nativamente un valor de 12 bits (0-4095), más preciso que los 10 bits de un Arduino clásico. Vas a convertir la posición de un potenciómetro en milivoltios.

Material

Código completo

// adc_pot.ino — GD32F103C8, core CommunityGD32Cores
const uint8_t POT_PIN = PA1;    // entrée analogique (canal IN1) > 

void setup {
  Serial.begin(115200);
  pinMode(POT_PIN, INPUT);
}

void loop {
  uint16_t brut = analogRead(POT_PIN);        // 12 bits : 0..4095
  uint16_t mv   = (uint32_t)brut * 3300UL / 4096UL;
  Serial.print("ADC = ");
  Serial.print(brut);
  Serial.print("  ->  ");
  Serial.print(mv);
  Serial.println(" mV");
  delay(100);
}

Verificación esperada

Al girar el potenciómetro, el valor sigue la posición desde aproximadamente 0 (cursor hacia masa) hasta 4095 / aproximadamente 3300 mV (cursor hacia 3,3 V). En reposo, con el dedo sobre el cursor, el valor puede variar: es normal, una entrada no pilotada capta ruido. La conversión es estable cuando sueltas el botón.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales