5个版本
0.1.4 | 2024年4月8日 |
---|---|
0.1.3 | 2023年12月15日 |
0.1.2 | 2022年6月18日 |
0.1.1 | 2022年6月18日 |
0.1.0 | 2022年6月18日 |
#343 in 嵌入式开发
34KB
625 行
LTR-303ALS
这是一个使用embedded-hal
traits的跨平台Rust驱动程序,用于LTR-303环境光传感器。
支持的设备
与以下传感器测试
状态
- 开始测量,可配置增益、积分时间和测量率。见:
start_measurement()
- 轮询新数据。见:
data_ready()
- 检查最新的测量状态。见:
get_status()
- 读取最新的照度值(单位:勒克斯)。见:
get_lux_data()
- 将传感器置于待机状态。见:
standby()
- 读取部分ID和生产商ID。见:
get_part_id()
和get_mfc_id()
- 可选地将延迟函数传递给驱动程序。类似于opt300x驱动程序。
- 错误情况下进行传感器复位。
- 冷启动(100ms)后触发测量之前,等待传感器启动
- 中断
示例
在Linux上使用i2cdev
use linux_embedded_hal::I2cdev;
use ltr303::{LTR303, LTR303Config};
fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let mut sensor = LTR303::init(dev);
let config = LTR303Config::default();
sensor.start_measurement(&config).unwrap();
loop {
while sensor.data_ready().unwrap() != true {
// Wait for measurement ready
}
let lux_val = sensor.get_lux_data().unwrap();
println!("LTR303 current lux phys: {}", lux_val.lux_phys);
}
}
在基于ESP32的开发板上
use embedded_hal::prelude::*;
use esp_idf_sys as _;
use esp_idf_hal::{delay::FreeRtos, i2c};
use esp_idf_hal::peripherals::Peripherals;
use ltr303::{LTR303, LTR303Config};
fn main() {
esp_idf_sys::link_patches();
let _peripherals = Peripherals::take().unwrap();
// The i2c pins
let sda = _peripherals.pins.gpio4.into_input_output().unwrap();
let scl = _peripherals.pins.gpio6.into_output().unwrap();
let _cfg = i2c::config::MasterConfig::new().baudrate(10000.into());
let _i2c = i2c::Master::new(_peripherals.i2c0, i2c::MasterPins { sda, scl }, _cfg).unwrap();
let mut ltr303 = LTR303::init(_i2c);
let ltr303_config =
LTR303Config::default().with_integration_time(ltr303::IntegrationTime::Ms400);
ltr303.start_measurement(<r303_config).unwrap();
loop {
while ltr303.data_ready().unwrap() != true {
// Wait for measurement ready
}
let lux_val = ltr303.get_lux_data().unwrap();
println!("LTR303 current lux phys: {}", lux_val.lux_phys);
FreeRtos.delay_ms(3000_u32);
}
}
开发
为了便于开发,提供了一个flake.nix
文件。请确保已安装Nix,以及已启用flake命令(例如,通过将experimental-features = nix-command flakes
添加到~/.config/nix/nix.conf
),然后只需运行
nix develop
在项目文件夹中,可以构建一个完整的构建和开发环境,包括为 ltr303-rs
所需的所有依赖。
依赖项
约2MB
约46K SLoC