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 |
#976 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:
u8u16u32u64i8i16i32i64f32f64
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.