#light-sensor #light #ambient #sensor #embedded-hal-driver #als

无需std opt300x

适用于OPT300x环境光传感器的平台无关Rust驱动程序。兼容OPT3001、OPT3002、OPT3004、OPT3006和OPT3007

3个版本 (1个稳定版)

1.0.0 2024年7月31日
0.1.1 2021年9月10日
0.1.0 2019年11月9日

嵌入式开发 中排名第1607

Download history 1/week @ 2024-05-18 132/week @ 2024-07-27 6/week @ 2024-08-03

每月下载量138

MIT/Apache

37KB
502 代码行

Rust OPT300x环境光传感器(ALS)驱动程序

crates.io Docs MSRV Build Status Coverage Status

这是一个使用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.0 许可证的定义,应按上述方式双许可,不得附加任何额外条款或条件。

依赖关系

~68KB