Crate thermocouple[][src]

Thermocouple routines.

Provides a sense_temperature method to convert thermoelectric potential to temperature. The following thermocouple types are supported:

  • Nickel-alloy thermocouples: Type E, J, K, N, T
  • Platinum/rhodium-alloy thermocouples: Type B, R, S

This library includes newtype types, or wrapper types, to help with using the proper units when doing calculations. I investigated using a dimensional analysis crate such as uom or dimensioned instead of making my own newtype types. However after experimentation, I found this to be difficult to use and not at all lightweight.

The underlying storage type is either f64 (default) or f32. For the f64 storage type, the results from this crate match the NIST ITS-90 Thermocouple Database exactly.

Usage

Add this to your Cargo.toml:

[dependencies]
thermocouple = "0.1.3"

and this to your crate root:

extern crate thermocouple;

The temperature of a thermocouple can be calcuated from a voltage reading.

use thermocouple::{prelude::*, KType};

// Assuming reference junction at 25ºC
let temperature: Celsius = KType::new().sense_temperature(Millivolts(1.1));

The reference junction temperature can be set explicitly.

use thermocouple::{prelude::*, KType};

// Reference junction at 0ºC
let thermocouple =
   KType::new().with_reference_temperature(Celsius(0.0));

let temperature: Celsius =
   thermocouple.sense_temperature(Millivolts(2.0));

Tests

The tests check against every value provided in the NIST ITS-90 Thermocouple Database (DOI: http://dx.doi.org/10.18434/T4S888)

For a f64 base storage type, they should match the table exactly. Re-formatted versions of the tables for the automatic tests can be found in the nist directory.

Modules

prelude

A convenience wrapper to allow the user to import all the traits and structures required.

Structs

BType

Type B thermocouple (platinum/rhodium alloy)

Celsius

Unit of thermodynamic temperature

EType

Type E thermocouple (chromel-constantan)

Fahrenheit

Unit of thermodynamic temperature

JType

Type J thermocouple (iron-constantan)

KType

Type K thermocouple (chromel-alumel)

Kelvin

Unit of thermodynamic temperature, defined as the fraction of 1/273.16 of the thermodynamic temperature of the triple point of water

Millivolts

Unit of electric potential, 1/1000 of the SI Base Unit Volt

NType

Type N thermocouple (nicrosil-nisil)

RType

Type R thermocouple (platinum/rhodium alloy)

Rankine

Unit of thermodynamic temperature

Reaumur

Unit of thermodynamic temperature

SType

Type S thermocouple (platinum/rhodium alloy)

TType

Type T thermocouple (copper-constantan)

Traits

FPExt

Extension trait that adds convenience methods to the FP type

ThermocoupleCore

Trait for thermocouple functionality

Type Definitions

FP

Underlying storage type: f64