🛠 Lire un capteur analogique (potentiomètre)
Objectifs
Lire un capteur analogique (potentiomètre) sur l'ADC du SAMD21G18A : la MKR WAN 1310 dispose de 7 entrées analogiques configurables en 8, 10 ou 12 bits, et d'une sortie DAC 10 bits. On apprend à changer la résolution de lecture et à tracer la courbe dans le traceur série.
Matériel
- 1 carte MKR WAN 1310
- 1 potentiomètre (10 kΩ conseillé)
- Câblage : deux broches extrêmes sur 3,3 V et GND, curseur sur A0 (logique 3,3 V, ne jamais dépasser 3,3 V sur une broche)
Code complet
// Lecture analogique 12 bits sur A0 — MKR WAN 1310
const int CAPTEUR = A0;
void setup {
Serial.begin(115200);
while (!Serial);
analogReadResolution(12); // 0..4095 au lieu de 0..1023 par défaut
analogRead(A0); // première lecture à jeter
Serial.println("Tourne le potentiomètre");
}
void loop {
int brut = analogRead(CAPTEUR); // 0..4095
float tension = brut * 3.3f / 4095.0f; // tension réelle sur A0
Serial.print("brut=");
Serial.print(brut);
Serial.print("\tU=");
Serial.print(tension, 2);
Serial.println(" V");
delay(50);
}
Vérification attendue
En tournant le potentiomètre, la valeur brute suit 0 → 4095 et la tension calculée suit 0 → 3,3 V. Le traceur série affiche une courbe continue ; les valeurs collent aux mesures d'un multimètre.
Erreurs fréquentes
- Oublier
analogReadResolution(12)puis diviser par 1023 : la tension calculée est fausse de moitié. - Alimenter le potentiomètre en 5 V : le curseur peut alors envoyer plus de 3,3 V sur A0, hors tension de fonctionnement du circuit (3,3 V).
- Lire A0 sans broche câblée : valeurs flottantes et instables, normales sur une entrée non pilotée.
- Confondre ADC (7 entrées) et DAC (1 sortie analogique, DAC 10 bits) :
analogWritesur une broche PWM n'est pas la sortie DAC.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
join-otaa.inoArduinouplink-confirme.inoArduinodownlink.inoArduinoactivation-abp.inoArduinosuivi-adr.inoArduinoclasse-c.inoArduino