Show the temperature using TMP36

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }