temperature and distance

Fork of TrashSensors by Corey Ford

GroveTemp.cpp

Committer:
Luminoscity
Date:
2015-05-28
Revision:
1:9cd59726cc5e
Parent:
0:3f335fc50cef

File content as of revision 1:9cd59726cc5e:

#include "mbed.h"
#include <math.h>
#include "GroveTemp.h"
//
#define CALIBRATE_FACTOR_5V 0.66

AnalogIn thermistor(A0);   /* Temperature sensor connected to Analog Grove connector */

GroveTempSensor::GroveTempSensor() {
   resetMinMax();
}

float GroveTempSensor::getTemp() {
   unsigned int analogRead;
//                units, 
//                tens;
    
   analogRead = thermistor.read_u16() * CALIBRATE_FACTOR_5V; /* Read analog value */
   
   /* Calculate the resistance of the thermistor from analog votage read. */
   resistance = (float) 10000.0 * ((65536.0 / analogRead) - 1.0);

   /* Convert the resistance to temperature using Steinhart's Hart equation */
   temperature = (1/((log(resistance/10000.0)/TEMP_BETA) + (1.0/298.15)))-273.15; 

//   units = (int) temperature % 10;
//   tens  = (int) temperature / 10;
   if (temperature > maxTemp)
      maxTemp = temperature;
   if (temperature < minTemp)
      minTemp = temperature;
   
   return temperature;
}

void GroveTempSensor::resetMinMax() {
   maxTemp = -999.9;
   minTemp = 999.9;
   minMaxDefined = false;
}

float GroveTempSensor::getMin() {
   if (!minMaxDefined)
      getTemp();
   return minTemp;
}

float GroveTempSensor::getMax() {
   if (!minMaxDefined)
      getTemp();
   return maxTemp;
}