Sensor · Distancia

VL53L0X láser (I²C)

Mide distancia con un láser infrarrojo por tiempo de vuelo: milímetros de resolución hasta 2 metros, sin que importe el color o el ángulo como en un ultrasonido. Breakout de 4 pines (VIN · GND · SCL · SDA), con regulador de 3,3 V a bordo para usarlo directo a 5 V.

  • Manual en español
  • Código de ejemplo
  • Soporte técnico
Qué es

Un telémetro láser en 25 milímetros

El VL53L0X de STMicroelectronics es un sensor Time-of-Flight: emite un pulso láser infrarrojo de 940 nm (clase 1, seguro para la vista) y mide cuánto tarda en volver. El resultado es una distancia real en milímetros, independiente del color y la reflectividad del objeto dentro de su rango, y con un haz angosto que no rebota en cualquier cosa como el ultrasonido.

Este breakout deja el chip conectado directo por I²C, con un regulador de 3,3 V y pull-ups a bordo: lo alimentás a 5 V o 3,3 V y lo enganchás a cualquier microcontrolador con SDA/SCL, sin electrónica extra.

Para qué sirve

Distancia precisa sin contacto, en interiores

Donde el ultrasonido (HC-SR04) es impreciso o ruidoso, este sensor da lecturas estables y rápidas.

  • Nivel de líquido o de sólidos en tanques, silos y depósitos (apuntando a la superficie desde arriba).
  • Detección de presencia y conteo de personas u objetos.
  • Robots: evitar obstáculos, seguir paredes, detectar el borde de una mesa.
  • Gestos y control sin contacto (mano cerca / lejos).
  • Medición de espesores, posición de un carro o una puerta.
Cuándo usarlo

Láser vs. ultrasonido

Elegilo si

  • Necesitás precisión de milímetros entre 3 cm y 1,2 m (hasta 2 m en modo largo alcance).
  • Es en interiores o con luz controlada.
  • Querés un haz angosto que apunte a un solo objeto.
  • Necesitás lecturas rápidas (hasta ~50 por segundo).

Mirá otra cosa si

  • Es a pleno sol: el infrarrojo ambiente reduce mucho el alcance → ultrasonido.
  • El objetivo es transparente, espejado o negro mate: el láser rebota mal.
  • Necesitás más de 2 m → VL53L1X (4 m) o ultrasonido (consultanos).
Así arranca

Ejemplo mínimo

Librería Adafruit_VL53L0X desde Arduino IDE. En un ESP32 NodeMCU: SDA a GPIO 21, SCL a GPIO 22.

#include <Wire.h>
#include <Adafruit_VL53L0X.h>

Adafruit_VL53L0X lox;

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);               // SDA, SCL
  if (!lox.begin()) { Serial.println("No se detecta el VL53L0X"); while (1); }
}

void loop() {
  VL53L0X_RangingMeasurementData_t m;
  lox.rangingTest(&m, false);
  if (m.RangeStatus != 4) Serial.printf("%d mm\n", m.RangeMilliMeter);
  else Serial.println("Fuera de rango");
  delay(100);
}

En la guía: modo largo alcance, calibración de offset y filtrado de lecturas.

Errores típicos

Lo que más consultan

  • "No se detecta el sensor" (0x29 no responde): revisá que SDA/SCL no estén invertidos y que el módulo tenga alimentación (LED encendido, si trae).
  • Lecturas de 8190 mm o "fuera de rango": el objetivo está demasiado lejos, es muy oscuro, o hay luz solar directa. Probá con un objeto claro a 20 cm para validar el sensor.
  • Mide de más: el sensor mide desde el chip, y a veces queda una película protectora sobre el emisor. Sacala. Para más precisión, la guía explica la calibración de offset.
  • Lectura inestable: subí el tiempo de medición (timing budget) o promediá 5 lecturas. Está en el ejemplo completo.
También te puede servir

Otros componentes