![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TMP sensor
Fork of Analog_Temp_2 by
main.cpp@1:348dd46843f4, 2014-04-09 (annotated)
- Committer:
- lanmaomao7
- Date:
- Wed Apr 09 20:45:32 2014 +0000
- Revision:
- 1:348dd46843f4
- Parent:
- 0:ab91d2a9a3bd
1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |