eka sinambela / Mbed 2 deprecated g3_waterplay

Dependencies:   mbed

Fork of g3_waterplay by Mario Simaremare

TemperatureSensor.cpp

Committer:
mariosimaremare
Date:
2016-06-02
Revision:
0:ad9362f18797
Child:
1:f448c12d2c5b

File content as of revision 0:ad9362f18797:

/*
* G3: WATERPLAY
*/

#include "TemperatureSensor.h"
#include "mbed.h"

TemperatureSensor::TemperatureSensor(
    PinName pin,
    double const_voltage,
    double const_converter,
    double variance,
    double vin,
    double resistance
):
    _analog_in(pin),
    _const_voltage(const_voltage),
    _const_converter(const_converter),
    _variance(variance),
    _vin(vin),
    _resistance(resistance),
    _k0(0.00102119),
    _k1(0.000222468),
    _k2(0.000000133342),
    _kelvin_to_celcius(-273.15)
{
    read();
}

double TemperatureSensor::read()
{
    _voltage = _analog_in.read();

    return(_voltage);
}

double TemperatureSensor::getVoltage()
{
    float retVal = _voltage * _const_voltage;

    return(retVal);
}

double TemperatureSensor::getTemperature()
{
    double vout = getVoltage();
    double RT = (vout * _resistance) / (_vin - vout);
    double logRT = log(RT);
    double K0 = _k0;
    double K1 = _k1 * logRT;
    double K2 = _k2 * pow(logRT, 3.0);
    double kelvin = 1.0 / (K0 + K1 + K2);
    double celcius = (kelvin + _kelvin_to_celcius) + _variance;

    return(celcius);
}