Les capteurs
Sommaire du chapitre
- Les capteurs
- Objectifs
- Définition d'un capteur
- Les types de capteurs
- Les modes de transmission
- Les protocoles de communication
- Les capteurs de distance
- Les capteurs de température
- Les capteurs PIR
- Le bus I2C
- Les vitesses de communication I2C
- La gestion des conflits d'adresses
- Le bus SPI
- La liaison UART
- Comparaison des protocoles
- D'autres protocoles de communication
- Les capteurs infrarouges
- Les capteurs ultrasons
- Les capteurs numériques
- Les capteurs analogiques
- Principe de fonctionnement
- Caractéristiques typiques
- Diagramme temporel
- Applications
- Limitations
- Architecture maître-esclave
- Adressage
- Structure d'une trame I2C
- Les broches SPI
- Protocole SPI
- Avantages et inconvénients
- Structure d'une trame UART
- La notion de débit~: le baud rate
- Exemple de trame UART
- Principe physique
- Caractéristiques du HC-SR04
- Séquence de mesure
- Calcul pratique
- Les capteurs DHTXX
- Le capteur DS18B20
- Les capteurs BME280 / BMP280
- Avantage des capteurs analogiques
Les capteurs
Objectifs
Ce chapitre a pour but de faire un tour d'horizon des différents types de capteurs couramment utilisés en électronique embarquée et en systèmes automatisés.
La première partie est consacrée aux aspects théoriques : types de capteurs, modes de transmission et protocoles de communication. La seconde partie comprend la mise en pratique avec des exemples concrets de capteurs.
Définition d'un capteur
Un capteur est un dispositif qui convertit une grandeur physique (température, distance, pression, lumière, etc.) en un signal électrique exploitable par un système électronique. On distingue deux grandes familles :
Capteurs analogiques : la sortie est une tension ou un courant continu proportionnel à la grandeur mesurée.
Capteurs numériques : la sortie est un signal numérique (binaire, protocole série, etc.) directement lisible par un microcontrôleur.
Les types de capteurs
Il existe une multitude de capteurs adaptés à des besoins très variés :
Capteur de distance (infrarouge, ultrasons, laser, LiDAR)
Capteur de température et d'humidité (DHT22, BME280, LM35)
Capteur de présence et de mouvement (PIR, radar Doppler)
Capteur de pression atmosphérique (BMP280, BME280)
Capteur de position (potentiomètre, joystick, fin de course, encodeur)
Capteur de particules fines et qualité de l'air (PMS5003, MQ135)
Capteur d'accélération et de gyroscope (MPU-6050)
Capteur de luminosité (LDR, TSL2561)
Capteur de courant et de tension (INA219)
Capteur de couleur (TCS34725)
Les modes de transmission
Voici les différentes façons de faire communiquer des périphériques entre eux.
Pour nos exemples, nous nous baserons sur deux périphériques A et B qui souhaitent échanger des données.
Simplex : la communication est unidirectionnelle. Le périphérique A envoie des informations au périphérique B, mais B ne peut pas répondre à A. Ce mode est utilisé par exemple pour les télécommandes infrarouge ou les capteurs de diffusion radio.

L'analogie du mode Simplex : un clavier envoie des données à l'écran Half-duplex : la communication se fait dans les deux sens, mais pas simultanément. Si le périphérique A transmet, B doit attendre avant de pouvoir répondre. Ce principe est utilisé dans les talkie-walkies et le bus I2C.

L'analogie du mode Half-Duplex : les deux parties parlent à tour de rôle Full-duplex : les deux périphériques peuvent émettre et recevoir simultanément, comme lors d'une conversation téléphonique. Ce mode est utilisé dans les liaisons UART et SPI.

