Embedded WebSockets Experiment

Dependencies:   mbed MD5

Committer:
nandgate
Date:
Tue Jul 26 05:30:53 2011 +0000
Revision:
0:6dee052a3fa4

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nandgate 0:6dee052a3fa4 1 #include <TemperatureSensor.h>
nandgate 0:6dee052a3fa4 2 #include <math.h>
nandgate 0:6dee052a3fa4 3
nandgate 0:6dee052a3fa4 4 TemperatureSensor::TemperatureSensor():adc(p20) {
nandgate 0:6dee052a3fa4 5 percentOfScale= adc.read();
nandgate 0:6dee052a3fa4 6 }
nandgate 0:6dee052a3fa4 7
nandgate 0:6dee052a3fa4 8 void TemperatureSensor::measure(void) {
nandgate 0:6dee052a3fa4 9 static const float R= 10500.0;
nandgate 0:6dee052a3fa4 10 static const float LP= 0.01;
nandgate 0:6dee052a3fa4 11
nandgate 0:6dee052a3fa4 12 percentOfScale= ((1.0 - LP) * percentOfScale) + (LP * adc.read());
nandgate 0:6dee052a3fa4 13 resistance= (percentOfScale * R) / (1.0 - percentOfScale);
nandgate 0:6dee052a3fa4 14 }
nandgate 0:6dee052a3fa4 15
nandgate 0:6dee052a3fa4 16 float TemperatureSensor::getKelvin(void) {
nandgate 0:6dee052a3fa4 17 float x;
nandgate 0:6dee052a3fa4 18
nandgate 0:6dee052a3fa4 19 // Compute the Steinhard-Hart eqn: 1/t = A + B*ln(r) + C*ln(r)^3 + D*ln(r)^5
nandgate 0:6dee052a3fa4 20 static const float A= 1.006389097E-3;
nandgate 0:6dee052a3fa4 21 static const float B= 2.425678347E-4;
nandgate 0:6dee052a3fa4 22 static const float C= 1.452612422E-7;
nandgate 0:6dee052a3fa4 23
nandgate 0:6dee052a3fa4 24 x= log(resistance);
nandgate 0:6dee052a3fa4 25 return 1.0 / (A + (B * x) + (C * x * x * x));
nandgate 0:6dee052a3fa4 26 }
nandgate 0:6dee052a3fa4 27
nandgate 0:6dee052a3fa4 28 float TemperatureSensor::getResistance(void) {
nandgate 0:6dee052a3fa4 29 return resistance;
nandgate 0:6dee052a3fa4 30 }
nandgate 0:6dee052a3fa4 31
nandgate 0:6dee052a3fa4 32 float TemperatureSensor::getPercentOfScale(void) {
nandgate 0:6dee052a3fa4 33 return percentOfScale;
nandgate 0:6dee052a3fa4 34 }