This crate is a port of the STM VL53L1X IMG009 driver to native rust.
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);
}
}
```