CONTENIDO ►
El telémetro láser VL53L1X Arduino es un sensor para medir la distancia a un obstáculo de hasta 4 metros de distancia con una longitud de onda de 940 nm. Los módulos telémetro VL53L0X, más económicos, tienen un alcance de sólo 2 metros. En este artículo veremos cómo conectar el sensor de distancia infrarrojo láser VL53L0X ou VL53L1X (GY-53) al Arduino Uno microcontrolador y cómo utilizar este sensor para medir la distancia a un obstáculo.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- módulo láser VL53L1X / VL53L0X;
- pantalla OLED 128×64 i2c;
- cables de conexion;
- librerias SparkFun_VL53L1X.h y OLED_I2C.h
Módulo de sensor de distancia infrarrojo láser
Los sensores de distancia infrarrojo láser GY-53 (VL53LOX / VL53L1X) tienen 6 conectores, pero sólo se necesitarán 4. Dos conectores se utilizan para la alimentación y otros dos para la comunicación I2C. Por defecto el VL53L1X está configurado en modo «largo alcance» hasta 4m. Utilizando la librería SparkFun_VL53L1X.h puedes configurar un modo de medición de «corto alcance» más preciso con un alcance de unos 2 metros.

Características VL53L1X / VL53LOX:
- Voltaje de funcionamiento: 2.6 ~ 5.5 V
- Mide distancias absolutas de: 2 cm ~ 4 m / 2 m
- Resolución: 1 mm
- Temperatura de operación: – 20 ~ 70°C
El ángulo de visión por defecto del sensor es de 27° (Field of View). En algunos casos, esto puede hacer que la precisión del sensor se vea afectada por obstáculos en la periferia. El ángulo de visión puede reducirse controlando el área ROI. El sensor consiste en una matriz de 16 X 16 elementos, y controlar el área ROI consiste en activar parte de los elementos. El haz más estrecho se obtiene activando la parte de 4 X 4 elementos de la matriz.
Cómo Conectar sensor láser VL53L0X / VL53L1X Arduino

| VL53LOX / VL53L1X | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Para empezar, vamos a presentar el primer código de ejemplo que muestra regularmente la distancia medida (en milímetros) en el monitor serie de Arduino IDE. El programa se ejecuta en segundo plano utilizando las librerías Wire y SparkFun_VL53L1X, por lo que el programa es muy corto. Conecta el sensor de distancia infrarrojo láser a la microcontrolador Arduino Uno como se muestra en el diagrama anterior y carga el código en el microcontrolador.
Programa Arduino para sensor láser VL53L1X Arduino
#include "Wire.h" #include "SparkFun_VL53L1X.h" SFEVL53L1X vl; void setup () { Serial.begin(9600); vl.setOffset(0); // calibración // vl.setDistanceModeShort(); // mode "corta distancia" // vl.setROI(4,4,199); // reducir el campo de visión al mínimo } void loop() { vl.startRanging(); while (!vl.checkForDataReady()) { delay(1); } int dist = vl.getDistance(); vl.stopRanging(); Serial.print("Distance: "); Serial.print(dist); Serial.println(" mm"); delay(1000); }
Explicación del código para sensor láser VL53L1X Arduino:
- con setROI(4,4,199); puede establecer los elementos activos de la matriz, donde el primer y el segundo argumento son la anchura y la altura de la matriz en píxeles;
- con setOffset(); puedes calibrar el sensor de distancia láser.
En el siguiente ejemplo, el resultado de la medición de la distancia a un obstáculo se mostrará en la pantalla OLED SSD1306 Arduino. Si la distancia a un objeto medida por el sensor láser VL53L0X / VL53L1X (GY-53) no es exacta, puede corregir los datos mediante la función setOffset. Por ejemplo, si la distancia medida es 10 milímetros inferior a la distancia real, debe especificarse setOffset(10) para añadir 10 milímetros al resultado final.

| OLED i2c 0,96 | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Programa Arduino para medir distancias con VL53L0X
#include "Wire.h" #include "OLED_I2C.h" OLED myOLED(SDA, SCL, 8); extern uint8_t BigNumbers[]; extern uint8_t SmallFont[]; #include "SparkFun_VL53L1X.h" SFEVL53L1X vl; void setup () { Serial.begin(9600); myOLED.begin(); vl.setOffset(0); // calibración // vl.setDistanceModeShort(); // mode "corta distancia" // vl.setROI(4,4,199); // reducir el campo de visión al mínimo } void loop() { vl.startRanging(); while (!vl.checkForDataReady()) { delay(1); } int dist = vl.getDistance(); vl.stopRanging(); Serial.print("Distance: "); Serial.print(dist); Serial.println(" mm"); myOLED.setFont(BigNumbers); myOLED.print(String(dist), CENTER, 20); myOLED.setFont(SmallFont); myOLED.print("MILLIMETRES", CENTER, 50); myOLED.update(); delay(1000); }
Explicación del código para medir distancias con VL53L0X Arduino:
- el sensor VL53LOX es capaz de proporcionar la medición de distancia más precisa posible, independientemente de la reflectancia del objeto.
Conclusión. Los sensores de distancia láser VL53L1X y VL53L0X tienen la ventaja de que su precisión depende menos de la temperatura ambiente que el sensor ultrasónico HC-SR04. Otro punto a favor es la posibilidad de ajustar el ángulo del campo de visión para reducir los errores de medición debidos a los objetos situados cerca del sensor.

Deja una respuesta