Schéma de Câblage Complet — v3

Guide pas-à-pas pour débutant • ESP32-WROOM-32D • L298N • 4 moteurs DC • 4 capteurs ToF • Batterie 3S

Tu débutes en électronique ? Lis ça d'abord !

Ce guide te montre exactement quel fil va où. Chaque connexion est expliquée avec la couleur du fil et pourquoi on le branche là. Prends ton temps, fais une connexion à la fois, et vérifie au multimètre avant d'allumer.

Tu as besoin : d'un fer à souder, du fil à souder (étain), du fil de câblage (plusieurs couleurs), un multimètre, et de la patience.

Mini-vocabulaire

GND (Ground / Masse)
Le fil de référence 0V. Tous les composants partagent le même GND — c'est le « retour » du courant.
VCC / VIN
L'entrée d'alimentation positive d'un composant (ex: 3.3V, 5V, ou 12V selon le composant).
GPIO (General Purpose Input/Output)
Les broches programmables de l'ESP32. Chaque broche a un numéro (ex: GPIO21).
I2C (SDA + SCL)
Un protocole de communication à 2 fils. SDA = données, SCL = horloge. Plusieurs capteurs partagent le même bus.
PWM (Pulse Width Modulation)
Un signal qui contrôle la vitesse des moteurs en allumant/éteignant très rapidement.
Pull-up (résistance de tirage)
Une résistance qui maintient un signal au niveau HAUT (3.3V) quand personne ne parle sur le fil. Nécessaire pour I2C.

⚠️ Avertissements CRITIQUES — Lire avant de brancher quoi que ce soit

1. RETIRER les jumpers ENA/ENB du L298N
Sur la carte L298N, il y a 2 petits cavaliers en plastique (jumpers) sur les broches ENA et ENB. Retire-les avec les doigts ou une pince. Si tu les laisses, l'ESP32 ne pourra pas contrôler la vitesse des moteurs.
2. Régler le LM2596 à EXACTEMENT 5.0V
Le module LM2596 a un petit potentiomètre (vis bleue). Avant de brancher l'ESP32, branche le LM2596 à la batterie, allume, et tourne la vis avec un tournevis. Mesure la sortie avec un multimètre jusqu'à lire exactement 5.0V. Trop haut = ESP32 grillé.
3. Encodeurs en 3.3V, PAS en 5V !
Le fil bleu de chaque encodeur (VCC) doit aller au rail 3.3V. Si tu branches en 5V, les signaux de 5V envoyés aux GPIO de l'ESP32 vont le détruire définitivement (les GPIO supportent max 3.3V).
4. GPIO 34/35/36/39 = Entrée seule
Ces 4 broches ne peuvent que recevoir des signaux (pas en envoyer). C'est parfait pour les encodeurs. Elles n'ont pas de résistance pull-up interne, mais les encodeurs ont la leur — donc pas de souci.

Code couleur des fils

Utilise ces couleurs pour tes fils. Ça rend le débogage 10× plus facile !

Rouge = 12V (batterie)
Orange = 5V (sortie LM2596)
Jaune = 3.3V (sortie ESP32)
Noir = GND (masse)
Bleu = I2C / capteurs
Vert = Signaux moteur
Violet = Signaux encodeur

Schéma Général — Vue d'ensemble

Ce schéma montre comment tous les blocs sont connectés entre eux. Les détails fil par fil sont plus bas.

