Cours 3SIN

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

Grandeur physique
Capteur
Conditionnement
CAN
Traitement

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

CapteurGrandeurSortiePlage
LM35Temperature10 mV/degre C-55 a +150 degre C
DHT22Temp + HumiditeNumerique-40 a 80 degre C / 0-100%
HC-SR04DistanceImpulsion2 cm a 4 m
MPU6050Acceleration/GyroI2C 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

ResolutionNiveauxQuantum (5V)Precision temp LM35
8 bits25619.5 mV+/-2 degres C
10 bits1 0244.88 mV+/-0.5 degres C
12 bits4 0961.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

ApplicationFmax signalFe minimaleFe pratique
Temperature0.1 Hz0.2 Hz1 Hz (1 ech/s)
Audio CD20 kHz40 kHz44.1 kHz
Vibrations moteur5 kHz10 kHz20-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

  1. 1Les capteurs convertissent des grandeurs physiques en signaux electriques exploitables.
  2. 2La resolution du CAN (n bits) determine le quantum q = Vref / 2^n et la precision.
  3. 3Le theoreme de Shannon impose Fe ≥ 2 x Fmax pour eviter le repliement spectral.
  4. 4L'erreur de quantification maximale est de +/-q/2 (demi-quantum).
  5. 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

Scientia