3 stable releases
2.0.1 | Dec 7, 2023 |
---|---|
2.0.0 | Nov 29, 2022 |
1.0.0 | May 20, 2022 |
#1592 in Embedded development
26 downloads per month
54KB
948 lines
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.
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, vl53l1x_uld::DEFAULT_ADDRESS);
const ERR : &str = "Failed to communicate";
// Check if the sensor id is correct.
if (vl.get_sensor_id().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);
}
}
Dependencies
~1MB
~28K SLoC