#light-sensor #sensor #i2c #no-std-driver #no-std

no-std bh1730fvc

Rust无std环境下的BH1730FVC环境光传感器驱动程序

3个不稳定版本

0.2.0 2024年3月22日
0.1.1 2024年3月9日
0.1.0 2024年3月9日

1655嵌入式开发

Download history 69/week @ 2024-04-02

141 每月下载量

MIT/Apache

39KB
560

BH1730FVC Rust驱动程序

为BH1730FVC环境光传感器提供的Rust无std驱动程序。

Crates.io Docs.rs

描述

此库提供了BH1730FVC环境光传感器的Rust接口。它设计用于无std环境,适合在嵌入式系统中使用。

支持的特性

  • 单次测量和连续测量模式
  • 可配置的积分时间和增益
  • 读取传感器的零件号和修订ID
  • 将读取的原始值转换为环境光强度(lux)

不支持的功能

  • 中断功能
  • 配置阈值
  • 异步支持

依赖项

此库依赖于embedded-hal包进行硬件抽象。它使用log包进行日志记录。

对于开发,它使用embedded-hal-mock包来模拟硬件抽象层。对于示例,它使用linux-embedded-hal,计划在RPI上运行(尚未测试!)。

使用方法

要使用此库,请将以下内容添加到您的Cargo.toml文件中

[dependencies]
bh1730fvc = "0.1.0"

然后,您可以在Rust代码中使用它,如下所示

// Create the necessary hardware objects
let mut i2c = hal::I2cdev::new("/dev/i2c-1").unwrap();
let mut delay = hal::Delay;

// Create a new BH1730FVC instance
let mut bh1730fvc = BH1730FVC::new(&mut delay, &mut i2c).unwrap();

// Read the device ID
let device_id = bh1730fvc.read_id(&mut i2c).unwrap();
log::info!(
    "Device ID: (Part Number: 0x{:02X}, Revision ID: 0x{:02X}",
    device_id.0,
    device_id.1,
);

// Do single shot measurement once
match bh1730fvc.get_ambient_light_intensity_single_shot(&mut delay, &mut i2c) {
    Ok(reading) => log::info!("Single shot measurement - lux value: {}", reading),
    Err(e) => log::error!("Error reading sensor: {:?}", e),
}

示例

示例目录中有一个示例。要构建它(为RPI交叉编译),请运行以下命令

cargo build --example rpi_demo --target=arm-unknown-linux-gnueabihf

许可证

此库根据您的选择在以下两者之一下获得许可

贡献

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

变更日志

v0.1.1

初始发布

v0.2.0

添加了async支持

依赖项

~225KB