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 |
ThermocoupleCore | Trait for thermocouple functionality |
Type Definitions
FP | Underlying storage type: |