11 releases (4 breaking)
0.4.0 | Feb 23, 2023 |
---|---|
0.3.2 | Feb 23, 2023 |
0.2.0 | Feb 17, 2023 |
0.1.4 | Feb 17, 2023 |
0.0.0 | Feb 2, 2023 |
#519 in Embedded development
61 downloads per month
Used in ina3221
66KB
1.5K
SLoC
ohms
Electrical units library for embedded Rust targets focusing on ease-of-use and performance.
Supports no_std
environments.
Greatly inspired by the fugit crate.
All units are stored internally as u64
or i64
in their base unit.
Supported Units
- Current (μA, mA, A)
- Resistance (mΩ, Ω, kΩ, MΩ)
- Voltage (μV, mV, V, kV)
- Power (μW, mW, W, kW)
Extension Traits
Types implement their own FromInteger
and FromFloat
traits for convenience on the following types:
u8
u16
u32
u64
i8
i16
i32
i64
f32
f64
Ohm's Law
The Current
, Resistance
and Voltage
types follow the Ohm's Law rules.
This means that you can use the /
and *
operators to calculate the missing value.
For example, Voltage / Current
will return a Resistance
value.
Power Calculations
The Power
type supports calculating the power from multiplying Voltage
and Current
values.
Installation
You can add this crate via crates.io:
$ cargo add ohms
Usage
use ohms::prelude::*;
let voltage = 5.volts();
let current = 1.milli_amps();
let resistance = voltage / current;
let power = voltage * current;
assert_eq!(resistance.ohms(), 5000);
assert_eq!(power.milli_watts(), 5000);
Documentation
You can find the documentation here.