Medición de distancia con un módulo láser VL53L0X de 6 pines para Arduino
En este tutorial aprenderemos a medir distancias usando el sensor de distancia láser VL53L0X con un módulo de 6 pines. Este sensor, pequeño pero potente, utiliza la tecnología de tiempo de vuelo para proporcionar mediciones de distancia precisas de hasta 200 cm. Siguiendo esta guía, podrás configurar el sensor con un Arduino y leer los valores de distancia directamente desde tu monitor serial.

Para este proyecto usaremos el sensor VL53L0X, que es compacto y fácil de integrar en diversas aplicaciones. El sensor se comunica vía I2C, lo que facilita su conexión a una placa Arduino. En el video encontrarás explicaciones adicionales y demostraciones del proceso de configuración (en el video a las 04:00).
Hardware explicado
El VL53L0X es un sensor de distancia por tiempo de vuelo que emite un haz láser y mide el tiempo que tarda la luz en volver después de golpear un objeto. Esto le permite calcular con precisión la distancia al objeto. El sensor opera a un voltaje entre 2.6 V y 3.5 V, pero puede alimentarse con 5 V gracias a un regulador de voltaje interno.
El módulo tiene seis pines: VCC, GND, SDA (línea de datos), SCL (línea de reloj), GPIO1 (E/S de propósito general) y XSHUT (pin de apagado). El pin GPIO1 no se utiliza en esta configuración, pero puede dejarse sin conectar. El pin XSHUT le permite apagar el sensor para ahorrar energía cuando no esté en uso.
Detalles de la ficha técnica
| Fabricante | STMicroelectronics |
|---|---|
| Número de pieza | VL53L0X |
| Voltaje lógico/E/S | 2.6 V a 3.5 V (5 V con regulador) |
| Temperatura de funcionamiento | -20 °C a 70 °C |
| Rango de medición | 30 mm a 2000 mm |
| Frecuencia de comunicación I2C | 400 kHz |
| Tamaño | 4.4 mm x 2.4 mm x 1 mm |
- Asegúrese de una fuente de alimentación adecuada (se recomiendan 5 V).
- Conecta SDA y SCL a los pines I2C apropiados del Arduino.
- Utilice resistencias pull-up en las líneas I2C si es necesario.
- No deje GPIO1 sin conectar; se puede dejar flotando.
- Mantenga el pin XSHUT en estado alto durante la operación.
- Mida las distancias en un entorno bien iluminado para una mayor precisión.
- Calibre el sensor para obtener mediciones precisas.
- Pruebe el alcance del sensor colocando objetos a diversas distancias.
- Supervise la salida serie en busca de lecturas de distancia y mensajes de tiempo de espera.
Instrucciones de cableado

Para cablear el sensor VL53L0X a tu Arduino, comienza conectando el pin VCC del sensor al pin 5V del Arduino. A continuación, conecta el pin GND al GND del Arduino. El pin SDA del sensor debe conectarse al pin A4 del Arduino (o al pin SDA si tu placa tiene pines I2C dedicados). Del mismo modo, conecta el pin SCL del sensor al pin A5 (o al pin SCL). Deja el pin GPIO1 sin conectar, ya que no se necesita para este proyecto.
Finalmente, conecta el pin XSHUT al pin digital 12 del Arduino. Este pin se usará para controlar el estado de apagado del sensor. Asegúrate de que todas las conexiones estén seguras para evitar cualquier problema de comunicación.
Ejemplos de código y guía paso a paso
En el código, comenzamos incluyendo las bibliotecas necesarias e inicializando el sensor VL53L0X. La función setup configura el sensor y comienza mediciones continuas de distancia. Aquí hay un fragmento de la función setup:
void setup() {
pinMode(12, INPUT_PULLUP);
digitalWrite(12, HIGH);
Serial.begin(9600);
Wire.begin();
sensor.init();
sensor.setTimeout(500);
sensor.startContinuous();
}En este fragmento, configuramos el pin 12 como entrada con una resistencia pull-up e inicializamos la comunicación serie a 9600 baudios. También inicializamos el sensor y establecemos un tiempo de espera para las lecturas, asegurando que funcione de forma continua.
A continuación, leemos la distancia en la función loop, donde el valor medido se imprime en el monitor serie:
void loop() {
int distance = sensor.readRangeContinuousMillimeters();
Serial.print("Distance: ");
Serial.print(distance);
Serial.print("mm");
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
Serial.println();
delay(100);
}Este código lee la distancia en milímetros y la imprime en el monitor serial. Si ocurre un tiempo de espera, indica que el sensor no recibió una lectura válida.
Demostración / Qué esperar
Cuando ejecutes el programa, deberías empezar a ver mediciones de distancia en el monitor serie. La salida fluctuará a medida que muevas objetos más cerca o más lejos del sensor. Puede que notes mensajes de tiempo de espera ocasionales si el sensor no consigue una lectura (en el video a las 10:30). Para mejorar la precisión, considera promediar varias lecturas.
Cosas que podrías necesitar
-
eBayCompra VL53l0x en eBayebay.us
-
AliExpressCompra de 1 a 10 piezas de VL53L0X en AliExpresss.click.aliexpress.com
-
BanggoodCompra de 1 a 10 piezas de VL53L0X en Banggood.banggood.com
Recursos y referencias
-
ExternoCompra de 1 a 10 piezas de VL53L0X en AliExpresss.click.aliexpress.com
-
ExternoCompra de 1 a 10 piezas de VL53L0X en Banggood.banggood.com
-
ExternoCompra VL53L0X en Amazonamzn.to
-
ExternoCompra VL53l0x en eBayebay.us
Archivos📁
Archivo de Fritzing
-
VL53L0X_Distance_sensor_Squares
application/zip0.02 MB
Otros archivos
-
VL53L0X_Distance_sensor_purple
application/zip0.01 MB