Skip to content
This repository was archived by the owner on May 1, 2023. It is now read-only.

UnderLogic/ohms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Electrical units library for embedded targets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages