Crate scl3300

Crate scl3300 

Source
Expand description

This is a driver for SCL3300 inclinometers, implemented using platform-agnostic embedded-hal traits.

§Usage

use scl3300::{Scl3300, Acceleration, ComponentId, Inclination, MeasurementMode, Temperature};

let inclinometer = Scl3300::new(spi);

// Start the inclinometer and switch to inclination mode.
let mut inclinometer = inclinometer.start_up(MeasurementMode::Inclination)?;

// Read the component ID.
let id: ComponentId = inclinometer.read()?;
assert_eq!(id, ComponentId::WHOAMI);

// Read acceleration, inclination and temperature.
let (acc, inc, temp): (Acceleration, Inclination, Temperature) = inclinometer.read()?;

println!("Acceleration: {}g, {}g, {}g", acc.x_g(), acc.y_g(), acc.z_g());
println!("Inclination: {}°, {}°, {}°", inc.x_degrees(), inc.y_degrees(), inc.z_degrees());
println!("Temperature: {}°C", temp.degrees_celsius());

// Switch to power-down mode.
let inclinometer = inclinometer.power_down()?;

// Release the SPI peripheral again.
let spi = inclinometer.release();
drop(spi);

Re-exports§

pub use output::*;
pub use mode::*;

Modules§

mode
Scl3300 operation modes.
output
This module includes all types which can be read using Scl3300::read.

Structs§

Scl3300
An SCL3300 inclinometer.

Enums§

Error
An SCL3300 error.
MeasurementMode
A measurement mode.

Traits§

OffFrameRead
Types implementing this trait can be read using Scl3300::read.