🛠 Lire un potentiomètre avec le vrai ADC 12 bits de la Due

Arduino Due · debutant · Schéma : IMG-due-debutant-2-potentiometre-adc-12-bits.svg — Arduino Due avec un potentiomètre 10 kΩ câblé sur A0 (3,3 V / A0 / GND), moniteur série affichant des valeurs 0–4095 après analogReadResolution(12), puce ADC 12 bits annotée.

Objetivos

Aprovechar el argumento de venta de la Due en el lado analógico: su convertidor analógico-digital es de 12 bits (0–4095), frente a los 10 bits de los Arduino AVR. Vas a cablear un potenciómetro, leer su posición… y descubrir la trampa documentada del core: analogRead devuelve por defecto valores de 10 bits (0–1023) para mantener la compatibilidad con AVR. Hay que solicitarlo explícitamente con analogReadResolution(12).

Material

Código completo

// Lecture 12 bits d'un potentiomètre sur A0
// Fils : potentiomètre broche gauche -> 3V3, curseur -> A0, broche droite -> GND

void setup {
  analogReadResolution(12);   // sans cette ligne : 0..1023 (défaut 10 bits !)
  SerialUSB.begin(115200);    // moniteur sur le port Native
}

void loop {
  int brut = analogRead(A0);            // 0..4095 en 12 bits
  float tension = brut * 3.3f / 4095.0f; // base 3,3 V (Vref de la Due)
  SerialUSB.printf("brut=%d  soit %.3f V\n", brut, tension);
  delay(50);
}

Verificación esperada

Al girar el potenciómetro hasta el final, el valor bruto debe barrer aproximadamente de 0 a 4095 y el voltaje calculado de 0 a 3,3 V. Si comentas analogReadResolution(12), el rango vuelve a 0–1023: esta es la prueba del defecto de 10 bits del core. El voltaje sigue la posición del cursor de forma lineal.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales