
Seeedstudio Arch Examples : Temperature sensing using thermistor and AnalogIn interface.
Fork of Arch_GPIO_Ex4 by
main.cpp@6:914bd412ceda, 2013-10-08 (annotated)
- Committer:
- viswesr
- Date:
- Tue Oct 08 08:53:33 2013 +0000
- Revision:
- 6:914bd412ceda
- Parent:
- 5:d035275d4c21
Removed USB Debug
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
viswesr | 0:ed40790a022a | 1 | #include "mbed.h" |
viswesr | 0:ed40790a022a | 2 | |
viswesr | 5:d035275d4c21 | 3 | AnalogIn thermistor(P0_11); /* Thermistor output connected to P0_11 */ |
viswesr | 5:d035275d4c21 | 4 | |
viswesr | 5:d035275d4c21 | 5 | DigitalOut tensplaceLED(LED4); /* This led blinks as per tens place of temperature value(in deg C) */ |
viswesr | 5:d035275d4c21 | 6 | DigitalOut unitsplaceLED(LED1); /* This led blinks as per units place of temperature value(in deg C) */ |
viswesr | 0:ed40790a022a | 7 | |
viswesr | 0:ed40790a022a | 8 | int main() |
viswesr | 0:ed40790a022a | 9 | { |
viswesr | 5:d035275d4c21 | 10 | unsigned int a, beta = 3975, units, tens; |
viswesr | 5:d035275d4c21 | 11 | float temperature, resistance; |
viswesr | 5:d035275d4c21 | 12 | |
viswesr | 0:ed40790a022a | 13 | while(1) { |
viswesr | 5:d035275d4c21 | 14 | a = thermistor.read_u16(); /* Read analog value */ |
viswesr | 5:d035275d4c21 | 15 | |
viswesr | 5:d035275d4c21 | 16 | /* Calculate the resistance of the thermistor from analog votage read. */ |
viswesr | 6:914bd412ceda | 17 | resistance= (float) 10000.0 * ((65536.0 / a) - 1.0); |
viswesr | 5:d035275d4c21 | 18 | |
viswesr | 5:d035275d4c21 | 19 | /* Convert the resistance to temperature using Steinhart's Hart equation */ |
viswesr | 5:d035275d4c21 | 20 | temperature=(1/((log(resistance/5000.0)/beta) + (1.0/298.15)))-273.15; |
viswesr | 5:d035275d4c21 | 21 | |
viswesr | 5:d035275d4c21 | 22 | units = (int) temperature % 10; |
viswesr | 5:d035275d4c21 | 23 | tens = (int) temperature / 10; |
viswesr | 5:d035275d4c21 | 24 | |
viswesr | 5:d035275d4c21 | 25 | |
viswesr | 5:d035275d4c21 | 26 | for(int i=0; i< tens; i++) |
viswesr | 5:d035275d4c21 | 27 | { |
viswesr | 5:d035275d4c21 | 28 | tensplaceLED = 1; |
viswesr | 5:d035275d4c21 | 29 | wait(.200); |
viswesr | 5:d035275d4c21 | 30 | tensplaceLED = 0; |
viswesr | 5:d035275d4c21 | 31 | wait(.200); |
viswesr | 4:ba523da0d68a | 32 | } |
viswesr | 5:d035275d4c21 | 33 | |
viswesr | 5:d035275d4c21 | 34 | for(int i=0; i< units; i++) |
viswesr | 5:d035275d4c21 | 35 | { |
viswesr | 5:d035275d4c21 | 36 | unitsplaceLED = 1; |
viswesr | 5:d035275d4c21 | 37 | wait(.200); |
viswesr | 5:d035275d4c21 | 38 | unitsplaceLED = 0; |
viswesr | 5:d035275d4c21 | 39 | wait(.200); |
viswesr | 5:d035275d4c21 | 40 | } |
viswesr | 5:d035275d4c21 | 41 | |
viswesr | 5:d035275d4c21 | 42 | wait(0.5); |
viswesr | 0:ed40790a022a | 43 | } |
viswesr | 0:ed40790a022a | 44 | } |
viswesr | 5:d035275d4c21 | 45 |