example code using statis library for temperature measurement with LM35 and LM335

Dependencies:   mbed statis

Committer:
greletj
Date:
Sun Dec 02 16:38:15 2012 +0000
Revision:
7:596c792ff02d
Parent:
5:0b3569945178
example code using statis lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
greletj 5:0b3569945178 1 /*-------------------------------------------------------------------------*/
greletj 5:0b3569945178 2 /* temperatureSensor class */
greletj 5:0b3569945178 3 /*-------------------------------------------------------------------------*/
greletj 5:0b3569945178 4 /* Ni-MH charger project US191 IRD */
greletj 5:0b3569945178 5 /*-------------------------------------------------------------------------*/
greletj 5:0b3569945178 6 /* Nov 2012 | J Grelet */
greletj 5:0b3569945178 7 /*-------------------------------------------------------------------------*/
greletj 5:0b3569945178 8
greletj 5:0b3569945178 9 #include "temperatureSensor.h"
greletj 5:0b3569945178 10
greletj 5:0b3569945178 11
greletj 5:0b3569945178 12 // constructor
greletj 5:0b3569945178 13 // _pin(pin) means pass pin to the AnalogIn constructor
greletj 5:0b3569945178 14 temperatureSensor::temperatureSensor(PinName pin, float delay, float scaleTemp, BITMSK calculs, size_t size) :
greletj 5:0b3569945178 15 _pin(pin), _filter(calculs, size)
greletj 5:0b3569945178 16 {
greletj 5:0b3569945178 17
greletj 5:0b3569945178 18 _scaleTemp = scaleTemp;
greletj 5:0b3569945178 19 _scaleFactor = 100;
greletj 5:0b3569945178 20
greletj 5:0b3569945178 21 // Attach a function to be called by the Ticker, specifiying the interval delay in seconds.
greletj 5:0b3569945178 22 _ticker.attach(this, &temperatureSensor::toDo, delay);
greletj 5:0b3569945178 23 }
greletj 5:0b3569945178 24
greletj 5:0b3569945178 25 // destructor
greletj 5:0b3569945178 26 temperatureSensor::~temperatureSensor()
greletj 5:0b3569945178 27 {
greletj 5:0b3569945178 28 }
greletj 5:0b3569945178 29
greletj 5:0b3569945178 30 // toDo method call by ticker
greletj 5:0b3569945178 31 // remove 3.3
greletj 5:0b3569945178 32 // read AnalogIn voltage and convert into temperature
greletj 5:0b3569945178 33 void temperatureSensor::toDo(void)
greletj 5:0b3569945178 34 {
greletj 5:0b3569945178 35 _temperature = (_pin * 3.3 * _scaleFactor) - _scaleTemp;
greletj 5:0b3569945178 36 _filter.put( _temperature );
greletj 5:0b3569945178 37 }
greletj 5:0b3569945178 38
greletj 7:596c792ff02d 39 void temperatureSensor::calcule(void)
greletj 5:0b3569945178 40 {
greletj 7:596c792ff02d 41 _n_elem = _filter.calcule();
greletj 5:0b3569945178 42 }
greletj 5:0b3569945178 43
greletj 5:0b3569945178 44 // return temperature measurement
greletj 5:0b3569945178 45 // add filtering with media and ring buffer
greletj 5:0b3569945178 46 float temperatureSensor::mediane(void)
greletj 5:0b3569945178 47 {
greletj 5:0b3569945178 48 return _filter.med.valeur;
greletj 5:0b3569945178 49 }
greletj 5:0b3569945178 50
greletj 5:0b3569945178 51 int temperatureSensor::indice(void)
greletj 5:0b3569945178 52 {
greletj 5:0b3569945178 53 return _filter.med.indice;
greletj 5:0b3569945178 54 }
greletj 5:0b3569945178 55
greletj 5:0b3569945178 56 unsigned temperatureSensor::n_element(void)
greletj 5:0b3569945178 57 {
greletj 7:596c792ff02d 58 return _n_elem;
greletj 5:0b3569945178 59 }
greletj 5:0b3569945178 60
greletj 5:0b3569945178 61 float temperatureSensor::moyenne(void)
greletj 5:0b3569945178 62 {
greletj 5:0b3569945178 63 return _filter.moy;
greletj 5:0b3569945178 64 }
greletj 5:0b3569945178 65
greletj 5:0b3569945178 66
greletj 5:0b3569945178 67 float temperatureSensor::ecart_type(void)
greletj 5:0b3569945178 68 {
greletj 5:0b3569945178 69 return _filter.ecart;
greletj 1:5821fa15d6ca 70 }