Сбор информации о погодных условиях
Dependencies: RF24 USBDevice mbed
Sensors/ThermometerTmp36.cpp@6:db4538895ae7, 2015-12-05 (annotated)
- Committer:
- pro100kot14
- Date:
- Sat Dec 05 16:57:30 2015 +0000
- Revision:
- 6:db4538895ae7
- Parent:
- 4:7cd67d988145
Added unit testing. Test results are displayed on the device LEDs.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pro100kot14 | 0:1e03d2cd238f | 1 | #include "ThermometerTmp36.h" |
pro100kot14 | 0:1e03d2cd238f | 2 | |
pro100kot14 | 0:1e03d2cd238f | 3 | double ThermometerTmp36::getTemperature(){ |
pro100kot14 | 6:db4538895ae7 | 4 | return getTemperatureByAdcValue(input.read()); |
pro100kot14 | 6:db4538895ae7 | 5 | } |
pro100kot14 | 6:db4538895ae7 | 6 | |
pro100kot14 | 6:db4538895ae7 | 7 | double ThermometerTmp36::getTemperatureByAdcValue(float adcVal){ |
pro100kot14 | 0:1e03d2cd238f | 8 | double temp; |
pro100kot14 | 0:1e03d2cd238f | 9 | double realV; |
pro100kot14 | 0:1e03d2cd238f | 10 | //3.3 - ADC maximum |
pro100kot14 | 6:db4538895ae7 | 11 | realV = adcVal*3.3; |
pro100kot14 | 0:1e03d2cd238f | 12 | //500mV - voltage in 0 degree |
pro100kot14 | 0:1e03d2cd238f | 13 | //For mo information look datasheet |
pro100kot14 | 0:1e03d2cd238f | 14 | //Low Voltage Temperature Sensors TMP35/TMP36/TMP37 |
pro100kot14 | 0:1e03d2cd238f | 15 | //Page 5 of 20, Figure 6 (Output Voltage vs. Temperature) |
pro100kot14 | 0:1e03d2cd238f | 16 | temp = (realV - 0.5)*100; |
pro100kot14 | 0:1e03d2cd238f | 17 | return temp; |
pro100kot14 | 6:db4538895ae7 | 18 | } |
pro100kot14 | 6:db4538895ae7 | 19 | |
pro100kot14 | 6:db4538895ae7 | 20 | bool ThermometerTmp36Test::adcValue_0_15_is_0_degree(){ |
pro100kot14 | 6:db4538895ae7 | 21 | return abs(ThermometerTmp36::getTemperatureByAdcValue(0.15)) < 0.5; |
pro100kot14 | 6:db4538895ae7 | 22 | } |
pro100kot14 | 6:db4538895ae7 | 23 | |
pro100kot14 | 6:db4538895ae7 | 24 | bool ThermometerTmp36Test::adcValue_0_196_is_15_degree(){ |
pro100kot14 | 6:db4538895ae7 | 25 | return abs(ThermometerTmp36::getTemperatureByAdcValue(0.196) - 15.0) < 0.5; |
pro100kot14 | 6:db4538895ae7 | 26 | } |
pro100kot14 | 6:db4538895ae7 | 27 | |
pro100kot14 | 6:db4538895ae7 | 28 | bool ThermometerTmp36Test::adcValue_0_242_is_30_degree(){ |
pro100kot14 | 6:db4538895ae7 | 29 | return abs(ThermometerTmp36::getTemperatureByAdcValue(0.242) - 30.0) < 0.5; |
pro100kot14 | 0:1e03d2cd238f | 30 | } |