#driver #i2c-driver #sensor #embedded-hal-driver #i2c #color

no-std tcs3400

基于IR滤光片的TCS3400 RGB光到数字转换器平台无关的Rust驱动程序

1 个不稳定版本

0.1.0 2022年11月16日

#2224 in 嵌入式开发

MIT/Apache

26KB
255

Rust TCS3400 RGB 光到数字转换器及IR滤光片驱动程序

crates.io Docs Build Status Coverage Status

这是一个基于embedded-hal trait的TCS3400 RGB光到数字转换器带IR滤光片的平台无关Rust驱动程序。

此驱动程序允许您

  • 启用/禁用设备。
  • 启用/禁用RGB转换器。
  • 设置RGB转换器增益。
  • 启用/禁用RGB转换器中断生成。
  • 设置RGB转换器中断清除通道的高低阈值。
  • 设置RGB转换器中断的持久性。
  • 设置积分周期数。
  • 启用/禁用等待功能。
  • 设置等待时间周期数。
  • 启用/禁用“长等待”设置。
  • 读取RGB转换器的状态。
  • 读取清除(未过滤)通道的测量值。
  • 读取红色通道的测量值。
  • 读取绿色通道的测量值。
  • 读取蓝色通道的测量值。
  • 一次性读取所有通道的测量值。
  • 读取设备ID。

该设备

TCS3400设备提供红色、绿色、蓝色(RGB)和清除光感测值的数字返回。一个集成在芯片上并定位在颜色感测光电二极管上的红外阻挡滤光片最小化了入射光的红外光谱成分,并允许准确地进行颜色测量。高灵敏度、宽动态范围和红外阻挡滤光片使得TCS3400在变化的光照条件和通过衰减材料的情况下成为理想的颜色传感器解决方案。

TCS3400色彩传感器应用范围广泛,包括RGB LED背光控制、固态照明、健康/健身产品、工业过程控制和医疗诊断设备。此外,红外截止滤光片使TCS3400能够执行环境光感应(ALS)。环境光感应在基于显示的产品如手机、笔记本电脑和电视中得到广泛应用,用于感应照明环境并实现自动显示亮度调节,以实现最佳观看效果和节能。TCS3400本身在光感应测量之间可以进入低功耗等待状态,以进一步降低平均功耗。

数据表

此驱动程序与TCS34005和TCS34007设备兼容。

使用方法

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

use linux_embedded_hal::I2cdev;
use tcs3400::Tcs3400;

fn main() {
    let dev = I2cdev::new("/dev/i2c-1").unwrap();
    let mut sensor = Tcs3400::new(dev);
    sensor.enable().unwrap();
    sensor.enable_rgbc().unwrap();
    while !sensor.is_rgbc_status_valid().unwrap() {
        // wait for measurement to be available
    }
    let m = sensor.read_all_channels().unwrap();
    println!(
        "Measurements: clear = {}, red = {}, green = {}, blue = {}",
        m.clear, m.red, m.green, m.blue
    );
}

最小支持Rust版本(MSRV)

此crate保证在稳定Rust 1.31.0及更高版本上编译。它可能能在较旧版本上编译,但在任何新的补丁版本中可能会发生变化。

支持

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

许可

根据您的选择,许可方式为以下之一:

贡献

除非您明确声明,否则根据Apache-2.0许可定义的任何有意提交以包含在作品中的贡献,都应如上双许可,不附加任何额外条款或条件。

依赖项

~71KB