🛠 Lire un capteur analogique sur A1

Arduino MKR GSM 1400 · debutant · Schéma : IMG-mkr-gsm-1400-debutant-3-mkrgsm-capteur-analogique.svg — MKR GSM 1400 avec un potentiomètre alimenté en 3,3 V dont le curseur est relié à l'entrée analogique A1, tension affichée sur la console USB.

Objetivos

Utilizar las entradas analógicas de la MKR GSM 1400: la tarjeta dispone de 7 entradas A0–A6 con un ADC de 12 bits (ADC_RESOLUTION 12 en la variante del core), y A0 es también la salida DAC. Este tutorial lee un potenciómetro en A1, promedia varias muestras y enciende el LED integrado por encima de un umbral — el patrón básico de cualquier sensor analógico (sonda de nivel, sensor de calidad de agua tipo WaterAid, etc.).

Material

Código completo

// Capteur analogique sur A1, ADC 12 bits, moyenne mobile + seuil LED
const uint8_t CAPTEUR = A1;
const uint16_t SEUIL  = 2048;   // milieu de l'echelle 12 bits (0..4095)

uint16_t lireMoyenne(uint8_t broche, uint8_t n) {
  uint32_t somme = 0;
  for (uint8_t i = 0; i < n; i++) {
    somme += analogRead(broche);
    delay(2);
  }
  return somme / n;
}

void setup {
  analogReadResolution(12);      // 12 bits par defaut, explicite ici
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  while (!Serial) {}
}

void loop {
  uint16_t v = lireMoyenne(CAPTEUR, 16);
  // Tension approximative : ADC alimente en 3,3 V, pleine echelle 4095.
  float mv = v * 3300.0f / 4095.0f;
  Serial.print("A1 brut : "); Serial.print(v);
  Serial.print("  ~"); Serial.print(mv);
  Serial.println(" mV");
  digitalWrite(LED_BUILTIN, v > SEUIL ? HIGH : LOW);
  delay(200);
}

Verificación esperada

Al girar el potenciómetro, el valor bruto sigue de 0 a aproximadamente 4095 y el voltaje mostrado permanece cercano a 0–3300 mV. El LED integrado se enciende a mitad de recorrido. El promedio de 16 muestras estabiliza la lectura: sin él, los últimos decimales fluctúan, especialmente cuando el módulo de radio transmite (en esta etapa está inactivo).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales