🛠 Lire un capteur analogique (potentiomètre)

Arduino Pro Mini · debutant · Schéma : IMG-pro-mini-debutant-3-promini-capteur-analogique.svg — potentiomètre 10 kΩ en diviseur de tension sur A0 de l'Arduino Pro Mini, affichage série de la valeur 0-1023 et de la tension relative à VCC

Objetivos

Descubrir el ADC de 10 bits del ATmega328P en la Pro Mini: la placa expone las entradas A0-A5 en la fila de pines, y la última revisión de SparkFun incluso rompe los canales adicionales ADC6/ADC7 (más allá de los 6 canales del Uno). Punto crucial propio de la Pro Mini: la referencia del ADC es VCC, por lo tanto 5 V en el modelo de 5 V/16 MHz pero 3,3 V en el modelo de 3,3 V/8 MHz — la conversión a voltios depende de tu placa. Conectamos un potenciómetro como divisor de tensión en A0 y mostramos el valor bruto y los milivoltios.

Material

Código completo

// Lecture analogique 10 bits sur A0 — pleine echelle = VCC
const uint8_t CAPTEUR = A0;
const uint32_t FULLSCALE_MV = 5000;  // 3300 pour le modele 3,3 V/8 MHz
uint32_t derniere = 0;

void setup {
  Serial.begin(57600);         // A0 en entrée implicite pour analogRead
}

void loop {
  if (millis - derniere >= 50) {          // 20 affichages/s
    derniere = millis;
    int brut = analogRead(CAPTEUR);         // 0..1023
    uint32_t mv = (uint32_t)brut * FULLSCALE_MV / 1024UL;
    Serial.print(brut);
    Serial.print(F(" -> "));
    Serial.print(mv);
    Serial.println(F(" mV"));
  }
}

Verificación esperada

Al girar el potenciómetro, el valor bruto sigue de 0 (cursor hacia masa) a 1023 (cursor hacia VCC) y los milivoltios siguen de 0-VCC. El trazador serie dibuja una línea continua. Los valores en reposo son estables con una precisión de ±1, prueba de un buen contacto de la masa. En el modelo de 3,3 V, cambia FULLSCALE_MV a 3300: de lo contrario, la tensión mostrada será incorrecta en un +50 %.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales