TOF200C Sensor de distancia laser ToF VL53L0X - Documentacion y Ejemplos
TOF200C - Documentacion y Ejemplos
- TOF200C -
Módulo con sensor de distancia laser ToF basado en el circuito integrado VL53L0X. Interactúa con una matriz SPAD (Single Photon Avalanche Diodes) y la tecnología FlightSense, Permite medir la distancia absoluta independientemente del color y la superficie del objeto detectado. Gracias a su emisor de luz infrarrojo con una longitud de onda de 940 nm y un juego de filtros, ofrece un alcance de hasta 200 cm con buena resistencia a las interferencias de la luz ambiental. El sensor tiene una zona muerta que va de 0 a 3 cm y un ángulo de detección de 25°. El módulo también ofrece la capacidad de detectar gestos 1D. VL53L0 se comunica a través de la interfaz I2C lo que permite conectarse a cualquier microntrolador del mercado (Arduino/Atmega/ESP32/ESP12/ESP8266/PIC/Raspberry/etc), y el usuario tiene una API (interfaz de programación de aplicaciones) amigable y fácil de usar disponible en lenguaje C. Se puede utilizar en aplicaciones de detección de presencia de objetos y obstáculos, tanto en robots industriales como en estructuras móviles.
El emisor VCSEL de 940 nm del VL53L0X, es totalmente invisible para el ojo humano, junto con su hardware interno y Filtros infrarrojos, permite un mayor alcance. distancias, mayor inmunidad a la luz ambiental y Mejor robustez para cubrir la diafonía óptica del vidrio.
Este modulo es ideal para entusiastas de la robótica, ingenieros y desarrolladores para integrar en sus de proyectos de electronica y robotica incluyendo aspiradoras robot, robots, drones, casas inteligentes, instrumentos de medicion, etc por su alta precision, tamaño y peso reducidos (1.2 gramos), facilidad de operacion e interface estandar I2C.
Atencion:
Si los requisitos de confiabilidad y seguridad de la aplicación de este modulo son estrictos, elija este producto cuidadosamente, como las siguientes aplicaciones:
- Equipos de seguridad y control de tráfico (aviones, trenes, automóviles, etc.)
- Control de señales de tráfico.
- Dispositivo de fuga de gas
- Entornos de energía nuclear
- Equipo de rescate
- Otros equipos relacionados con la seguridad humana y la seguridad pública.
TOF200C está diseñado para productos de consumo, no es aplicable a escenarios de alta confiabilidad y alta seguridad.
--- Caracteristicas ---
Rango: 3 a 200 cm
Zona muerta: 0 a 3 cm
Interfaz: I2C Up to 400 kHz (FAST mode)
Dirección I2C: 0x29 (programable)
Ángulo de visión (FOV): 25°
Capacidad de detección de gestos 1D
Cubierta protectora
Dos orificios de montaje M2
Voltaje de alimentación: 3 a 5 V
Consumo de corriente: 40 mA
Temperatura de trabajo: -20 a 70°C
Dimensiones: 20mm x 11mm x 4.5mm Board Size
Weight: 1.2g
Datasheet:
https://www.st.com/resource/en/datasheet/vl53l0x.pdf
Codigo Arduino Example (sketch):
ESP32 C3 SuperMini + TOF200C

Para este ejemplo se requiere instalar libreria (Adafruit_VL53L0X)
#include <Wire.h>
#include <Adafruit_VL53L0X.h>
#define SDA_PIN 8
#define SCL_PIN 9
Adafruit_VL53L0X lox;
void setup() {
Serial.begin(115200);
delay(1200);
Wire.begin(SDA_PIN, SCL_PIN);
Wire.setClock(100000); // si da problemas bajalo a 50000 o 10000
delay(50);
Serial.println("Init VL53L0X...");
if (!lox.begin()) { // usa 0x29 por defecto
Serial.println("ERROR: VL53L0X no inicia");
Serial.println("Chequea VCC=3.3V, GND, SDA/SCL,pullups 4.7k, XSHUT etc");
while (1) delay(200);
}
Serial.println("VL53L0X listo");
}
void loop() {
VL53L0X_RangingMeasurementData_t m;
lox.rangingTest(&m, false);
if (m.RangeStatus != 4) { // 4 = out of range
Serial.print("Distancia: ");
Serial.print(m.RangeMilliMeter);
Serial.println(" mm");
} else {
Serial.println("Fuera de rango");
}
delay(200);
}
ESP8266 Nodemcu + TOF200C
Para este ejemplo se requiere instalar libreria (DFRobot_VL53L0X)
/*!
* TOF200C
* Example shows the usage of VL53L0X in a simple way.
*
*/
#include "Arduino.h"
#include "Wire.h"
#include "DFRobot_VL53L0X.h"
DFRobot_VL53L0X sensor;
void setup() {
//initialize serial communication at 9600 bits per second:
Serial.begin(115200);
//join i2c bus (address optional for master)
Wire.begin();
//Set I2C sub-device address
sensor.begin(0x29);
//Set to Back-to-back mode and high precision mode
sensor.setMode(sensor.eContinuous,sensor.eHigh);
//Laser rangefinder begins to work
sensor.start();
}
void loop()
{
//Get the distance
Serial.print("Distance: ");Serial.println(sensor.getDistance());
//The delay is added to demonstrate the effect, and if you do not add the delay,
//it will not affect the measurement accuracy
delay(1000);
}
