Index des chapitres Chapitre précédent Branchement Ex 3.5

Chapitre 3 — Inputs analogiques

Du potentiomètre au système multi-capteurs : l'ESP32 commence à voir, entendre et sentir.

Le contexte

Jusqu'ici, tout était binaire : ON/OFF, appuyé/relâché. Le monde réel est analogique — la lumière varie graduellement, la distance est un nombre continu, la température change par fractions de degré. Cette phase fait passer l'ESP32 d'un détecteur binaire à un vrai système de perception.


Exercice 3.1 — Le potentiomètre

Le potentiomètre ("pot") est une résistance variable qu'on tourne avec les doigts. C'est l'entrée analogique la plus simple : tu tournes, la valeur change.

Potentiomètre branché
Le potentiomètre rejoint le circuit — tourner le bouton contrôle la luminosité de la LED

Le concept clé — analogRead() :

L'ESP32 a un ADC (Analog-to-Digital Converter) 12 bits. Il convertit une tension (0V à 3.3V) en un nombre (0 à 4095). C'est 4096 niveaux de précision.

Le concept clé — map() :

int luminosite = map(valeurBrute, 0, 4095, 0, 255);
analogWrite(LED_PIN, luminosite);
Pot: 2048 → LED: 127 [██████████░░░░░░░░░░] zone MOYENNE Pot: 4095 → LED: 255 [████████████████████] zone HAUTE Pot: 0 → LED: 0 [░░░░░░░░░░░░░░░░░░░░] zone BASSE

Exercice 3.2 — Photorésistance (LDR) : la veilleuse automatique

Premier vrai capteur d'environnement. La LDR change de résistance selon la lumière ambiante.

Module LDR branché
Le module LDR "MH Sensor Series" (en bleu) — la veilleuse automatique

Surprise matérielle : Mon kit n'avait pas une LDR brute mais un module "MH Sensor Series" avec 4 pins (VCC, GND, AO, DO). Pas besoin de résistance supplémentaire.

Bug — Signal inversé : Le module MH Sensor donne une valeur haute quand c'est sombre et basse quand c'est lumineux. Il a fallu inverser le mapping :

// Corrigé : min/max swappés
int pourcent = map(valeur, valeurMax, valeurMin, 0, 100);

Nouveaux concepts :


Exercice 3.3 — Capteur ultrason HC-SR04 : le radar

Le composant le plus impressionnant — il a deux "yeux" (un émetteur et un récepteur ultrasons). Il mesure la distance en envoyant un ping sonore et en chronométrant l'écho.

HC-SR04 ultrason branché
Le HC-SR04 avec ses deux "yeux" — la LED s'allume quand un obstacle approche

La physique dans le code :

// Vitesse du son = 343 m/s = 0.0343 cm/µs
// Diviser par 2 : le son fait l'aller ET le retour
float distance = (duree * 0.0343) / 2.0;
Distance: 4.3 cm [████████████████████] !! DANGER !! Distance: 23.1 cm [████████████████░░░░] ! Proche Distance: 257.6 cm [░░░░░░░░░░░░░░░░░░░░]

Filtrage par médiane : La médiane de 3 lectures est plus robuste que la moyenne — une valeur aberrante (0 ou 999) est ignorée au lieu de fausser le résultat.


Exercice 3.4 — Capteur de température DS18B20

Le premier capteur numérique. Le DS18B20 a un petit processeur intégré qui envoie directement la température en °C via le protocole OneWire.

Module DS18B20 et sonde
Le module DS18B20 avec son bornier vert et la sonde au bout du câble
DS18B20 branché au circuit
La sonde température branchée au circuit complet

Nouvelles notions :

Temp: 26.6°C [CONFORT] [███████████░░░░░░░░░] min=26.1 max=26.6 Temp: 30.8°C [CHAUD!] [███████████████░░░░░] min=26.1 max=30.8

Tenir la sonde entre les doigts fait monter la température de 25°C à 30°C !


Exercice 3.5 — Station de sécurité : le boss de la Phase 3

Le projet combo qui utilise tous les capteurs en même temps : potentiomètre, LDR, ultrason, température, bouton, LED et buzzer. 8 pins occupés sur l'ESP32 !

Station de sécurité complète
Le setup complet de la station de sécurité — tous les capteurs branchés simultanément !

Le système :

SYSTÈME: !! ALERTE !! | Seuil dist: 67 cm Temp: 24.7°C Dist: 12.2 cm << INTRUS !! Lum: 84%

Bug de la LDR : L'alerte obscurité ne se déclenchait pas — la lumière ne descendait qu'à ~64% en couvrant le capteur, mais le seuil était à 20%. Solution : monter le seuil à 70% pour correspondre à l'environnement réel.


Récapitulatif Phase 3

Concept Exercice Application robot soccer
analogRead / map 3.1 Lire joystick, capteurs IR
Calibration / lissage 3.2 Calibrer capteurs de ligne
pulseIn / médiane 3.3 Mesure de distance fiable
Bibliothèques / OneWire 3.4 Bibliothèques moteurs, IMU
Multi-capteurs / fusion 3.5 Perception combinée

Temps total : ~3 heures

Difficulté : Moyenne à difficile

Bugs mémorables : Signal LDR inversé + seuil d'obscurité trop bas

analogRead map calibration pulseIn OneWire multi-capteurs


Bilan des 3 phases

En partant de zéro, en 3 sessions :

Le kit contient encore le servo moteur, l'écran LCD I2C, le clavier 4x4, et le capteur de mouvement PIR. La suite au prochain chapitre.

Tout rangé dans la boîte
Fin de session — tout rangé dans la boîte, prêt pour la Phase 4
← Chapitre précédent

Voir le branchement détaillé → Ex 3.5 — Station de sécurité.

Prochain chapitre → Phase 4 — Actuateurs & Affichage (servo moteur, LCD, clavier 4x4). Le robot va enfin bouger !