🛠 Lire un capteur analogique avec l'ADC du Boron
Objectifs
Le nRF52840 du Boron intègre un convertisseur analogique-numérique et la carte expose 6 entrées analogiques A0 à A5 (3,3 V max). Vous allez monter un capteur analogique simple — un pont diviseur avec une photorésistance (LDR) — lire la tension avec analogRead, la convertir en pourcentage et l'afficher sur la console série. C'est la base de tout capteur analogique : potentiomètre, capteur de flex, TMP36, etc.
Matériel
- 1× Particle Boron + câble micro-USB
- 1× photorésistance (LDR) + 1× résistance fixe 10 kΩ
- breadboard, câbles jumper
- Optionnel : une petite lampe pour varier la lumière
Code complet
// Boron — lecture ADC sur A0 (capteur de lumière)
const uint16_t CAPTEUR_PIN = A0; // A0-A5 : entrées analogiques
void setup {
Serial.begin(9600);
pinMode(CAPTEUR_PIN, INPUT);
delay(1000);
Serial.println("Lecture capteur analogique (0-4095)");
}
void loop {
uint16_t brut = analogRead(CAPTEUR_PIN); // 0-4095 (12 bits)
float tension = brut * 3.3f / 4095.0f; // 0-3,3 V
uint16_t pourcent = map(brut, 0, 4095, 0, 100);
Serial.printf("brut=%u U=%.2f V lumiere=%u %%\n", brut, tension, pourcent);
delay(250);
}
Câblage : 3V3 → LDR → broche A0 → résistance 10 kΩ → GND. Le point milieu va sur A0.
Vérification attendue
En bouchant la LDR du doigt, la valeur brute chute ou monte nettement (selon le sens du diviseur) ; en l'éclairant, elle revient vers l'autre extrémité. La tension calculée reste entre 0 et 3,3 V. En reliant A0 au 3V3, vous devez lire environ 4095 ; au GND, environ 0 — c'est votre test d'étalonnage.
Erreurs fréquentes
- Dépassement de 3,3 V sur l'entrée ADC : le Boron est 3,3 V max sur toutes les broches, sous peine de dégâts.
- Diviseur monté à l'envers : les variations sont inversées, ce qui n'est pas une panne mais perturbe la logique métier.
- Lire A0 comme une broche numérique (
digitalRead) : vous obtiendrez 0 ou 1 sans aucune nuance. - Résistance fixe trop éloignée de l'impédance de la LDR dans vos conditions d'éclairage : la plage utile se réduit à quelques dizaines de points.
- Sources de bruit (moteurs sur la même alim) : faites la moyenne de plusieurs lectures si la valeur saute beaucoup.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-evenement.inoArduinofonction-distance.inoArduinocapteur-dht.inoArduinoruban-neopixel.inoArduinopwm-respiration.inoArduino