#rgb #light-sensor #ir #sensor #embedded-hal-driver #color

no-std isl29125

适用于ISL29125低功耗数字RGB颜色光传感器(带红外滤光片)的平台无关Rust驱动程序

1个不稳定版本

0.1.0 2020年4月14日

#2276嵌入式开发

MIT/Apache

28KB
406

Rust ISL29125数字RGB颜色光传感器带红外滤光片驱动程序

crates.io Docs Build Status Coverage Status

这是一个使用embedded-hal traits的平台无关Rust驱动程序,用于低功耗数字RGB颜色光传感器和带红外滤光片。

此驱动程序允许您

  • 读取所有颜色。请参阅:read()
  • 单独读取红色/绿色/蓝色颜色。请参阅:red()
  • 设置操作模式。请参阅:set_operating_mode()
  • 设置ADC分辨率。请参阅:set_resolution()
  • 设置RGB数据感应范围。请参阅:set_range()
  • 设置红外滤波。请参阅:set_ir_filtering()
  • 读取状态标志。请参阅:status()
  • 清除状态标志。请参阅:clear_status()
  • 读取设备ID。请参阅:device_id()
  • 执行软件复位。请参阅:reset()
  • 中断
    • 设置中断阈值。请参阅:set_interrupt_thresholds()
    • 设置中断阈值分配。请参阅:set_interrupt_threshold_assignment()
    • 设置故障计数。请参阅:set_fault_count()
    • 设置中断引脚模式。参见:set_interrupt_pin_mode()
    • 启用/禁用转换完成后生成中断。参见:enable_interrupt_on_conversion_done()

该设备

ISL29125是一款低功耗、高灵敏度的红、绿、蓝(RGB)色光传感器,具有I2C(与SMBus兼容)接口。其最先进的光电二极管阵列提供了精确的RGB光谱响应和优秀的光源到光源变化(LS2LS)。

ISL29125设计用于抑制光源中的红外线,使设备能够在从阳光充足的环境到暗房的环境下运行。集成式ADC可以抑制由人工光源引起的50Hz和60Hz闪烁。可选的范围允许用户优化适合特定应用的灵敏度。在正常工作模式下,设备消耗56μA,在掉电模式下降低到0.5μA。

ISL29125支持硬件和软件用户可编程中断阈值。中断持久性功能减少了误触发通知。

数据手册:ISL29125

用法

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

请在此存储库中查找使用硬件的附加示例:driver-examples

extern crate linux_embedded_hal as hal;
use isl29125::{Isl29125, OperatingMode};

fn main() {
    let dev = hal::I2cdev::new("/dev/i2c-1").unwrap();
    let mut sensor = Isl29125::new(dev);
    sensor
        .set_operating_mode(OperatingMode::RedGreenBlue)
        .unwrap();
    loop {
        let m = sensor.read().unwrap();
        println!("R: {}, G: {}, B: {}", m.red, m.green, m.blue);
    }
}

支持

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

许可

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

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的任何贡献,均应按照上述方式双许可,不附加任何额外条款或条件。

依赖项

~71KB