L'analogie du mode Full-Duplex : les deux interlocuteurs parlent en même temps
Les protocoles de communication
Pour communiquer, de nombreux protocoles existent. Chacun a ses propres caractéristiques en termes de vitesse, de nombre de broches, de distance et de nombre de périphériques supportés. Voici les principaux protocoles rencontrés en électronique embarquée.
Le bus I2C
Le bus I2C (Inter-Integrated Circuit) est un bus informatique qui a émergé dans les années 80 lors de la « guerre des standards » entre les acteurs du monde électronique.
Conçu par Philips pour les applications de domotique et d'électronique domestique, il permet de relier facilement un microcontrôleur et différents circuits intégrés tels que des capteurs de pression, de température, des écrans, etc.
C'est un bus série synchrone bidirectionnel en mode half-duplex, utilisant seulement 2 broches pour communiquer :
- SDA : Serial Data (ligne de données)
- SCL : Serial Clock (ligne d'horloge)
Une masse (GND) est commune à tous les périphériques connectés au bus.
Architecture maître-esclave
Les échanges ont toujours lieu entre un seul maître et un (ou tous les) esclave(s), toujours à l'initiative du maître [3]. Pour éviter les conflits électriques, les broches SDA et SCL sont de type Collecteur Ouvert : la ligne est au repos à l'état HAUT grâce à des résistances de tirage (pull-up), et un composant tire la ligne à l'état BAS pour communiquer.

Adressage
À chaque composant est attribuée une adresse physique unique sur le bus, codée sur 7 bits. Cela permet théoriquement de connecter jusqu'à $2^7 - 1 = 127$ périphériques [4]. Il existe également une extension sur 10 bits permettant d'adresser jusqu'à 1023 périphériques.
Par exemple, on peut trouver sur un même bus I2C :
1 écran OLED (adresse
0x3C)1 écran LCD (adresse
0x27)1 capteur de pression BMP280 (adresse
0x76ou0x77)1 module horloge RTC DS3231 (adresse
0x68)


Structure d'une trame I2C
Une transaction I2C se déroule ainsi :
Condition START : le maître tire SDA à l'état BAS alors que SCL est à HAUT.
Adresse : 7 bits d'adresse du périphérique ciblé + 1 bit R/\=W (lecture ou écriture).
ACK : l'esclave acquitte en tirant SDA à BAS.
Données : transmission octet par octet, chaque octet suivi d'un ACK.
Condition STOP : le maître relâche SDA à HAUT alors que SCL est à HAUT.
Les vitesses de communication I2C
Il existe différentes vitesses de communication normalisées sur le bus I2C :
100 kbit/s : mode Standard (le plus courant)
400 kbit/s : mode Fast
1 Mbit/s : mode Fast-plus
3,4 Mbit/s : mode High Speed
5 Mbit/s : mode Ultra-Fast (unidirectionnel uniquement)
La gestion des conflits d'adresses
Lorsqu'on souhaite connecter plusieurs périphériques ayant la même adresse par défaut (par exemple deux capteurs BMP280), certains composants proposent de modifier leur adresse en appliquant un niveau logique (0 ou 1) sur une broche dédiée (souvent appelée ADDR ou SDO). Cela permet d'avoir jusqu'à 2 ou 4 instances du même composant sur le même bus.
Le bus SPI
Le bus SPI (Serial Peripheral Interface) est un protocole full-duplex développé par Motorola dans le milieu des années 80.
La liaison est de type maître-esclave : le maître sélectionne l'esclave avec qui il veut communiquer via la broche (Slave Select, active à l'état BAS).
Les broches SPI
Le bus SPI comporte 4 broches :
SCLK : Serial Clock, signal d'horloge généré par le maître
MOSI : Master Output Slave Input, données du maître vers l'esclave
MISO : Master Input Slave Output, données de l'esclave vers le maître
SS (ou CS) : Slave Select / Chip Select, actif à l'état bas, généré par le maître

Protocole SPI
Le maître génère l'horloge et sélectionne l'esclave en mettant la broche SS à l'état BAS.
La communication se fait simultanément dans les deux sens (full-duplex) bit par bit, synchronisée sur l'horloge SCLK.
L'esclave répond aux requêtes du maître via MISO.
À la fin de la communication, le maître remet SS à l'état HAUT pour libérer l'esclave.
Avantages et inconvénients
SPI est plus rapide que I2C et est full-duplex, mais nécessite une broche SS dédiée par esclave, ce qui peut consommer beaucoup d'entrées/sorties sur le microcontrôleur lorsque de nombreux périphériques sont connectés.
La liaison UART
La liaison UART (Universal Asynchronous Receiver Transmitter) est une liaison série asynchrone utilisant seulement deux broches :
RX : Receive (réception)
TX : Transmit (émission)
La liaison UART est point à point : elle permet uniquement de faire communiquer deux appareils entre eux. Contrairement aux bus I2C ou SPI, il n'est pas possible de relier plusieurs périphériques sur le même bus sans arbitrage supplémentaire.
Les broches TX de l'appareil A se connectent au RX de l'appareil B, et inversement.

