🛠 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.

Objetivos

Configurar el convertidor analógico-digital del nRF52840 (SAADC, 6 pines de 12 bits en la Feather) para leer un potenciómetro, convertir el valor a milivoltios y comprender la lógica de 3,3 V. Al final, también sabrás leer el divisor de tensión de la batería para monitorizar una LiPo.

Material

Código completo

// 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 schema a une soie-ecrosee D5 la ou
// devrait figurer A6.
// > 
// le schema 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);
}

Verificación esperada

Al girar el potenciómetro, el valor raw sigue de 0→4095 y los milivoltios de 0→3300 aproximadamente (recorrido limitado por la alimentación de 3,3 V). Los valores son estables en reposo (±2 LSB); con el dedo sobre el cursor, aparece un ligero ruido normal.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales