Seeedstudio Arch Examples : Temperature sensing using thermistor and AnalogIn interface.

Dependencies:   mbed

Fork of Arch_GPIO_Ex4 by Visweswara R

Committer:
viswesr
Date:
Mon Oct 07 13:10:03 2013 +0000
Revision:
5:d035275d4c21
Parent:
4:ba523da0d68a
Child:
6:914bd412ceda
First version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
viswesr 0:ed40790a022a 1 #include "mbed.h"
viswesr 5:d035275d4c21 2 #include "USBSerial.h"
viswesr 0:ed40790a022a 3
viswesr 5:d035275d4c21 4 AnalogIn thermistor(P0_11); /* Thermistor output connected to P0_11 */
viswesr 5:d035275d4c21 5
viswesr 5:d035275d4c21 6 DigitalOut tensplaceLED(LED4); /* This led blinks as per tens place of temperature value(in deg C) */
viswesr 5:d035275d4c21 7 DigitalOut unitsplaceLED(LED1); /* This led blinks as per units place of temperature value(in deg C) */
viswesr 0:ed40790a022a 8
viswesr 0:ed40790a022a 9 int main()
viswesr 0:ed40790a022a 10 {
viswesr 5:d035275d4c21 11 unsigned int a, beta = 3975, units, tens;
viswesr 5:d035275d4c21 12 float temperature, resistance;
viswesr 5:d035275d4c21 13
viswesr 0:ed40790a022a 14 while(1) {
viswesr 5:d035275d4c21 15 a = thermistor.read_u16(); /* Read analog value */
viswesr 5:d035275d4c21 16
viswesr 5:d035275d4c21 17 /* Calculate the resistance of the thermistor from analog votage read. */
viswesr 5:d035275d4c21 18 resistance= (float) 10000.0 * (1.0 - (a / 65536.0 ));
viswesr 5:d035275d4c21 19
viswesr 5:d035275d4c21 20 /* Convert the resistance to temperature using Steinhart's Hart equation */
viswesr 5:d035275d4c21 21 temperature=(1/((log(resistance/5000.0)/beta) + (1.0/298.15)))-273.15;
viswesr 5:d035275d4c21 22
viswesr 5:d035275d4c21 23 units = (int) temperature % 10;
viswesr 5:d035275d4c21 24 tens = (int) temperature / 10;
viswesr 5:d035275d4c21 25
viswesr 5:d035275d4c21 26
viswesr 5:d035275d4c21 27 for(int i=0; i< tens; i++)
viswesr 5:d035275d4c21 28 {
viswesr 5:d035275d4c21 29 tensplaceLED = 1;
viswesr 5:d035275d4c21 30 wait(.200);
viswesr 5:d035275d4c21 31 tensplaceLED = 0;
viswesr 5:d035275d4c21 32 wait(.200);
viswesr 4:ba523da0d68a 33 }
viswesr 5:d035275d4c21 34
viswesr 5:d035275d4c21 35 for(int i=0; i< units; i++)
viswesr 5:d035275d4c21 36 {
viswesr 5:d035275d4c21 37 unitsplaceLED = 1;
viswesr 5:d035275d4c21 38 wait(.200);
viswesr 5:d035275d4c21 39 unitsplaceLED = 0;
viswesr 5:d035275d4c21 40 wait(.200);
viswesr 5:d035275d4c21 41 }
viswesr 5:d035275d4c21 42
viswesr 5:d035275d4c21 43 wait(0.5);
viswesr 0:ed40790a022a 44 }
viswesr 0:ed40790a022a 45 }
viswesr 5:d035275d4c21 46