Structure d'une trame UART
Chaque octet transmis est encadré par des bits de contrôle :
1 bit de start : toujours à 0, il synchronise le récepteur sur le début de la trame
5 à 9 bits de données : généralement 8 bits (1 octet)
1 bit de parité (optionnel) : parité paire ou impaire pour la détection d'erreur
1 ou 2 bits de stop : toujours à 1, ils marquent la fin de la trame

Au repos, la ligne est maintenue au niveau logique HAUT.
La notion de débit : le baud rate
La liaison étant asynchrone (pas d'horloge partagée), les deux périphériques doivent être configurés à la même vitesse, appelée baud rate. Le baud représente le nombre de symboles transmis par seconde [5]. Les vitesses normalisées sont :
1\,200 bauds
2\,400 bauds
4\,800 bauds
9\,600 bauds (valeur par défaut courante)
19\,200 bauds
38\,400 bauds
57\,600 bauds
115\,200 bauds (valeur haute courante pour les systèmes embarqués)
Exemple de trame UART
On constate clairement que le niveau au repos est à l'état HAUT, et que le bit de start tire la ligne à BAS pour signaler le début de la transmission.

Comparaison des protocoles
|l|c|c|c|
Critère & I2C & SPI & UART
Nombre de broches & 2 + GND & 4 + 1/esclave & 2
Nombre de périph. & Jusqu'à 127 & Illimité (1 SS/esclave) & 2 uniquement
Vitesse max & 5 Mbit/s & Dizaines de Mbit/s & 115\,200 baud
Mode & Half-duplex & Full-duplex & Full-duplex
Synchronisation & Synchrone & Synchrone & Asynchrone
Complexité & Moyenne & Faible & Faible
D'autres protocoles de communication
Bus CAN [1] : bus série half-duplex très robuste, largement utilisé dans l'industrie automobile et l'avionique. La transmission repose sur une paire différentielle (CAN\_H et CAN\_L), ce qui le rend très résistant aux perturbations électromagnétiques. Tous les nœuds du bus peuvent communiquer entre eux.
One-Wire : protocole propriétaire de Dallas/Maxim utilisant un seul conducteur de données (plus la masse). Utilisé notamment par les capteurs de température DS18B20. Chaque composant possède une adresse 64 bits unique gravée en usine.
Modbus [2] : protocole de communication industriel largement déployé, basé sur une architecture maître-esclave. Peut fonctionner sur UART (Modbus RTU) ou TCP/IP (Modbus TCP).
RS-485 : norme de transmission série différentielle permettant des distances importantes (jusqu'à 1\,200 m) et la connexion de nombreux équipements sur le même bus. Souvent utilisé conjointement avec le protocole Modbus.
LIN : Local Interconnect Network, bus série simple utilisé dans l'automobile pour des communications de faible débit (jusqu'à 20 kbit/s).
Les capteurs de distance
Différentes technologies sont utilisées pour mesurer une distance. Chacune présente ses propres avantages et inconvénients selon les contraintes de l'application.
Infrarouge
Bon marché
Assez précis pour des courtes distances
Temps de réponse rapide
Réponse non linéaire
Sensible à la lumière ambiante et au soleil
Dépend du coefficient de réflexion lumineuse de la surface cible
Plage de mesure limitée (quelques cm à 1 m environ)
Laser (ToF : Time of Flight)
Très précis (résolution millimétrique)
Longue portée possible
Indépendant de la couleur et de la texture de la surface
Prix plus élevé
Perturbé par les surfaces très réfléchissantes ou transparentes
Ultrasonore
Prix faible
Ne dépend pas de la couleur ou de la réflectivité lumineuse de la surface
Adapté à la détection d'objets à faible réflectivité optique (mousses, textiles)
Précision parfois limitée
Sensible à la température de l'air (la vitesse du son varie avec la température)
Angle de détection large pouvant capter des obstacles non désirés
Les capteurs infrarouges
Ce type de capteur émet un faisceau infrarouge et mesure l'intensité lumineuse réfléchie par l'obstacle, qu'il convertit en une tension de sortie. La distance est ensuite déduite de cette tension.

Cependant, la relation entre la tension de sortie et la distance est non linéaire (voir la courbe ci-dessous [6]). Il est donc nécessaire d'utiliser une table de correspondance ou une formule de correction pour obtenir la distance réelle.

Les capteurs ultrasons
Principe physique
Le capteur ultrasonique mesure le temps de propagation aller-retour d'une impulsion sonore à haute fréquence entre l'émetteur et l'obstacle. En connaissant la vitesse du son dans l'air ($v \approx 340~\text{m/s}$ à $20°C$), on peut calculer la distance :
$$ d = \frac{v \times t_{\text{aller-retour}}}{2} $$

Caractéristiques du HC-SR04
Tension d'alimentation : 5V
Fréquence des ultrasons : 40 kHz
Plage de mesure : 2 cm à 400 cm
Précision : $\pm 3$ mm
Angle de détection : $\approx 15°$
Séquence de mesure
On envoie une impulsion de $10\,\mu$s sur la broche PINTRIGGER du capteur.
Le capteur émet automatiquement une rafale de 8 impulsions ultrasonores à 40 kHz.
Les ondes se propagent dans l'air et rebondissent sur l'obstacle.
Le capteur renvoie le temps de propagation via la broche PINECHO : la sortie passe à l'état HAUT pendant une durée proportionnelle à la distance mesurée.

Voici le relevé oscilloscope des broches PINTRIGGER et PINECHO :

Calcul pratique
La durée du signal ECHO en microsecondes, divisée par 58, donne directement la distance en centimètres :
$$ d~(\text{cm}) = \frac{t_{\text{ECHO}}~(\mu s)}{58} $$
Les capteurs de température
Les capteurs numériques
Il existe de nombreuses familles de capteurs de température numériques. Nous abordons ici les familles DHTXX, DS18B20 et BME280, qui sont parmi les plus répandues en électronique embarquée.
Les capteurs DHTXX
Les capteurs DHTXX [7] mesurent simultanément la température et le taux d'humidité relative. Ils fonctionnent entre 3,3 V et 5 V et communiquent via un protocole propriétaire sur un seul fil. [8]

Comparaison DHT11 / DHT22 :
|l|c|c|
Caractéristique & DHT11 & DHT22
Plage de température & 0 à +50°C & $-40$ à +80°C
Précision température & $\pm 2°C$ & $\pm 0,5°C$
Plage d'humidité & 20 à 80\% HR & 0 à 100\% HR
Précision humidité & $\pm 5\%$ & $\pm 2\%$
Fréquence d'échantillonnage & 1 Hz & 0,5 Hz
Prix & Faible & Moyen

Le capteur DS18B20
Le DS18B20 est un capteur de température numérique de précision. Il communique via le protocole One-Wire et possède une résolution programmable de 9 à 12 bits.
Plage de mesure : $-55°C$ à $+125°C$
Précision : $\pm 0,5°C$ entre $-10°C$ et $+85°C$
Adresse unique de 64 bits : plusieurs capteurs peuvent cohabiter sur le même fil
Disponible en version encapsulée étanche (sonde inox) pour les milieux humides
Les capteurs BME280 / BMP280
Ces capteurs de Bosch utilisent le protocole I2C (ou SPI) pour transmettre :
La température ($-40°C$ à $+85°C$, précision $\pm 1°C$)
La pression atmosphérique (300 à 1\,100 hPa)
Le taux d'humidité (BME280 uniquement, 0 à 100\% HR)
Ces capteurs très compacts sont notamment utilisés dans les stations météo et les projets de domotique. [9]}}
Capteur Environnemental – T°, Pression, Humidité
Général
Fabricant | Bosch Sensortec |
Description | Capteur combiné pression/température/humidité, ultra-compact |
Boîtier | LGA-8 (2.5 $\times$ 2.5 $\times$ 0.93 mm) |
Électrique
Alimentation (VDD) | 1.71 V – 3.6 V |
Alimentation I/O (VDDIO) | 1.2 V – 3.6 V |
Courant mesure (1 Hz, T+P+H) | 3.6 µA typ. |
Courant sleep | 0.1 µA |
Capteur Température
Plage | $-$40°C à +85°C |
Résolution | 0.01°C |
Précision absolue | $\pm$0.5°C (0°C – 65°C typ.) |
Capteur Pression
Plage | 300 – 1100 hPa |
Résolution RMS | 0.2 Pa ($\approx$ 1.7 cm altitude) |
Précision relative | $\pm$0.12 hPa ($\approx$ $\pm$1 m) |
Capteur Humidité
Plage | 0 – 100 \% HR |
Précision | $\pm$3 \% HR |
Temps de réponse ($\tau_{63\%}$) | 1 s |
Interface
Interfaces | I$^2$C (100/400 kHz) ou SPI (10 MHz) |
Adresses I$^2$C | 0x76 (SDO=0) ou 0x77 (SDO=1) |
Modes de fonctionnement | Sleep, Forced (one-shot), Normal (continu) |
Les capteurs analogiques
Certains capteurs transmettent leurs données sous forme d'une tension analogique, directement proportionnelle à la grandeur mesurée. Par exemple, le capteur LM35 délivre une tension de $10\,\text{mV/°C}$ :
$$ T~(°C) = \frac{U_{\text{sortie}}~(\text{mV})}{10} $$
Ainsi, une tension de sortie de 210 mV correspond à une température de 21°C.

