Crate ohms

Source
Expand description

Electrical unit types for embedded targets focusing on ease-of-use and performance

Supported units:

  • Current (μA, mA, A)
  • Resistance (mΩ, Ω, kΩ, MΩ)
  • Voltage (μV, mV, V, kV)
  • Power (μW, mW, W, kW)

Each unit type has a corresponding extension trait for creating values from integer and floating point values.

Unit types can easily be converted to and from different denominations.

Ohm’s Law is implemented for Voltage and Current types, allowing you to easily calculate between the three units using the / and * operators.

§Examples

Determine the resistance of a 5V, 1A load:

use ohms::prelude::*;

let voltage = 5.volts();
let current = 1.amps();

let resistance = voltage / current; // 5V / 1A = 5Ω
println!("Resistance: {} Ω", resistance.ohms());

Determine the current of a 5V, 220Ω load:

use ohms::prelude::*;

let voltage = 5.volts();
let resistance = 220.ohms();

let current = voltage / resistance; // 5V / 220Ω = 22.72mA
println!("Current: {} mA", current.milli_amps());

Determine the voltage of a 0.5A, 4.7kΩ load:

use ohms::prelude::*;

let current = 0.5.milli_amps();
let resistance = 4.7.kilo_ohms();

let voltage = current * resistance; // 0.5mA * 4.7kΩ = 2.35V
println!("Voltage: {} V", voltage.volts());

Modules§

prelude

Macros§

assert_positive_float

Structs§

Current
Represents a current value, stored as whole microamps (μA) as a 64-bit value. This value can only be positive.
Power
Represents a power value, stored as whole microwatts (μW) as a 64-bit value. This value can only be positive.
Resistance
Represents a resistance value, stored as whole milliohms (mΩ) as a 64-bit value. This value can only be positive.
Voltage
Represents a voltage value, stored as whole microvolts (μV) as a signed 64-bit value. This value can be positive or negative.

Traits§

CurrentFromFloat
Extension trait for simple short-hands for creating Current values from floating-point values.
CurrentFromInteger
Extension trait for simple short-hands for creating Current values from integer values.
PowerFromFloat
Extension trait for simple short-hands for creating Power values from floating-point values.
PowerFromInteger
Extension trait for simple short-hands for creating Power values from integer values.
ResistanceFromFloat
Extension trait for simple short-hands for creating Resistance values from floating-point values.
ResistanceFromInteger
Extension trait for simple short-hands for creating Resistance values from integer values.
VoltageFromFloat
Extension trait for simple short-hands for creating Voltage values from floating-point values.
VoltageFromInteger
Extension trait for simple short-hands for creating Voltage values from integer values.