Voici un exemple complet avec un **ESP32** et un **VL6180X** en **I²C**, en environnement **Arduino** (PlatformIO ou Arduino IDE). Le code lit la distance (mm) et la luminosité ambiante (ALS).

Câblage typique : VL6180X VDD→3V3, GND→GND, SDA→GPIO21, SCL→GPIO22. Si ton module VL6180X a une entrée “VIN”, tu peux parfois l’alimenter en 5 V (régulateur intégré), mais les lignes I²C doivent rester compatibles 3,3 V (la plupart des breakouts gèrent ça, sinon il faut un level shifter).

### Code Arduino (ESP32 + Adafruit_VL6180X)

Voir le fichier [Code Arduino (ESP32 + Adafruit_VL6180X)](https://git.abonnel.fr/cedricAbonnel/notes-techniques/raw/branch/main/notes/technologie/VL6180X%20-%20catpeur%20de%20distance%20-%20code.c)

Remarques pratiques :

* Si tu as plusieurs capteurs VL6180X sur le même bus, il faut gérer la broche **CE/XSHUT** (selon module) pour démarrer un capteur à la fois et changer son adresse I²C (ce capteur le permet).
* Si tu vois “non détecté”, la cause la plus fréquente est l’absence de pull-ups I²C (certains modules en ont déjà), un câblage SDA/SCL inversé, ou un module alimenté en 5 V avec I²C non compatible 3,3 V.

