temperature and distance

Fork of TrashSensors by Corey Ford

Revision:
0:3f335fc50cef
Child:
1:9cd59726cc5e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GroveTemp.cpp	Sun May 24 20:45:32 2015 +0000
@@ -0,0 +1,50 @@
+#include "mbed.h"
+#include <math.h>
+#include "GroveTemp.h"
+//
+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(); /* 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;
+}
\ No newline at end of file