3个版本 (1个稳定版)
1.0.0 | 2024年7月31日 |
---|---|
0.1.1 | 2021年9月10日 |
0.1.0 | 2019年11月9日 |
在 嵌入式开发 中排名第1607
每月下载量138
37KB
502 代码行
Rust OPT300x环境光传感器(ALS)驱动程序
这是一个使用embedded-hal
特质进行平台无关的Rust驱动程序,适用于OPT300x环境光传感器系列。
此驱动程序允许您
- 读取以勒克斯或原始值表示的测量值。请参阅:
read_lux()
。 - 切换到连续测量模式。请参阅:
into_continuous()
。 - 读取转换状态。请参阅:
read_status()
。 - 设置故障计数。请参阅:
set_fault_count()
。 - 设置中断引脚极性。请参阅:
set_interrupt_pin_polarity()
。 - 设置比较模式。请参阅:
set_comparison_mode()
。 - 设置低和高限制。请参阅:
set_low_limit_raw()
。 - 启用和禁用转换结束模式。请参阅:
enable_end_of_conversion_mode()
。 - 获取制造商ID。请参阅:
get_manufacturer_id()
。 - 获取设备ID。请参阅:
get_device_id()
。
设备
此驱动程序与设备OPT3001、OPT3002、OPT3004、OPT3006和OPT3007兼容。
OPT3001是一种测量可见光强度的传感器。传感器的光谱响应与人类眼睛的光谱响应紧密匹配,并包含显著的红外抑制。
OPT3001 是一款单芯片照度计,用于测量人眼可见光的强度。设备的精确光谱响应和强红外抑制能力使得 OPT3001 能够精确测量人眼所见的任何光源的光强度。强红外抑制还有助于在工业设计中,为了美观而在暗玻璃下安装传感器时,保持高精度。OPT3001 适用于为人类创造基于光体验的系统,是光电二极管、光敏电阻或其他匹配人眼程度较低、红外抑制能力较弱的周围光传感器的理想替代品。
使用内置的全量程设置功能,可以手动选择全量程范围,从 0.01 勒克斯测量到 83k 勒克斯。此功能允许在 23 位有效动态范围内进行光测量。
数字操作灵活,便于系统集成。测量可以是连续的,也可以是单次的。控制和中断系统具有自主操作功能,允许处理器在传感器寻找合适的唤醒事件通过中断引脚报告时休眠。数字输出通过 I2C 和 SMBus 兼容的两线串行接口报告。
OPT3001 的低功耗和低供电电压能力提高了电池供电系统的电池寿命。
数据表
应用指南
用法
要使用此驱动程序,请导入此包以及一个 嵌入式卤素
实现,然后实例化适当的设备。
以下示例中,将创建设备 OPT3001 的实例。其他设备可以通过类似的方法创建,例如: Opt300x::new_opt3002(...)
。
请在此存储库中查找使用硬件的附加示例: driver-examples
use linux_embedded_hal::I2cdev;
use opt300x::{Opt300x, SlaveAddr};
fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let address = SlaveAddr::default();
let sensor = Opt300x::new_opt3001(dev, address);
let mut sensor = sensor.into_continuous().ok().unwrap();
loop {
let lux = sensor.read_lux().unwrap();
println!("lux: {:2}", lux);
}
}
支持
有关问题、问题、功能请求和其他更改,请在此 github 项目中提交 问题。
最低支持的 Rust 版本 (MSRV)
此包保证在稳定 Rust 1.62 及更高版本上编译。它 可能 也可以用较旧的版本编译,但在任何新的补丁版本中可能会更改。
许可证
根据您的选择,许可协议为
- Apache 许可证第 2 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则您有意提交给工作以包含在内的任何贡献,根据 Apache-2.0 许可证的定义,应按上述方式双许可,不得附加任何额外条款或条件。
依赖关系
~68KB