🛠 Lire un capteur avec l'ADC 12 bits du SAMD21
Objectifs
Utiliser les entrées analogiques de la Tian : la carte dispose de 12 entrées A0 à A11, toutes réutilisables en numérique ; A0–A5 se retrouvent aux mêmes emplacements que sur une UNO, tandis que A6–A11 correspondent aux broches numériques 4, 6, 8, 9, 10 et 12. Surtout, le SAMD21 possède un convertisseur analogique-numérique 12 bits : contrairement à l'UNO (10 bits, 0–1023), attendez-vous ici à des valeurs 0–4095.
Matériel
- 1 Arduino Tian + câble micro-USB
- 1 potentiomètre 10 kΩ : une extrémité à la masse, l'autre à la broche d'alimentation 3,3 V, le curseur vers A0
- >
Code complet
// Lecture 12 bits : 0..4095 attendus, à vérifier au Traceur série.
const uint8_t POT = A0;
void setup {
Serial.begin(115200);
}
void loop {
int brut = analogRead(POT); // ADC 12 bits du SAMD21 : 0..4095
float tension = brut / 4095.0 * 3.3; // à ajuster selon la référence réelle
Serial.print(F("brut=")); Serial.print(brut);
Serial.print(F(" ~")); Serial.print(tension, 2); Serial.println(F(" V"));
delay(10);
}
Vérification attendue
Au Traceur série, la valeur suit le potentiomètre de façon continue. Comptez mentalement l'amplitude : si vous lisez environ 0 à 4095, l'ADC 12 bits est bien actif ; si vous plafonnez à ~1023, votre cœur Arduino mappe encore en 10 bits — adaptez la conversion. C'est LE piège de portage UNO → Tian.
Erreurs fréquentes
- Repartir du code UNO en divisant par 1023 : tout est faux de facteur 4 sur la tension calculée.
- Alimenter le potentiomètre en 5 V alors que l'ADC référence 3,3 V : la lecture sature dès ~3,3 V au curseur, la moitié de la course ne donne plus rien.
- Confondre A6–A11 avec des broches dédiées : ces entrées vivent sur D4, D6, D8, D9, D10, D12 ; si votre croquis utilise D9 en PWM, A9 n'est plus libre.
- >
- Entrée analogique non alimentée : un doigt sur le fil donne des valeurs qui dérivent lentement, ce n'est pas un capteur, c'est une antenne.
Autres tutoriels pour cette carte
- Découvrir l'Arduino Tian : un microcontrôleur et un vrai Linux sur la même carte
- Bouton et LED sur les GPIO de la Tian : les bases côté SAMD21
- Le Bridge : faire exécuter des commandes Linux depuis le croquis
- Configurer le WiFi et piloter Linino en SSH
- Télémétrie : pousser une mesure du capteur vers le réseau
- GPIO duos : commander les broches de l'Arduino depuis Linux
Exemples de code pour cette carte
clignotant-rest.inoArduinoconsole-bridge.inoArduinovaleurs-partagees.inoArduinoprocess-shell.inoArduinoserveur-json.inoArduinolecture-fichier.inoArduino