Utilisation de microcontrôleurs et d'outils numériques
Microcontrôleurs et outils numériques pour mesurer avec des capteurs
Un capteur transforme une grandeur physique (température, lumière…) en tension électrique ; le microcontrôleur convertit cette tension en nombre grâce à son convertisseur analogique-numérique, puis un programme calcule, affiche ou commande une action.
Objectifs
- Décrire une chaîne de mesure : capteur, microcontrôleur, programme, affichage ou action.
- Comprendre le rôle d'un capteur résistif monté dans un diviseur de tension.
- Convertir une valeur numérique lue par le microcontrôleur en tension, et inversement.
- Utiliser une droite d'étalonnage pour obtenir la grandeur mesurée.
- Lire et compléter un programme simple de mesure.
1. La chaîne de mesure
Les maillons de la chaîne
- Le capteur : il transforme une grandeur physique (température, lumière, distance, humidité) en grandeur électrique, le plus souvent une tension.
- Le microcontrôleur (par exemple une carte Arduino) : un petit ordinateur sur une seule puce. Il lit la tension sur une entrée analogique et la convertit en nombre.
- Le programme : il dit au microcontrôleur quoi faire du nombre (calculer, comparer, enregistrer).
- La sortie : affichage sur un écran ou un ordinateur, ou action d'un actionneur (LED, moteur, buzzer).
Étape 1 : le capteur produit une tension U qui dépend de la grandeur mesurée ; elle arrive sur une entrée analogique du microcontrôleur.
Étape 2 : le convertisseur analogique-numérique (CAN) transforme la tension U en un nombre entier N.
Étape 3 : le programme utilise N pour afficher une valeur ou commander une action (allumer une LED, un ventilateur…).
Dans un arrosage automatique, quel est le rôle du capteur d'humidité du sol ?
2. Capteurs résistifs et diviseur de tension
Certains capteurs sont des capteurs résistifs : leur résistance change avec la grandeur mesurée.
- Photorésistance (LDR) : sa résistance diminue quand la lumière augmente.
- Thermistance CTN : sa résistance diminue quand la température augmente.
Le microcontrôleur ne mesure pas directement une résistance : il mesure une tension. On place donc le capteur dans un diviseur de tension, avec une résistance fixe \(R_1\), alimenté par \(E = 5\ \text{V}\). La tension aux bornes du capteur de résistance \(R_2\) vaut :
\[ U_s = E \times \frac{R_2}{R_1 + R_2} \]Exemple résolu 1
\(E = 5\ \text{V}\), \(R_1 = 10\ \text{k}\Omega\). En plein jour, la photorésistance vaut \(R_2 = 10\ \text{k}\Omega\) ; dans l'obscurité, \(R_2 = 100\ \text{k}\Omega\). Calcule \(U_s\) dans les deux cas.
Cherche d'abord, puis vois la solution
Fais varier \(R_1\) (en k\(\Omega\)) : la courbe donne \(U_s\) (en V) selon la résistance du capteur \(x\) (en k\(\Omega\)).
Une thermistance CTN est placée en \(R_2\) dans le diviseur. Quand la température augmente, la tension \(U_s\) :
3. Du signal analogique au nombre : la conversion
Un signal analogique peut prendre toutes les valeurs (par exemple n'importe quelle tension entre 0 et 5 V). Un signal numérique ne prend qu'un nombre limité de valeurs, codées en binaire avec des bits.
- Un convertisseur de \(n\) bits donne \(2^n\) valeurs possibles.
- Sur une carte Arduino Uno, le CAN est sur 10 bits : \(2^{10} = 1\,024\) valeurs, de \(N = 0\) (pour 0 V) à \(N = 1\,023\) (pour 5 V).
- La plus petite variation détectable, la résolution, vaut environ \(\dfrac{5\ \text{V}}{1\,024} \approx 4{,}9\ \text{mV}\).
Pour retrouver la tension à partir du nombre lu :
\[ U = N \times \frac{5}{1\,023} \]Exemple résolu 2
Le microcontrôleur lit \(N = 512\). Quelle tension arrive sur l'entrée ?
Cherche d'abord, puis vois la solution
Combien de valeurs différentes peut donner un convertisseur de 8 bits ?
4. Étalonner un capteur
Pour un capteur dont la tension varie de façon proportionnelle à la grandeur, on trace la droite d'étalonnage. Par exemple, le capteur de température LM35 fournit \(10\ \text{mV}\) par degré Celsius :
\[ U = k \times \theta \quad \text{avec} \quad k = 10\ \text{mV} \cdot {}^\circ\text{C}^{-1} \]Fais varier \(k\) : la droite donne \(U\) (en mV) selon la température \(x\) (en °C). Plus \(k\) est grand, plus le capteur est sensible.
Exemple résolu 3
Le LM35 placé dans la salle de classe à Niamey délivre \(U = 0{,}34\ \text{V}\). Quelle est la température ?
Cherche d'abord, puis vois la solution
Avec un LM35 (\(10\ \text{mV}\) par °C), quelle tension attend-on à \(25\ {}^\circ\text{C}\) ?
5. Programmer la mesure et utiliser les outils numériques
Un programme Arduino contient deux parties : setup, exécutée une seule fois au démarrage, et loop, répétée en boucle. Voici un programme qui lit le LM35 branché sur l'entrée A0 et affiche la température sur l'ordinateur :
void setup() {
Serial.begin(9600); // ouvre la liaison avec l'ordinateur
}
void loop() {
int N = analogRead(A0); // nombre entre 0 et 1023
float U = N * 5.0 / 1023.0; // tension en volts
float temp = U * 100.0; // LM35 : 10 mV par degre
Serial.println(temp); // affiche la temperature
delay(1000); // attend 1 seconde
}
flowchart LR A[Demarrage setup] --> B[Lire N sur A0] B --> C[Calculer U] C --> D[Calculer la temperature] D --> E[Afficher] E --> F[Attendre 1 s] F --> B
Les autres outils numériques
- Le tableur : on y recopie les mesures pour tracer une courbe et trouver la droite d'étalonnage.
- Le smartphone : il contient des capteurs (accéléromètre, luxmètre, micro) que des applications de mesure permettent d'utiliser en classe.
- Le langage Python : il permet de traiter des séries de mesures et de tracer des graphiques.
À toi de légender
Place les noms sur le montage : capteur, carte microcontrôleur, câble USB, ordinateur.
Dans un programme Arduino, quelle partie est répétée sans arrêt ?
Erreurs fréquentes
Récapitulatif
- Chaîne de mesure : capteur, microcontrôleur avec son CAN, programme, affichage ou actionneur.
- Capteur résistif dans un diviseur de tension : \(U_s = E \times \dfrac{R_2}{R_1 + R_2}\).
- CAN de \(n\) bits : \(2^n\) valeurs ; sur 10 bits et 5 V : \(U = N \times \dfrac{5}{1\,023}\).
- Étalonnage : relation entre tension et grandeur, par exemple \(U = k \times \theta\) pour le LM35.
- Programme : setup une fois, loop en boucle ; tableur et Python pour exploiter les mesures.
Teste tes connaissances sur ce cours
Crée ton compte gratuitement pour accéder aux quiz associés et suivre ta progression.
