🛠 Lire un capteur analogique sur l'ADC 12 bits
Objectifs
Utiliser l'ADC du Photon : la carte dispose de 8 entrées ADC 12 bits (A0 à A7). Vous allez lire un potentiomètre monté en pont diviseur sur A0 et convertir la valeur brute (0 à 4095) en tension.
Matériel
- 1 Particle Photon
- 1 potentiomètre (10 kΩ par exemple)
- fils de breadboard ; alimentation de référence 3,3 V de la carte (logique 3,3 V, pleine échelle ADC = 3,3 V)
Code complet
// photon-capteur-adc.ino — lecture ADC 12 bits sur A0
const int CAPTEUR = A0; // 8 entrées ADC 12 bits : A0..A7
void setup {
Serial.begin(9600);
}
void loop {
int brut = analogRead(CAPTEUR); // 0..4095
float tension = brut * 3.3f / 4095.0f; // conversion en volts
Serial.print("brut=");
Serial.print(brut);
Serial.print(" tension=");
Serial.print(tension);
Serial.println(" V");
delay(200);
}
Vérification attendue
En tournant le potentiomètre, la valeur brute suit le curseur entre 0 et 4095 et la tension calculée reste entre 0 et 3,3 V. Schéma du pont diviseur : broche 1 du potentiomètre sur 3V3, broche 3 sur GND, curseur sur A0.
Erreurs fréquentes
- Alimenter le capteur en 5 V puis lire sur A0 : la pleine échelle ADC est limitée à la logique 3,3 V, vous saturez la mesure.
- Croire que toutes les broches acceptent 5 V : A3 et DAC font exception (non 5 V-tolérantes, datasheet).
- Confondre résolution : l'ADC fait 12 bits (0..4095), pas 10 bits comme sur d'autres cartes.
- Sortie 3V3 limitée à 100 mA : ne pas alimenter une chaîne de capteurs gourmande depuis cette broche.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-evenement.inoArduinofonction-distance.inoArduinocapteur-dht.inoArduinoruban-neopixel.inoArduinopwm-respiration.inoArduino