eka sinambela / Mbed 2 deprecated g3_waterplay

Dependencies:   mbed

Fork of g3_waterplay by Mario Simaremare

Revision:
0:ad9362f18797
Child:
1:f448c12d2c5b
diff -r 000000000000 -r ad9362f18797 TemperatureSensor.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TemperatureSensor.cpp	Thu Jun 02 17:53:02 2016 +0000
@@ -0,0 +1,56 @@
+/*
+* 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);
+}