🛠 Lire un capteur analogique : potentiomètre et ADC 10 bits

Arduino Leonardo — Ficha de placa · debutant · Schéma : IMG-leonardo-debutant-3-leonardo-capteur-analogique.svg — Potentiomètre alimenté en 5V/GND, curseur relié à A0 sur une Leonardo, courbe de valeur à l'écran

Objetivos

Descubrir el convertidor analógico-digital (ADC) de 10 bits del ATmega32u4: analogRead devuelve un entero de 0 a 1023 proporcional a la tensión en el pin, entre 0 V y 5 V. También aprenderá la particularidad de las entradas analógicas de la Leonardo: 12 entradas A0 a A11, de las cuales A6 a A11 comparten (multiplexan) los pines digitales 4, 6, 8, 9, 10 y 12 — la numeración del núcleo Arduino es, de hecho, fuente de confusión en estos pines.

Material

Código completo

const uint8_t POT_PIN = A0; // A0-A5 : broches analogiques « classiques »

void setup {
  Serial.begin(9600); // Serial = USB CDC sur Leonardo
  while (!Serial) { }
}

void loop {
  int brut = analogRead(POT_PIN);          // 0..1023 (ADC 10 bits)
  float tension = brut * (5.0 / 1023.0);   // tension approximative en volts
  int pourcent = map(brut, 0, 1023, 0, 100);
  Serial.print("brut="); Serial.print(brut);
  Serial.print(" ~"); Serial.print(tension);
  Serial.print(" V  ("); Serial.print(pourcent); Serial.println(" %)");
  delay(100);
}

Verificación esperada

Al girar el potenciómetro a mano, los valores mostrados siguen: aproximadamente 0 en un extremo, aproximadamente 1023 en el otro, y la tensión calculada permanece entre 0 y 5 V. Si el valor salta mucho en reposo, es normal: una entrada analógica no conectada a una fuente de baja impedancia capta ruido.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales