build docs crates.io

vl53l1x-uld

This crate is a port of the STM VL53L1X IMG009 driver to native rust.

Minimal example

Below is minimal example for using this driver. Other more complex examples can be found in the examples folder.

```rust use vl53l1x_uld::{self, VL53L1X, IOVoltage, RangeStatus};

// Create hardware specific I2C instance. let i2c = ...; // Create sensor with default address. let mut vl = VL53L1X::new(i2c, vl53l1xuld::DEFAULTADDRESS);

const ERR : &str = "Failed to communicate";

// Check if the sensor id is correct. if (vl.getsensorid().expect(ERR) == 0xEACC) { // Initialize the sensor before any usage. // Set the voltage of the IO pins to be 2.8 volts vl.init(IOVoltage::Volt2_8).expect(ERR);

// Start a ranging operation, needed to retrieve a distance
vl.start_ranging().expect(ERR);

// Wait until distance data is ready to be read.
while !vl.is_data_ready().expect(ERR) {}

// Check if distance measurement is valid.
if (vl.get_range_status().expect(ERR) == RangeStatus::Valid)
{
    // Retrieve measured distance.
    let distance = vl.get_distance().expect(ERR);
}

}

```