Schéma de Câblage — Vue d'ensemble (v3) Batterie 3S 3× 18650 11.1V + Interrupteur ON / OFF 12V 12V L298N Pont-H Double (contrôle 4 moteurs) 12V IN GND OUT1-OUT4 → moteurs ⚠ RETIRER JUMPERS LM2596 Convertisseur 12V → 5.0V ⚠ RÉGLER AVANT ! 5.0V ESP32 WROOM-32D Le cerveau du robot GPIO21 SDA GPIO22 SCL GPIO26 IN1 GPIO27 IN2 GPIO25 IN3 GPIO33 IN4 GPIO14 ENA GPIO32 ENB VIN ← 5V GND 3V3 → 3.3V GPIO34 ENC_L1 GPIO35 ENC_L2 GPIO36 ENC_R1 GPIO39 ENC_R2 GPIO15 XSHUT_F GPIO4 XSHUT_L GPIO5 XSHUT_R GPIO16 XSHUT_B GPIO2 LED IN1-IN4 ENA/ENB M1 + M3 (Gauche) 2 moteurs en parallèle → OUT1 / OUT2 du L298N Encodeurs → GPIO34, GPIO35 M2 + M4 (Droite) 2 moteurs en parallèle → OUT3 / OUT4 du L298N Encodeurs → GPIO36, GPIO39 encodeurs gauche encodeurs droite ToF AVANT VL53L0X • addr 0x30 XSHUT → GPIO15 ToF GAUCHE VL53L0X • addr 0x31 XSHUT → GPIO4 ToF DROITE VL53L0X • addr 0x32 XSHUT → GPIO5 ToF ARRIÈRE VL53L0X • addr 0x33 XSHUT → GPIO16 I2C : SDA (GPIO21) + SCL (GPIO22) I2C PERFBOARD 9×7cm Pull-ups 4.7kΩ (I2C) Condensateurs + Rails GND COMMUN — tous les composants connectés ici (fil noir) 3.3V → encodeurs VCC + ToF VCC (via perfboard) Chaîne d'alimentation (dans l'ordre) 1. Batterie 3S (11.1V) → Interrupteur → Rail 12V 2. Rail 12V → L298N VCC (moteurs) 3. Rail 12V → LM2596 → 5.0V → ESP32 VIN 4. ESP32 3V3 → 3.3V → Encodeurs + ToF 5. GND de TOUT est connecté ensemble !

Table Complète des GPIO de l'ESP32

Voici chaque broche utilisée sur l'ESP32. La colonne "Fil" indique la couleur à utiliser.

GPIOFonctionConnecté àFilExplication pour débutant
2LEDLED intégrée ESP32La petite lumière bleue sur la carte ESP32. Clignote pour indiquer l'état du robot. Pas de fil à brancher.
4XSHUT LeftVL53L0X GauchebleuContrôle l'allumage du capteur gauche. Permet de lui donner une adresse I2C unique (0x31).
5XSHUT RightVL53L0X DroitebleuContrôle l'allumage du capteur droit. Adresse I2C = 0x32.
14ENA (PWM)L298N ENAvertContrôle la vitesse des moteurs gauche. Le PWM envoie des impulsions rapides — plus c'est large, plus le moteur tourne vite.
15XSHUT FrontVL53L0X AvantbleuContrôle l'allumage du capteur avant. Adresse I2C = 0x30.
16XSHUT RearVL53L0X ArrièrebleuContrôle l'allumage du capteur arrière. Adresse I2C = 0x33.
21SDABus I2C (4× ToF)bleuFil de données I2C. Les 4 capteurs ToF partagent ce même fil. Besoin d'une résistance pull-up 4.7kΩ vers 3.3V.
22SCLBus I2C (4× ToF)bleuFil d'horloge I2C. Aussi partagé par les 4 capteurs. Besoin d'une résistance pull-up 4.7kΩ vers 3.3V.
25IN3L298N IN3vertDirection moteurs droite (signal A). IN3 + IN4 ensemble déterminent si le côté droit avance ou recule.
26IN1L298N IN1vertDirection moteurs gauche (signal A). IN1 + IN2 ensemble déterminent si le côté gauche avance ou recule.
27IN2L298N IN2vertDirection moteurs gauche (signal B).
32ENB (PWM)L298N ENBvertContrôle la vitesse des moteurs droite.
33IN4L298N IN4vertDirection moteurs droite (signal B).
34Encodeur M1M1 Signal A (jaune)violetReçoit les impulsions de l'encodeur du moteur avant-gauche. Chaque impulsion = le moteur a tourné un petit peu.
35Encodeur M3M3 Signal A (jaune)violetImpulsions de l'encodeur du moteur arrière-gauche.
36Encodeur M2M2 Signal A (jaune)violetImpulsions de l'encodeur du moteur avant-droit.
39Encodeur M4M4 Signal A (jaune)violetImpulsions de l'encodeur du moteur arrière-droit.
VINAlimentationLM2596 VOUT (5V)orangeL'ESP32 reçoit son courant ici. Doit être exactement 5.0V (mesuré au multimètre) !
GNDMasseGND communnoirLe « retour » du courant. Un seul fil GND de l'ESP32 vers le rail GND commun suffit.
3V3Sortie 3.3VRail 3.3V perfboardjauneL'ESP32 produit du 3.3V ici. On l'utilise pour alimenter les encodeurs et les capteurs ToF.

Câblage pas-à-pas — Dans l'ordre

Fais les connexions dans cet ordre. Chaque étape est détaillée avec les fils exacts à brancher.

1 Chaîne d'alimentation (12V)

C'est le courant qui vient de la batterie et alimente tout le système.

Rouge Batterie + Interrupteur (borne 1)
Rouge Interrupteur (borne 2) Rail 12V du perfboard (R2, cols 1-9)
Noir Batterie − Rail GND du perfboard (R12)
Pourquoi l'interrupteur ? Pour pouvoir éteindre le robot sans débrancher la batterie à chaque fois.

2 L298N — Pont-H moteur

Le L298N reçoit les ordres de l'ESP32 et alimente les moteurs en conséquence.

AVANT de câbler : retirer les jumpers ENA et ENB !
Ce sont 2 petits capuchons en plastique noir sur les broches ENA et ENB de la carte L298N. Retire-les avec tes doigts ou une pince.
Rouge Rail 12V perfboard L298N borne « 12V » (ou « VCC »)
Noir Rail GND perfboard L298N borne « GND »
Vert ESP32 GPIO26 L298N IN1
Vert ESP32 GPIO27 L298N IN2
Vert ESP32 GPIO25 L298N IN3
Vert ESP32 GPIO33 L298N IN4
Vert ESP32 GPIO14 L298N ENA (vitesse gauche)
Vert ESP32 GPIO32 L298N ENB (vitesse droite)
IN1/IN2 contrôlent la direction du côté gauche : IN1=HIGH + IN2=LOW = avancer, IN1=LOW + IN2=HIGH = reculer.
IN3/IN4 font pareil pour le côté droit.
ENA/ENB contrôlent la vitesse avec un signal PWM (0 à 255 = arrêt à pleine vitesse).

3 LM2596 — Convertisseur 12V → 5V

Rouge Rail 12V perfboard LM2596 IN+ (entrée positive)
Noir Rail GND perfboard LM2596 IN− (entrée négative)
Orange LM2596 OUT+ (sortie) Rail 5V perfboard (R2, cols 11-18)
Noir LM2596 OUT− (sortie) Rail GND perfboard (déjà connecté)
CRITIQUE : Régler à 5.0V AVANT de brancher l'ESP32 !
1) Branche le LM2596 à la batterie (via le rail 12V). 2) Allume l'interrupteur. 3) Avec un multimètre sur les bornes OUT+ et OUT−, tourne la vis bleue du potentiomètre jusqu'à lire exactement 5.0V. 4) Seulement ensuite, branche le fil orange vers l'ESP32 VIN.

