Sakis Kasampalis
/
temperature-sensor
Show the temperature using TMP36
temperature.cpp@0:bf61ac6be2d7, 2017-01-14 (annotated)
- Committer:
- faif
- Date:
- Sat Jan 14 19:47:33 2017 +0000
- Revision:
- 0:bf61ac6be2d7
Show the temperature using TMP36
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
faif | 0:bf61ac6be2d7 | 1 | #include "mbed.h" |
faif | 0:bf61ac6be2d7 | 2 | #include "temperature.h" |
faif | 0:bf61ac6be2d7 | 3 | |
faif | 0:bf61ac6be2d7 | 4 | static const char CLS[] = "\x1B[2J"; // VT100 erase screen |
faif | 0:bf61ac6be2d7 | 5 | static const char HOME[] = "\x1B[H"; // VT100 home |
faif | 0:bf61ac6be2d7 | 6 | |
faif | 0:bf61ac6be2d7 | 7 | static const int SAMPLES = 100; // use an average for better precision |
faif | 0:bf61ac6be2d7 | 8 | enum { delay = 1 }; |
faif | 0:bf61ac6be2d7 | 9 | |
faif | 0:bf61ac6be2d7 | 10 | int main() |
faif | 0:bf61ac6be2d7 | 11 | { |
faif | 0:bf61ac6be2d7 | 12 | clear_screen(); |
faif | 0:bf61ac6be2d7 | 13 | pc.printf("========[ Temperature ]========"); |
faif | 0:bf61ac6be2d7 | 14 | |
faif | 0:bf61ac6be2d7 | 15 | while (true) |
faif | 0:bf61ac6be2d7 | 16 | { |
faif | 0:bf61ac6be2d7 | 17 | pc.printf(HOME); |
faif | 0:bf61ac6be2d7 | 18 | float voltage = measure_voltage(SAMPLES); |
faif | 0:bf61ac6be2d7 | 19 | float temperature = voltage_to_temperature(voltage, SAMPLES); |
faif | 0:bf61ac6be2d7 | 20 | pc.printf("\n\rtemperature: %4.1f C", temperature); |
faif | 0:bf61ac6be2d7 | 21 | wait(delay); |
faif | 0:bf61ac6be2d7 | 22 | } |
faif | 0:bf61ac6be2d7 | 23 | } |
faif | 0:bf61ac6be2d7 | 24 | |
faif | 0:bf61ac6be2d7 | 25 | void clear_screen() |
faif | 0:bf61ac6be2d7 | 26 | { |
faif | 0:bf61ac6be2d7 | 27 | pc.printf(CLS); |
faif | 0:bf61ac6be2d7 | 28 | pc.printf(HOME); |
faif | 0:bf61ac6be2d7 | 29 | } |
faif | 0:bf61ac6be2d7 | 30 | |
faif | 0:bf61ac6be2d7 | 31 | float measure_voltage(int samples) |
faif | 0:bf61ac6be2d7 | 32 | { |
faif | 0:bf61ac6be2d7 | 33 | float voltage = 0; |
faif | 0:bf61ac6be2d7 | 34 | for (int i = 0; i < samples; ++i) |
faif | 0:bf61ac6be2d7 | 35 | { |
faif | 0:bf61ac6be2d7 | 36 | voltage += temperatureIn; |
faif | 0:bf61ac6be2d7 | 37 | } |
faif | 0:bf61ac6be2d7 | 38 | return voltage; |
faif | 0:bf61ac6be2d7 | 39 | } |
faif | 0:bf61ac6be2d7 | 40 | |
faif | 0:bf61ac6be2d7 | 41 | float voltage_to_temperature(int voltage, int samples) |
faif | 0:bf61ac6be2d7 | 42 | { |
faif | 0:bf61ac6be2d7 | 43 | float temperature = (voltage / 0.01) / samples; |
faif | 0:bf61ac6be2d7 | 44 | return temperature; |
faif | 0:bf61ac6be2d7 | 45 | } |