Les Capteurs

Les capteurs sont les sens des systemes embarques ! Temperature, lumiere, mouvement, son... decouvre comment les machines percoivent le monde qui les entoure.

Difficulte:
30 min
+35 XP
Temperature
Lumiere
Distance
Pression

Objectifs du cours

  • Definir ce qu'est un capteur et son role
  • Distinguer capteurs analogiques et numeriques
  • Connaitre les principaux types de capteurs (temperature, lumiere, mouvement...)
  • Comprendre la conversion analogique-numerique (CAN)
  • Savoir lire les donnees d'un capteur avec MicroPython

Erreurs courantes a eviter

  • Confondre capteur et actionneur (le capteur MESURE, l'actionneur AGIT)
  • Oublier que tout capteur analogique necessite une conversion en numerique
  • Penser que tous les capteurs sont precis (chaque capteur a ses limites)
  • Ignorer l'etalonnage necessaire pour certains capteurs

**Definition**

Un **capteur** est un composant electronique qui convertit une grandeur physique (temperature, lumiere, pression, distance...) en un signal electrique exploitable par un microcontroleur.

**Le capteur = les sens de la machine**

Comme nos 5 sens nous permettent de percevoir notre environnement : * **Vue** → Capteur de lumiere (photoresistance, camera) * **Ouie** → Microphone, capteur sonore * **Toucher** → Capteur de pression, de force * **Odorat** → Capteur de gaz (CO2, fumee) * **Gout** → Capteur chimique (pH, salinite)

**La chaine de mesure**

``` Grandeur physique → Capteur → Signal electrique → CAN → Donnee numerique (Temperature 25C) (Sonde) (Tension 2.5V) (ADC) (Valeur 512) ```

**Vocabulaire essentiel** :

* **Grandeur d'entree** : ce que le capteur mesure (temperature en C) * **Grandeur de sortie** : le signal electrique produit (tension en V) * **Sensibilite** : variation de sortie pour une variation d'entree * **Precision** : ecart entre la mesure et la valeur reelle * **Etendue de mesure** : plage de valeurs mesurables (ex: -40C a +85C) * **Temps de reponse** : delai pour que la mesure soit stable

Python / MicroPython
# Simulation du fonctionnement d'un capteur

class Capteur:
    def __init__(self, nom, unite_entree, plage_min, plage_max):
        self.nom = nom
        self.unite_entree = unite_entree
        self.plage_min = plage_min
        self.plage_max = plage_max
        self.tension_min = 0.0  # Volts
        self.tension_max = 3.3  # Volts (typique microcontroleur)

    def mesurer(self, valeur_physique):
        """Convertit une grandeur physique en tension"""
        # Verification de la plage
        if valeur_physique < self.plage_min:
            valeur_physique = self.plage_min
        elif valeur_physique > self.plage_max:
            valeur_physique = self.plage_max

        # Conversion lineaire
        ratio = (valeur_physique - self.plage_min) / (self.plage_max - self.plage_min)
        tension = self.tension_min + ratio * (self.tension_max - self.tension_min)

        return round(tension, 3)

    def afficher_info(self):
        print(f"=== {self.nom} ===")
        print(f"Mesure: {self.unite_entree}")
        print(f"Plage: {self.plage_min} a {self.plage_max} {self.unite_entree}")
        print(f"Sortie: {self.tension_min}V a {self.tension_max}V")

# Exemple avec un capteur de temperature
capteur_temp = Capteur("LM35", "C", -40, 125)
capteur_temp.afficher_info()

print("\n--- Tests de mesure ---")
temperatures = [0, 20, 25, 37, 100]
for temp in temperatures:
    tension = capteur_temp.mesurer(temp)
    print(f"Temperature: {temp}C -> Tension: {tension}V")

# Exemple avec un capteur de lumiere
print("\n")
capteur_lux = Capteur("BH1750", "lux", 0, 65535)
capteur_lux.afficher_info()

print("\n--- Tests de mesure ---")
luminosites = [0, 500, 10000, 50000]
for lux in luminosites:
    tension = capteur_lux.mesurer(lux)
    print(f"Luminosite: {lux} lux -> Tension: {tension}V")

Quiz de validation

1. Quel est le role principal d'un capteur ?

2. Quelle est la difference entre un capteur analogique et numerique ?

3. Combien de valeurs differentes peut mesurer un convertisseur ADC 10 bits ?

4. Quel capteur utilise-t-on pour mesurer temperature ET humidite ?

5. Pourquoi utilise-t-on une resistance de pull-up avec certains capteurs ?

Pixel