meta data for this page
LamaPLC: VL6180X STMicroelectronics Time-of-Flight (ToF) sensor with I²C communication
The VL6180X is a small optical sensor from STMicroelectronics that uses Time-of-Flight (ToF) technology to measure distance and ambient light. Unlike conventional IR sensors, it determines absolute distance regardless of the object's color or reflectivity.
Laser distance sensors:
Laser sensors, similar to IR sensors, use triangulation to measure distance. The sensor emits a laser beam that reflects off the measured surface and passes through a lens onto the CCD or CMOS sensor. As the surface moves closer or farther away, the projected point shifts position on the sensor. The electronics analyze this shift to calculate the distance.
- Technology: Time-of-Flight (ToF) based on STMicroelectronics FlightSense patented technology.
- Measurement Range: Measures distances from 30 mm up to 2,000 mm (2 m), with resolution in millimeters. The achievable range can vary based on ambient light and target surface properties.
- Emitter: Uses a 940 nm invisible Class 1 VCSEL (Vertical Cavity Surface-Emitting Laser) which is eye-safe and offers high immunity to ambient light.
- Interface: Communicates via an I²C interface (default address 0x29) and includes XSHUT (shutdown/reset) and GPIO1 (interrupt) pins for control and data transfer.
- Accuracy: Provides a typical accuracy of ±3% at distances up to 1 meter.
- Power Consumption: Very low, with approximately 10 mA typical average during active ranging and 5 µA in standby mode.
- Dimensions: A miniature module, typically 4.4 x 2.4 x 1.0 mm for the sensor chip itself, with carrier boards available for easy integration into breadboards.
- Operating voltage: 2.7 .. 5.5V DC
- Responsive time: 50ms
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
VL6180X Pinout
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power | Main power supply input (typically 2.7V to 5.5V). |
| GND | Power | Common ground for power and logic. |
| SCL | I²C Clock | I²C serial clock line. Logic level matches VIN. |
| SDA | I²C Data | I²C serial data line. Logic level matches VIN. |
| GPIO0 / SHDN | Control | Shutdown/Chip Enable. Pulling this pin LOW puts the sensor into standby mode. It is usually pulled HIGH by default. |
The VL6180X operates natively at 2.8V. Most breakout modules (such as those from Adafruit or Pololu) include a voltage regulator and level shifters, making them compatible with 3.3V or 5V Arduinos.
Arduino code
To interface the STMicroelectronics VL6180X (a 3-in-1 Time-of-Flight sensor for distance and ambient light) with an Arduino, the Pololu VL6180X library is a popular, lightweight choice.
#include <Wire.h> #include <VL6180X.h> VL6180X sensor; void setup() { Serial.begin(9600); Wire.begin(); sensor.init(); sensor.configureDefault(); // Sets recommended settings for standard operation // Set a 500ms timeout for I2C communication sensor.setTimeout(500); } void loop() { // Read distance in millimeters (typically accurate up to 100mm, max 200mm) uint8_t range = sensor.readRangeSingleMillimeters(); // Read ambient light in Lux float lux = sensor.readAmbientLightSingle(); Serial.print("Range: "); Serial.print(range); Serial.print(" mm | Ambient Light: "); Serial.print(lux); Serial.println(" lux"); if (sensor.timeoutOccurred()) { Serial.println(" !!! TIMEOUT !!!"); } delay(500); }
I²C topics on lamaPLC
This page has been accessed for: Today: 2, Until now: 4