eka sinambela / Mbed 2 deprecated g3_waterplay

Dependencies:   mbed

Fork of g3_waterplay by Mario Simaremare

Committer:
mariosimaremare
Date:
Tue Jun 07 10:21:07 2016 +0000
Revision:
1:f448c12d2c5b
Parent:
0:ad9362f18797
Child:
2:ed17e258da0d
Salinity and Temperature sensors are working fine.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mariosimaremare 0:ad9362f18797 1 /*
mariosimaremare 0:ad9362f18797 2 * G3: WATERPLAY
mariosimaremare 0:ad9362f18797 3 */
mariosimaremare 0:ad9362f18797 4
mariosimaremare 0:ad9362f18797 5 #include "TemperatureSensor.h"
mariosimaremare 0:ad9362f18797 6 #include "mbed.h"
mariosimaremare 0:ad9362f18797 7
mariosimaremare 0:ad9362f18797 8 TemperatureSensor::TemperatureSensor(
mariosimaremare 1:f448c12d2c5b 9 mbed::Serial &serial,
mariosimaremare 0:ad9362f18797 10 PinName pin,
mariosimaremare 0:ad9362f18797 11 double const_voltage,
mariosimaremare 0:ad9362f18797 12 double const_converter,
mariosimaremare 0:ad9362f18797 13 double variance,
mariosimaremare 0:ad9362f18797 14 double vin,
mariosimaremare 0:ad9362f18797 15 double resistance
mariosimaremare 0:ad9362f18797 16 ):
mariosimaremare 1:f448c12d2c5b 17 _serial(serial),
mariosimaremare 0:ad9362f18797 18 _analog_in(pin),
mariosimaremare 0:ad9362f18797 19 _const_voltage(const_voltage),
mariosimaremare 0:ad9362f18797 20 _const_converter(const_converter),
mariosimaremare 0:ad9362f18797 21 _variance(variance),
mariosimaremare 0:ad9362f18797 22 _vin(vin),
mariosimaremare 0:ad9362f18797 23 _resistance(resistance),
mariosimaremare 1:f448c12d2c5b 24 _temperature(0.0),
mariosimaremare 0:ad9362f18797 25 _k0(0.00102119),
mariosimaremare 0:ad9362f18797 26 _k1(0.000222468),
mariosimaremare 0:ad9362f18797 27 _k2(0.000000133342),
mariosimaremare 0:ad9362f18797 28 _kelvin_to_celcius(-273.15)
mariosimaremare 0:ad9362f18797 29 {
mariosimaremare 0:ad9362f18797 30 read();
mariosimaremare 0:ad9362f18797 31 }
mariosimaremare 0:ad9362f18797 32
mariosimaremare 0:ad9362f18797 33 double TemperatureSensor::read()
mariosimaremare 0:ad9362f18797 34 {
mariosimaremare 1:f448c12d2c5b 35 this->_reading = _analog_in.read();
mariosimaremare 1:f448c12d2c5b 36 this->_voltage = this->_reading * _const_voltage;
mariosimaremare 1:f448c12d2c5b 37 this->_voltage = this->_reading * _const_voltage;
mariosimaremare 1:f448c12d2c5b 38 double RT = (this->_voltage * _resistance) / (_vin - this->_voltage);
mariosimaremare 1:f448c12d2c5b 39 double logRT = log(RT);
mariosimaremare 1:f448c12d2c5b 40 double K0 = this->_k0;
mariosimaremare 1:f448c12d2c5b 41 double K1 = this->_k1 * logRT;
mariosimaremare 1:f448c12d2c5b 42 double K2 = this->_k2 * pow(logRT, 3.0);
mariosimaremare 1:f448c12d2c5b 43 double kelvin = 1.0 / (K0 + K1 + K2);
mariosimaremare 1:f448c12d2c5b 44 this->_temperature = (kelvin + this->_kelvin_to_celcius) + this->_variance;
mariosimaremare 1:f448c12d2c5b 45
mariosimaremare 1:f448c12d2c5b 46 /*
mariosimaremare 1:f448c12d2c5b 47 _serial.printf(
mariosimaremare 1:f448c12d2c5b 48 "\ttemperature: %5.4F | %5.4F | %5.4F\n\r",
mariosimaremare 1:f448c12d2c5b 49 this->_reading,
mariosimaremare 1:f448c12d2c5b 50 this->_voltage,
mariosimaremare 1:f448c12d2c5b 51 this->_temperature
mariosimaremare 1:f448c12d2c5b 52 );
mariosimaremare 1:f448c12d2c5b 53 */
mariosimaremare 0:ad9362f18797 54
mariosimaremare 1:f448c12d2c5b 55 return(this->_reading);
mariosimaremare 0:ad9362f18797 56 }
mariosimaremare 0:ad9362f18797 57
mariosimaremare 0:ad9362f18797 58 double TemperatureSensor::getVoltage()
mariosimaremare 0:ad9362f18797 59 {
mariosimaremare 1:f448c12d2c5b 60 return(this->_voltage);
mariosimaremare 0:ad9362f18797 61 }
mariosimaremare 0:ad9362f18797 62
mariosimaremare 0:ad9362f18797 63 double TemperatureSensor::getTemperature()
mariosimaremare 0:ad9362f18797 64 {
mariosimaremare 1:f448c12d2c5b 65 return(this->_temperature);
mariosimaremare 0:ad9362f18797 66 }