Acquisition de Donnees
Capteurs, CAN, echantillonnage, resolution et quantification
Objectifs pedagogiques
- Identifier les differents types de capteurs et leurs caracteristiques
- Comprendre le processus de conversion analogique-numerique (CAN)
- Appliquer le theoreme de Shannon pour determiner la frequence d'echantillonnage
- Calculer la resolution et l'erreur de quantification d'un CAN
Introduction : Du monde physique au numerique
Exemple concret : Thermometre numerique
Un capteur de temperature LM35 delivre une tension analogique proportionnelle a la temperature (10 mV/degre C). L'Arduino la convertit en valeur numerique sur 10 bits via son CAN interne. Comment garantir une mesure precise et fiable ?
L'acquisition de donnees est la premiere etape de tout systeme numerique interagissant avec le monde reel. Elle transforme des grandeurs physiques continues (temperature, pression, luminosite) en donnees discretes exploitables par un microcontroleur.
Chaine d'acquisition complete
1Les Capteurs : Interface avec le Monde Reel
Definition
Un capteur est un dispositif qui convertit une grandeur physique (mesurande) en une grandeur electrique (tension, courant, resistance) exploitable par un systeme electronique.
Classification des capteurs
Capteurs actifs
- Generent directement une tension/courant
- Thermocouple : effet Seebeck
- Photodiode : effet photoelectrique
- Piezoelectrique : effet piezo
Capteurs passifs
- Modifient une impedance (R, L, C)
- Thermistance : R = f(T)
- LDR : R = f(luminosite)
- Jauge de contrainte : R = f(deformation)
Capteurs courants en STI2D
| Capteur | Grandeur | Sortie | Plage |
|---|---|---|---|
| LM35 | Temperature | 10 mV/degre C | -55 a +150 degre C |
| DHT22 | Temp + Humidite | Numerique | -40 a 80 degre C / 0-100% |
| HC-SR04 | Distance | Impulsion | 2 cm a 4 m |
| MPU6050 | Acceleration/Gyro | I2C numerique | +/-2g a +/-16g |
Conditionnement : Avant le CAN, un circuit de conditionnement (amplificateur, filtre) adapte le signal du capteur a la plage d'entree du convertisseur (0-5V ou 0-3.3V).
2Conversion Analogique-Numerique (CAN)
Principe du CAN
Le Convertisseur Analogique-Numerique (CAN ou ADC) transforme une tension analogique continue en une valeur numerique discrete. Cette conversion implique deux operations : echantillonnage (temps) et quantification (amplitude).
Resolution et quantum
Resolution = nombre de bits du CAN
Nombre de niveaux = 2^n (n = nombre de bits)
Quantum (pas) q = V_ref / 2^n
// Exemple : CAN 10 bits de l'Arduino (V_ref = 5V)
Nombre de niveaux = 2^10 = 1024
Quantum q = 5V / 1024 = 4.88 mV
// Lecture capteur LM35 a 25 degres C
Tension capteur = 25 * 10mV = 250 mV = 0.250 V
Valeur CAN = 0.250 / 0.00488 = 51
// Code Arduino
int valeur = analogRead(A0); // retourne 51
float tension = valeur * 5.0 / 1024; // 0.249 V
float temperature = tension * 100; // 24.9 degres C
Comparaison des resolutions
| Resolution | Niveaux | Quantum (5V) | Precision temp LM35 |
|---|---|---|---|
| 8 bits | 256 | 19.5 mV | +/-2 degres C |
| 10 bits | 1 024 | 4.88 mV | +/-0.5 degres C |
| 12 bits | 4 096 | 1.22 mV | +/-0.12 degres C |
3Echantillonnage et Theoreme de Shannon
Principe de l'echantillonnage
L'echantillonnage consiste a prelever des valeurs du signal analogique a intervalles reguliers. La frequence d'echantillonnage (Fe) determine combien d'echantillons sont preleves par seconde.
Theoreme de Shannon-Nyquist
Fe ≥ 2 x Fmax
La frequence d'echantillonnage doit etre au moins 2 fois superieure a la frequence maximale contenue dans le signal pour eviter le repliement spectral (aliasing).
Exemples d'application
| Application | Fmax signal | Fe minimale | Fe pratique |
|---|---|---|---|
| Temperature | 0.1 Hz | 0.2 Hz | 1 Hz (1 ech/s) |
| Audio CD | 20 kHz | 40 kHz | 44.1 kHz |
| Vibrations moteur | 5 kHz | 10 kHz | 20-50 kHz |
4Mise en Oeuvre sur Arduino/ESP32
Exemple complet : Acquisition temperature
// Configuration Arduino UNO avec LM35
// CAN 10 bits, Vref = 5V, LM35 sur A0
const int PIN_LM35 = A0;
const float VREF = 5.0;
const int RESOLUTION = 1024;
const float SENSIBILITE_LM35 = 0.01; // 10mV/degre C
void setup() {
Serial.begin(9600);
}
void loop() {
// Lecture CAN (moyenne de 10 mesures)
long somme = 0;
for(int i=0; i<10; i++) {
somme += analogRead(PIN_LM35);
delay(10);
}
int valeurMoyenne = somme / 10;
// Conversion en tension
float tension = valeurMoyenne * VREF / RESOLUTION;
// Conversion en temperature
float temperature = tension / SENSIBILITE_LM35;
Serial.print("Temperature: ");
Serial.print(temperature, 1);
Serial.println(" C");
delay(1000); // Fe = 1 Hz
}
Resume en 5 points cles
- 1Les capteurs convertissent des grandeurs physiques en signaux electriques exploitables.
- 2La resolution du CAN (n bits) determine le quantum q = Vref / 2^n et la precision.
- 3Le theoreme de Shannon impose Fe ≥ 2 x Fmax pour eviter le repliement spectral.
- 4L'erreur de quantification maximale est de +/-q/2 (demi-quantum).
- 5Le moyennage de plusieurs mesures reduit le bruit et ameliore la precision effective.
Mini-Quiz
Question 1 : Quel est le quantum d'un CAN 12 bits avec Vref = 3.3V ?
a) 0.8 mV
b) 3.2 mV
c) 12.9 mV
Reponse : a) q = 3.3V / 4096 = 0.8 mV (environ 0.806 mV)
Question 2 : Quelle frequence d'echantillonnage minimale pour un signal audio 20 kHz ?
a) 20 kHz
b) 40 kHz
c) 10 kHz
Reponse : b) Shannon impose Fe ≥ 2 x 20 kHz = 40 kHz minimum
Question 3 : Un LM35 a 30 degres C donne quelle tension ?
a) 30 mV
b) 300 mV
c) 3 V
Reponse : b) Sensibilite 10 mV/degre C x 30 degres C = 300 mV
