Grelet Jacques
/
Ni-MH_V3
example code using statis library for temperature measurement with LM35 and LM335
temperatureSensor.cpp@7:596c792ff02d, 2012-12-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |