TMP sensor

Dependencies:   mbed

Fork of Analog_Temp_2 by Umair Aftab

Committer:
lanmaomao7
Date:
Wed Apr 09 20:45:32 2014 +0000
Revision:
1:348dd46843f4
Parent:
0:ab91d2a9a3bd
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umairaftab 0:ab91d2a9a3bd 1 #include "mbed.h"
umairaftab 0:ab91d2a9a3bd 2
umairaftab 0:ab91d2a9a3bd 3 //Print temperature from LM61 analog temperature sensor
umairaftab 0:ab91d2a9a3bd 4
umairaftab 0:ab91d2a9a3bd 5 //set p15 to analog input to read LM61 sensor's voltage output
lanmaomao7 1:348dd46843f4 6 AnalogIn TMP35(PTB0);
umairaftab 0:ab91d2a9a3bd 7
umairaftab 0:ab91d2a9a3bd 8 //also setting unused analog input pins to digital outputs reduces A/D noise a bit
umairaftab 0:ab91d2a9a3bd 9 //see http://mbed.org/users/chris/notebook/Getting-best-ADC-performance/
lanmaomao7 1:348dd46843f4 10 /*
umairaftab 0:ab91d2a9a3bd 11 DigitalOut P16(PTB1);
umairaftab 0:ab91d2a9a3bd 12 DigitalOut P17(PTB2);
umairaftab 0:ab91d2a9a3bd 13 DigitalOut P18(PTB3);
umairaftab 0:ab91d2a9a3bd 14 DigitalOut P19(PTC0);
umairaftab 0:ab91d2a9a3bd 15 //DigitalOut P20(p20);
lanmaomao7 1:348dd46843f4 16
lanmaomao7 1:348dd46843f4 17 /*
umairaftab 0:ab91d2a9a3bd 18 int main()
umairaftab 0:ab91d2a9a3bd 19 {
umairaftab 0:ab91d2a9a3bd 20 float tempC, tempF;
lanmaomao7 1:348dd46843f4 21 //float val;
umairaftab 0:ab91d2a9a3bd 22
umairaftab 0:ab91d2a9a3bd 23 while(1) {
umairaftab 0:ab91d2a9a3bd 24 //conversion to degrees C - from sensor output voltage per LM61 data sheet
lanmaomao7 1:348dd46843f4 25 tempC = TMP35** 3.3 * 100;
lanmaomao7 1:348dd46843f4 26
umairaftab 0:ab91d2a9a3bd 27 //convert to degrees F
umairaftab 0:ab91d2a9a3bd 28 tempF = (9.0*tempC)/5.0 + 32.0;
umairaftab 0:ab91d2a9a3bd 29 //print current temp
umairaftab 0:ab91d2a9a3bd 30 printf("%5.2F C %5.2F F \n\r", tempC, tempF);
umairaftab 0:ab91d2a9a3bd 31 wait(.5);
umairaftab 0:ab91d2a9a3bd 32 }
lanmaomao7 1:348dd46843f4 33 }
lanmaomao7 1:348dd46843f4 34 */
lanmaomao7 1:348dd46843f4 35
lanmaomao7 1:348dd46843f4 36 float TMP_read_temp(){
lanmaomao7 1:348dd46843f4 37 float tempC, a[10], avg;
lanmaomao7 1:348dd46843f4 38 int i;
lanmaomao7 1:348dd46843f4 39 avg=0;
lanmaomao7 1:348dd46843f4 40 for(i=0;i<10;i++){
lanmaomao7 1:348dd46843f4 41 a[i]=TMP35.read();
lanmaomao7 1:348dd46843f4 42 wait(.02);
lanmaomao7 1:348dd46843f4 43 }
lanmaomao7 1:348dd46843f4 44 for(i=0;i<10;i++){
lanmaomao7 1:348dd46843f4 45 avg=avg+(a[i]/10);
lanmaomao7 1:348dd46843f4 46 }
lanmaomao7 1:348dd46843f4 47 tempC = avg * 3.3 * 100;
lanmaomao7 1:348dd46843f4 48 return tempC;
lanmaomao7 1:348dd46843f4 49 }