2个版本
0.1.1 | 2020年7月30日 |
---|---|
0.1.0 | 2020年1月17日 |
#792 in 硬件支持
40KB
769 行
Rust LTR-559 ALS和PS驱动器
这是一个使用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 License, Version 2.0 (LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT或http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则根据Apache-2.0许可协议定义的,您有意提交的工作中的任何贡献,都将如上所述双许可,没有其他条款或条件。
依赖
~71KB