pac194x

Crates.iopac194x
lib.rspac194x
version0.1.3
sourcesrc
created_at2022-03-26 23:44:56.805084
updated_at2022-03-30 20:52:45.162352
descriptionPlatform-agnostic Rust driver for the PAC194x 9V, 16-bit power monitor with alerts
homepage
repositoryhttps://github.com/kiranshila/pac194x
max_upload_size
id557055
size71,635
Kiran Shila (kiranshila)

documentation

https://docs.rs/crate/pac194x/

README

Rust PAC194X Power Monitor Driver

A platform-agnostic driver crate for the Microchip PAC194X single/multi channel power monitor using the embedded-hal traits.

Build Status Docs.rs Crates.io

This driver allows you to:

  • Read/Write every available register as a Rust data structure, allowing you to configure alerts, averaging, etc.
  • Read the bus and sense voltages directly as f32s

Usage

To use this driver, import this crate and an embedded_hal implementation, then instantiate the appropriate device.

use linux_embedded_hal::I2cdev;
use pac194x::{PAC194X, AddrSelect};

const SENSE_RESISTOR: f32 = 0.5;

fn main() {
    let i2c = I2cdev::new("/dev/i2c-1").unwrap();
    let mut sensor = PAC194X::new(i2c, AddrSelect::GND).unwrap();
    loop {
        let bus_voltage_1 = sensor.read_bus_voltage_n(1).unwrap();
        let sense_voltage_1 = sensor.read_sense_voltage_n(1).unwrap();
        println!("Channel 1 has a bus voltage of: {:.2} V", bus_voltage_1);
        println!("Channel 1 is pulling a current of: {:.2} A", sense_voltage_1 / SENSE_RESISTOR);
    }
}

License

Licensed under either of

at your option.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 29

cargo fmt