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

#458 in Embedded development

28 downloads per month
Used in ina3221

MIT license

66KB
1.5K SLoC

ohms

crates.io

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

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.

No runtime deps