th
Dependents: condato_Coldchainlogger condato_Coldchainlogger
Diff: Thermistor.h
- Revision:
- 0:000a8be2414d
- Child:
- 1:601e1435dfb8
diff -r 000000000000 -r 000a8be2414d Thermistor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Thermistor.h Wed Mar 09 13:52:45 2016 +0000 @@ -0,0 +1,99 @@ +#ifndef THERMISTOR_H +#define THERMISTOR_H +/// +/// @mainpage Thermistor Temperature library +/// +/// This is a Thermistor to Temerature conversion library +/// +/// Much thanks to @Adafruit for this tutorial: +/// https://learn.adafruit.com/thermistor/using-a-thermistor +/// +/// The 100K Thermistor is configured with a 4.7k series resistor +/// tied to vcc (3.3v) like this: +/// +/// +3.3v +/// | +/// \ +/// / 4.7k series resistor +/// \ +/// / +/// | +/// .-----------O To Anlog pin on FRDM board +/// | +/// \ +/// / +/// Thermistor 100k Nominal +/// \ +/// / +/// | +/// --- +/// GND +/// +/// +/// @author Michael J. Ball +/// unix_guru at hotmail.com +/// @unix_guru on Twitter +/// March 2016 +/// +/// @code +/// Thermistor bed(PTB10); +/// printf("Temperature is %f Celcius", bed.get_temperature()); +/// +/// ... +/// @endcode +/// +/// @license +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + + +#include "mbed.h" + + +#define THERMISTORNOMINAL 100000 // 100k default +// temp. for nominal resistance (almost always 25 C) +#define TEMPERATURENOMINAL 25 +// The beta coefficient of the thermistor (usually 3000-4000) +#define BCOEFFICIENT 3950 +// the value of the 'other' resistor +#define SERIESRESISTOR 4700 + + +class Thermistor { +public: + Thermistor(PinName pin); + /** Receives a PinName variable. + * @param pin mbed pin to which the thermistor is connected + */ + + + float get_temperature(); + /** This is the workhorse routine that calculates the temperature + * using the Steinhart-Hart equation for thermistors + * https://en.wikipedia.org/wiki/Steinhart%E2%80%93Hart_equation + */ + void init(); // Set default Steinhart-Hart values + void set_ThermistorNominal(float thermnom); // Change the thermistors nominal resistance + void set_TemperatureNominal(float tempnom); // Change the thermistors nominal temperature + void set_BCoefficient(float bcoefficient); // Change the thermistors BCoefficient + void set_SeriesResistor(float resistor); // Change the value of the series resistor + +private: + AnalogIn _pin; + float ThermistorNominal; + float TemperatureNominal; + float BCoefficient; + float SeriesResistor; +}; + +#endif