1个不稳定版本
0.1.0 | 2020年4月14日 |
---|
#2276 在 嵌入式开发
28KB
406 行
Rust ISL29125数字RGB颜色光传感器带红外滤光片驱动程序
这是一个使用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 License,版本2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或http://opensource.org/licenses/MIT)
。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的任何贡献,均应按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~71KB