The VL53L0X is a Time-of-Flight (ToF) laser-ranging sensor from STMicroelectronics, housed in a compact module that measures absolute distance up to 2 meters regardless of the target’s color or reflectance. Unlike traditional IR-based distance sensors, its direct ToF measurement stays accurate even against low-reflectance or angled surfaces.
The sensor integrates a leading-edge SPAD (Single Photon Avalanche Diode) array and ST’s second-generation FlightSense technology. Its 940 nm VCSEL emitter is invisible to the human eye, and built-in infrared filters improve ranging distance and immunity to ambient light.
Common Uses
Obstacle detection for robots and drones
Proximity and gesture sensing
Camera autofocus assistance
Liquid-level and object-presence detection
Module Pinout
Pin
Name
Description
1
VIN
Power supply , 2.6V-5.5V
2
GND
Ground
3
SCL
I2C Serial Clock
4
SDA
I2C Serial Data
Features
Accurate absolute distance ranging up to 2m
940nm invisible laser, safe for the eyes
On-board 2.8V linear regulator
I2C interface for easy microcontroller integration
Package includes: 1 x VL53L0X TOF Based LIDAR Laser Distance Sensor
Pin Connections Table 1
Board Sensor Pin Connection VL53L0X VCC/GND/SDA/SCL 3.3V / GND / board SDA / board SCL
VL53L0X TOF Based LIDAR Laser Distance Sensor - Arduino Uno
VL53L0X TOF Based LIDAR Laser Distance Sensor - Arduino Nano
VL53L0X TOF Based LIDAR Laser Distance Sensor - Arduino Mega
VL53L0X TOF Based LIDAR Laser Distance Sensor - ESP32
VL53L0X TOF Based LIDAR Laser Distance Sensor - ESP8266
VL53L0X TOF Based LIDAR Laser Distance Sensor - STM32
VL53L0X TOF Based LIDAR Laser Distance Sensor - Raspberry Pi Pico
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Uno: A4=SDA, A5=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Nano: A4=SDA, A5=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Mega: D20=SDA, D21=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for ESP32: GPIO21=SDA, GPIO22=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for ESP8266: D2(GPIO4)=SDA, D1(GPIO5)=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for STM32: PB7=SDA, PB6=SCL (Blue Pill / F103C8). VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Raspberry Pi Pico: GPIO4=SDA, GPIO5=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_VL53L0X.h>
8
9 Adafruit_VL53L0X lox = Adafruit_VL53L0X();
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!lox.begin()) {
15 Serial.println ("VL53L0X not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 }
19
20 void loop () {
21 VL53L0X_RangingMeasurementData_t measure;
22 lox.rangingTest(&measure, false);
23
24 if (measure.RangeStatus != 4 ) { // 4 = out of range
25 Serial.print ("Distance: "); Serial.print (measure.RangeMilliMeter); Serial.println (" mm");
26 } else {
27 Serial.println ("Out of range");
28 }
29
30 delay (200 );
31 }
Project Notes: I2C time-of-flight laser distance sensor, up to ~2m range.
نظرة عامة ومواصفات المنتج — بالعربية VL53L0X TOF Based LIDAR Laser Distance Sensor متوفر الآن في متجر إكوسترا للإلكترونيات، ضمن قسم LiDAR Sensor، بسعر 180,00 EGP. كود المنتج لدينا: 800. المنتج غير متوفر حالياً — تواصل معنا عبر واتساب لمعرفة موعد توفره القادم.
أهم المواصفات الفنية:
هذا المنتج مناسب لمشاريع الأردوينو (Arduino) و ESP32 و Raspberry Pi، ومشاريع الروبوتات وإنترنت الأشياء والتعليم الهندسي. جميع القطع مفحوصة قبل الشحن.
تصفّح المزيد من LiDAR Sensor في إكوسترا.