🛠 Lire un capteur analogique avec le SAADC 12 bits

Adafruit Feather nRF52840 Express · debutant · Schéma : IMG-nrf52840-feather-debutant-3-nrf52840-capteur-analogique-saadc.svg — Potentiomètre alimenté en 3,3 V, curseur relié à A0 de la Feather nRF52840, masse commune, tension lue affichée en console.

Objectifs

Configurer le convertisseur analogique-numérique du nRF52840 (SAADC, 6 broches 12 bits sur la Feather) pour lire un potentiomètre, convertir la valeur en millivolts et comprendre la logique 3,3 V. À la fin, vous saurez aussi lire le diviseur de tension batterie pour surveiller un LiPo.

Matériel

Code complet

// nrf52840-capteur-analogique-saadc.ino
const uint8_t SENSOR_PIN = A0;
// Diviseur batterie : sur les Feather nRF52840, le diviseur VIN est cablé sur
// une broche analogique ; la revue D du schéma a une soie-ecrosee D5 la ou
// devrait figurer A6.
// > 
// le schéma officiel Adafruit (github.com/adafruit/Adafruit-nRF52-Bluefruit-Feather-PCB).

void setup {
  Serial.begin(115200);
  analogReadResolution(12);      // 0..4095 sur SAADC 12 bits
  analogReference(AR_INTERNAL_3_6); // reference interne 3,6 V
}

void loop {
  uint16_t raw = analogRead(SENSOR_PIN);
  float mv = raw * 3600.0f / 4095.0f;
  Serial.print("raw="); Serial.print(raw);
  Serial.print("  ~"); Serial.print(mv, 0); Serial.println(" mV");
  delay(100);
}

Vérification attendue

En tournant le potentiomètre, la valeur raw suit 0→4095 et les millivolts 0→3300 environ (course limitée par l'alimentation 3,3 V). Les valeurs sont stables au repos (±2 LSB) ; avec le doigt sur le curseur, un léger bruit normal apparaît.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels