🛠 Lire un capteur analogique sur A0

Arduino MKR NB 1500 · debutant · Schéma : IMG-mkr-nb-1500-debutant-3-mkrnb-capteur-analogique.svg — Potentiomètre alimenté en 3,3 V dont le curseur est relié à la broche A0 d'une MKR NB 1500, broche A0 également marquée DAC0

Objectifs

Lire un capteur analogique (potentiomètre, thermistance, capteur de lumière) sur l'entrée A0 du MKR NB 1500. Le SAMD21 possède un ADC 10 bits (0–1023) limité à 3,3 V, et A0 (PA02) est aussi la sortie DAC du microcontrôleur : la même broche sait mesurer et générer une tension analogique.

Matériel

Code complet

// Lecture ADC + boucle DAC — MKR NB 1500
const uint8_t SENSOR_PIN = A0;   // PA02 : entrée ADC0 + sortie DAC (DAC0)

void setup {
  Serial.begin(9600);
  while (!Serial);
  analogReadResolution(10);      // ADC SAMD21 : 10 bits par defaut
}

void loop {
  int raw = analogRead(SENSOR_PIN);              // 0..1023 pour 0..3,3 V
  uint32_t mv = (uint32_t)raw * 3300UL / 1023UL; // tension en millivolts

  Serial.print("raw="); Serial.print(raw);
  Serial.print(" -> "); Serial.print(mv); Serial.println(" mV");

  analogWrite(DAC0, raw);        // reemet la même tension en 0..3,3 V
  delay(500);
}

Vérification attendue

Tournez le potentiomètre : la valeur affichée passe de 0 à 1023 et les millivolts suivent. En reliant A0 (via un condensateur 100 nF vers GND pour lisser) à une autre entrée analogique, la tension recopiée par le DAC se retrouve identique — la boucle mesure/restitution fonctionne.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels