Platform agnostic driver for TSL256x series light intensity sensors built using the embedded-hal
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
Cargo.toml
LICENSE-APACHE.txt
LICENSE-MIT.txt
README.md

README.md

tsl256x Light-To-Digital Converter Docs Docs

Platform agnostic driver for TSL256x series of light intensity sensors built using the embedded-hal

What works

  • Getting raw sensor readings for both visible+IR spectrum and IR-only spectrum
  • Using one of the three built in slave addresses, or any custom address
  • Powering the chip on/off to conserve energy
  • Setting sensor gain and integration time

TODO

  • Add method to perform lux calculation (requires nostd implementation of exponentiation for f32)
  • Add method to setup interrupts
  • Support the TSL2560 (SPI version)

Example

    extern crate tsl256x;
    use tsl256x::{Tsl2561, SlaveAddr};
    
    let sensor = Tsl2561::new(&mut i2c, SlaveAddr::default().addr()).unwrap();
    sensor.power_on(&mut i2c); 
    
    // Note sensor readings are zero until one integration period (default 400ms) after power on
    iprintln!(&mut cp.ITM.stim[0], "IR+Visible: {}, IR Only: {}",
                        sensor.visible_and_ir_raw(&mut i2c).unwrap(),
                        sensor.ir_raw(&mut i2c).unwrap());

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.