Avantage des capteurs analogiques
L'un des atouts majeurs des capteurs analogiques est qu'ils peuvent être utilisés sans microcontrôleur. Par exemple, le schéma suivant réalise un thermostat purement analogique : un comparateur à amplificateur opérationnel active un relais dès que la tension du LM35 dépasse un seuil réglable.

Les capteurs PIR

Principe de fonctionnement
Les capteurs PIR (Passive Infrared) détectent les rayonnements infrarouges émis par tout corps dont la température est supérieure au zéro absolu, en particulier les êtres vivants.
Le capteur est équipé de deux cellules pyroélectriques sensibles aux infrarouges, montées en opposition. En l'absence de mouvement, les deux cellules reçoivent le même niveau d'infrarouge ambiant et le signal de sortie est nul. Lorsqu'un objet chaud traverse le champ de détection, il modifie le rayonnement reçu successivement sur chaque cellule, ce qui génère un signal différentiel détectable.
La lentille de Fresnel en plastique blanc couvre le capteur et concentre le rayonnement infrarouge vers les cellules grâce à ses multiples facettes, augmentant ainsi la portée et la sensibilité.
Caractéristiques typiques
Angle de détection : 110° (horizontal) × 70° (vertical)
Portée : 3 à 7 m (réglable via potentiomètre)
Délai de réactivation : réglable de quelques secondes à plusieurs minutes
Tension d'alimentation : 5 V à 20 V
Consommation : $< 1\,\text{mA}$
Sortie : numérique (HAUT = détection, BAS = absence de détection)
Diagramme temporel
La sortie du capteur passe à l'état HAUT dès qu'un mouvement est détecté, et reste haute pendant une durée configurable après la dernière détection [10].
Applications
Allumage automatique d'un éclairage à la détection d'un mouvement
Activation d'une alarme lors de l'intrusion d'une personne
Comptage de personnes dans une pièce
Réveil automatique d'un système en veille
Contrôle d'accès et sécurité périmétrique
Limitations
Ne détecte pas les objets immobiles
Sensible aux variations de température ambiante
Peut être perturbé par des sources de chaleur non humaines (radiateurs, soleil direct)
Ne fournit aucune information sur la position ou la distance de l'objet détecté
Notes
Controller Area Network
↑Très répandu dans les automates industriels (API).
↑Jamais de maître à maître ou d'esclave à esclave. Cependant, rien n'empêche un composant de passer dynamiquement du statut de maître à esclave et réciproquement.
↑En réalité moins, car certaines adresses sont réservées et il faut tenir compte de la capacité électrique de la ligne.
↑Pour l'UART, 1 baud = 1 bit par seconde.
↑Extrait de la datasheet du capteur
↑DHT11 ou DHT22
↑Protocole de type « One-Wire » propriétaire, distinct de celui de Dallas/Maxim.
↑Pour plus d'information sur le protocole I2C, se reporter à la section \link{\ref{busI2C
↑Cette durée est réglable grâce au potentiomètre de délai présent sur le module.
↑