5 个不稳定版本
使用旧的Rust 2015
0.5.1 | 2022年12月7日 |
---|---|
0.5.0 | 2022年10月17日 |
0.4.0 |
|
0.3.3 | 2022年10月15日 |
0.2.1 | 2022年9月25日 |
#3 在 #current 中
每月21 次下载
45KB
952 行
ina219
INA219 Rust 电流/功率监控驱动程序
示例
cargo build --example values --target=aarch64-unknown-linux-musl
cargo build --example raw_values --target=aarch64-unknown-linux-musl
cargo build --example physic_values --target=aarch64-unknown-linux-musl
支持功能
- ina219 功能包含物理
- 物理
将此行添加到Cargo.toml以启用全部功能支持
ina219_rs = { version = "0.5.0", features = ["ina219"] }
//main.rs
extern crate linux_embedded_hal as hal;
extern crate ina219_rs as ina219;
use hal::I2cdev;
use ina219::physic;
use ina219::ina219::{INA219,Opts};
fn main() {
let device = I2cdev::new("/dev/i2c-1").unwrap();
let opt = Opts::new(0x42,100 * physic::MilliOhm,1 * physic::Ampere);
//let opt = Opts::default();
let mut ina = INA219::new(device,opt);
ina.init().unwrap();
let pm = ina.sense().unwrap();
println!("{:?}",pm);
/* output
Debug: PowerMonitor
{
Voltage = 8.228V,
Shunt_Voltage = 534µV,
Current = 1.750A,
Power = 744mW
}
*/
仅支持 物理 功能
[dependencies.ina219_rs]
version = "0.5.0"
default-features = false # 不包含默认的features,而是通过下面的方式来指定
features = ["physic"]
//main.rs
extern crate ina219_rs as ina219;
use ina219::{
physic, physic::PhysicElectricCurrentSet, physic::PhysicElectricPotentialSet,
physic::PhysicPowerSet, physic::ToStringPhysic_current, physic::ToStringPhysic_potential,
physic::ToStringPhysic_power,
};
fn main() {
let current_test = physic::ElectricCurrent::setCurrent("+15mA");
match current_test {
Ok(v) => println!(
"current_set is {:?}",
(v as physic::ElectricCurrent).to_string_physic_current()
),
Err(e) => println!("current_set error = {:?}", e),
}
let power_test = physic::Power::setPower("150mW");
match power_test {
Ok(p) => println!(
"Power_set is {:?}",
(p as physic::Power).to_string_physic_power()
),
Err(e) => println!("Power_set error = {:?}", e),
}
let power_test_v1 = physic::Power::setPower("250W");
match power_test_v1 {
Ok(p) => println!(
"Power_set is {:?}",
(p as physic::Power).to_string_physic_power()
),
Err(e) => println!("Power_set error = {:?}", e),
}
let voltage_test = physic::ElectricPotential::setVoltage("100V");
match voltage_test {
Ok(v) => println!(
"voltage_set is {:?}",
(v as physic::ElectricPotential).to_string_physic_potential()
),
Err(e) => println!("voltage_set error = {:?}", e),
}
let voltage_test_v1 = physic::ElectricPotential::setVoltage("100mV");
match voltage_test_v1 {
Ok(v) => println!(
"voltage_set is {:?}",
(v as physic::ElectricPotential).to_string_physic_potential()
),
Err(e) => println!("voltage_set error = {:?}", e),
}
}
依赖项
~2–370KB