4 ESP32 — Alimentation

Orange Rail 5V perfboard ESP32 VIN
Noir Rail GND perfboard ESP32 GND
Jaune ESP32 3V3 Rail 3.3V perfboard (R1)
VIN accepte du 5V et le convertit en 3.3V interne pour le processeur.
3V3 est la sortie 3.3V de l'ESP32. On l'utilise pour alimenter les encodeurs et les capteurs ToF via le perfboard.

5 Moteurs (6 fils chacun)

Chaque moteur JGB37-520 a 6 fils. Voici ce que chacun fait :

Rouge Moteur + → se branche aux sorties OUT du L298N (pour faire tourner le moteur)
Blanc Moteur − → se branche aux sorties OUT du L298N (l'autre borne)
Bleu Encodeur VCC → Rail 3.3V du perfboard (PAS 5V !)
Noir Encodeur GND → Rail GND du perfboard
Jaune Signal A → ESP32 GPIO (c'est celui qu'on utilise pour compter les tours)
Vert Signal BNon connecté (on n'a pas besoin du 2e canal)

Branchement par moteur :

MoteurPositionRouge + BlancJaune (Signal A)
M1Avant-gaucheOUT1 / OUT2 du L298NGPIO34
M2Avant-droitOUT3 / OUT4 du L298NGPIO36
M3Arrière-gaucheOUT1 / OUT2 du L298N (parallèle avec M1)GPIO35
M4Arrière-droitOUT3 / OUT4 du L298N (parallèle avec M2)GPIO39
Parallèle ? Ça veut dire que M1 et M3 partagent les mêmes bornes OUT1/OUT2. Tu branches le rouge de M1 ET le rouge de M3 ensemble sur OUT1. Pareil pour les blancs sur OUT2. Idem pour M2+M4 sur OUT3/OUT4.

Pourquoi ? Le L298N n'a que 2 canaux (A et B), mais on a 4 moteurs. En les mettant en parallèle, 2 moteurs du même côté tournent exactement à la même vitesse, ce qui fait avancer le robot droit.
ENCODEURS EN 3.3V !
Le fil bleu de chaque moteur (encodeur VCC) doit aller au rail 3.3V. Si tu le branches en 5V, le signal de l'encodeur sera en 5V et les GPIO de l'ESP32 (qui ne supportent que 3.3V max) seront détruits définitivement.

6 Capteurs ToF VL53L0X (I2C)

Les 4 capteurs de distance partagent le même bus I2C (SDA + SCL). On les différencie grâce à la broche XSHUT.

Fils communs (les 4 capteurs) :

Jaune ToF VCC Rail 3.3V du perfboard
Noir ToF GND Rail GND du perfboard
Bleu ToF SDA ESP32 GPIO21 (SDA)
Bleu ToF SCL ESP32 GPIO22 (SCL)

Fils XSHUT (un par capteur, tous différents) :

CapteurXSHUT →Adresse I2COrientation
ToF AvantGPIO150x30Pointe devant le robot
ToF GaucheGPIO40x31Pointe à 90° vers la gauche
ToF DroiteGPIO50x32Pointe à 90° vers la droite
ToF ArrièreGPIO160x33Pointe derrière le robot
Pourquoi XSHUT ? Les 4 capteurs VL53L0X ont tous la même adresse I2C par défaut (0x29). On ne peut pas avoir 4 composants avec la même adresse sur le même bus ! La broche XSHUT permet d'allumer les capteurs un par un : on allume le premier, on lui donne l'adresse 0x30, puis le deuxième (0x31), le troisième (0x32), et le quatrième (0x33).

Pull-ups I2C : Le bus I2C a besoin de 2 résistances de 4.7kΩ (une sur SDA, une sur SCL) connectées vers 3.3V. Elles sont sur le perfboard.

7 Pull-ups I2C (sur le perfboard)

Résistance 4.7kΩ entre 3.3V et SDA (GPIO21)
Résistance 4.7kΩ entre 3.3V et SCL (GPIO22)
Sans ces résistances, les capteurs ToF ne fonctionneront pas. Le bus I2C a besoin de ces pull-ups pour maintenir le signal haut quand personne ne communique. C'est comme un « ressort » qui ramène le fil à 3.3V.

Ordre de test (très important !)

Ne branche pas tout d'un coup. Teste étape par étape !
1. Branche la batterie → interrupteur. Mesure 12V sur le rail.
2. Branche le LM2596. Règle à 5.0V. Mesure avec le multimètre.
3. Branche l'ESP32 (VIN + GND). Vérifie que la LED bleue clignote au démarrage.
4. Upload un sketch de test basique (ex: blink). Si ça marche, l'ESP32 est bien alimenté.
5. Branche UN moteur. Teste qu'il tourne avec un sketch simple.
6. Branche les 3 autres moteurs et teste.
7. Branche UN capteur ToF. Teste qu'il retourne des distances.
8. Branche les 2 autres ToF et teste.
9. Teste les encodeurs un par un.
10. Tout fonctionne ? Upload le code du robot !
Si quelque chose ne marche pas
Pas de courant : Vérifie que l'interrupteur est allumé. Vérifie les soudures avec le multimètre en mode « continuité » (le bip).
ESP32 ne démarre pas : Mesure le VIN. Est-ce bien 5.0V ? Vérifie le GND.
Moteur ne tourne pas : As-tu retiré les jumpers ENA/ENB ? Vérifie le câblage IN1-IN4 et ENA/ENB.
Capteur ToF ne répond pas : Vérifie les pull-ups I2C. Vérifie que XSHUT est bien câblé. Lance un scan I2C dans le Serial Monitor.