2个版本

0.1.1 2020年7月30日
0.1.0 2020年1月17日

#792 in 硬件支持

MIT/Apache

40KB
769

Rust LTR-559 ALS和PS驱动器

crates.io Build Status

这是一个使用embedded-hal traits的、与平台无关的Rust驱动器,用于LTR-559环境光传感器和接近传感器。

此驱动器允许您

  • 读取以勒克斯为单位的测量值。参见:get_lux()
  • 读取原始测量值。参见:get_als_raw_data()
  • 读取转换状态。参见:get_status()
  • 读取PS数据。参见:get_ps_data()
  • 获取制造商ID。参见:get_manufacturer_id()
  • 获取部件ID。参见:get_part_id()
  • 设置ALS启用、增益和软件重置。参见:set_als_contr()
  • 设置PS模式和平滑度。参见:set_ps_contr()
  • 设置PS LED脉冲、占空比和峰值电流。参见:set_ps_led()
  • 设置中断保持。参见:set_interrupt_persist()
  • 设置ALS测量速率。参见:set_als_meas_rate()
  • 设置ALS低限。参见:set_als_low_limit_raw()
  • 设置ALS高限。参见:set_als_high_limit_raw()
  • 设置PS低限。参见:set_ps_low_limit_raw()
  • 设置PS高限值。参见:set_ps_high_limit_raw()
  • 设置PS测量速率。参见:set_ps_meas_rate()
  • 设置PS偏移。参见:set_ps_offset()
  • 设置PS脉冲数。参见:set_ps_n_pulses()
  • 设置中断模式和极性。参见:set_interrupt()

设备

LTR-559是一款集成低电压I2C数字光线传感器[ALS]和接近传感器[PS]。

数据手册:LTR-559

用法

要使用此驱动程序,请导入此crate和embedded_hal实现,然后实例化设备。

extern crate linux_embedded_hal as hal;

extern crate ltr_559;
use ltr_559::{Ltr559, SlaveAddr};

fn main() {
    let dev = hal::I2cdev::new("/dev/i2c-1").unwrap();
    let address = SlaveAddr::default();
    let sensor = Ltr559::new_device(dev, address);
    sensor
        .set_als_meas_rate(AlsIntTime::_50ms, AlsMeasRate::_50ms)
        .unwrap();
    sensor.set_als_contr(AlsGain::Gain4x, false, true).unwrap();
    loop {
        let status = sensor.get_status().unwrap();
        if status.als_data_valid {
            let (lux_raw_0, lux_raw_1) = sensor.get_als_raw_data().unwrap();
            let lux = sensor.get_lux().unwrap();
            println!(
                "Raw Lux CH1: 0x{:04x}, CH0: 0x{:04x} Lux = {}, Status.als_data_valid = {}",
                lux_raw_0, lux_raw_1, lux, status.als_data_valid
            );
        }
    }
}

支持

有关问题、问题、功能请求和其他更改,请在GitHub项目中提交问题。

许可

根据您的选择,许可协议如下:

贡献

除非您明确表示,否则根据Apache-2.0许可协议定义的,您有意提交的工作中的任何贡献,都将如上所述双许可,没有其他条款或条件。

依赖

~71KB