Simple program for temperature sensing using a NTC temperature sense resistor and internal mbed A:D converter

Dependencies:   mbed ntc

Committer:
loopsva
Date:
Sat Apr 08 01:33:44 2017 +0000
Revision:
0:4d7ee19a6aef
Child:
1:ccb26174e7da
initial release of example program for the NTC temperature sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
loopsva 0:4d7ee19a6aef 1 #include "mbed.h"
loopsva 0:4d7ee19a6aef 2 #include "ntc.h"
loopsva 0:4d7ee19a6aef 3
loopsva 0:4d7ee19a6aef 4 #define NTC_VREF 3.3f
loopsva 0:4d7ee19a6aef 5 #define NTC_AD_RESOL 65536.0f
loopsva 0:4d7ee19a6aef 6
loopsva 0:4d7ee19a6aef 7 // Connections:
loopsva 0:4d7ee19a6aef 8
loopsva 0:4d7ee19a6aef 9 // 3.3V (or other Vref)
loopsva 0:4d7ee19a6aef 10 // --+--
loopsva 0:4d7ee19a6aef 11 // |
loopsva 0:4d7ee19a6aef 12 // -+-
loopsva 0:4d7ee19a6aef 13 // | |
loopsva 0:4d7ee19a6aef 14 // | |
loopsva 0:4d7ee19a6aef 15 // | | Series
loopsva 0:4d7ee19a6aef 16 // | | Resistor
loopsva 0:4d7ee19a6aef 17 // | |
loopsva 0:4d7ee19a6aef 18 // -+-
loopsva 0:4d7ee19a6aef 19 // |
loopsva 0:4d7ee19a6aef 20 // +---> To A:D
loopsva 0:4d7ee19a6aef 21 // |
loopsva 0:4d7ee19a6aef 22 // -+-
loopsva 0:4d7ee19a6aef 23 // | |
loopsva 0:4d7ee19a6aef 24 // | |
loopsva 0:4d7ee19a6aef 25 // | | NTC
loopsva 0:4d7ee19a6aef 26 // | |
loopsva 0:4d7ee19a6aef 27 // | |
loopsva 0:4d7ee19a6aef 28 // -+-
loopsva 0:4d7ee19a6aef 29 // |
loopsva 0:4d7ee19a6aef 30 // --+--
loopsva 0:4d7ee19a6aef 31 // --- Ground
loopsva 0:4d7ee19a6aef 32 // -
loopsva 0:4d7ee19a6aef 33
loopsva 0:4d7ee19a6aef 34
loopsva 0:4d7ee19a6aef 35 const NTC_TypeDef ntc_my_paramtr = {
loopsva 0:4d7ee19a6aef 36 // Vref
loopsva 0:4d7ee19a6aef 37 NTC_VREF, // Vref
loopsva 0:4d7ee19a6aef 38 NTC_AD_RESOL, // A:D 16-bit resolution
loopsva 0:4d7ee19a6aef 39 // muRata NCP15XH103J03RC
loopsva 0:4d7ee19a6aef 40 10000, // NTC resistance
loopsva 0:4d7ee19a6aef 41 5, // NTC initial tolerance
loopsva 0:4d7ee19a6aef 42 3380, // NTC B25/50
loopsva 0:4d7ee19a6aef 43 3428, // NTC B25/80
loopsva 0:4d7ee19a6aef 44 3434, // NTC B25/85
loopsva 0:4d7ee19a6aef 45 3355, // NTC B25/100
loopsva 0:4d7ee19a6aef 46 1, // NTC beta tolerance
loopsva 0:4d7ee19a6aef 47 // 3.32k 1% 100ppm
loopsva 0:4d7ee19a6aef 48 3320, // Series resistor value
loopsva 0:4d7ee19a6aef 49 1, // Series resistor tolerance
loopsva 0:4d7ee19a6aef 50 100 // Series Resistor tempco ppm
loopsva 0:4d7ee19a6aef 51 };
loopsva 0:4d7ee19a6aef 52
loopsva 0:4d7ee19a6aef 53 NTC ntc(A1, &ntc_my_paramtr); //initialize NTC temperature A:D
loopsva 0:4d7ee19a6aef 54
loopsva 0:4d7ee19a6aef 55 main()
loopsva 0:4d7ee19a6aef 56 {
loopsva 0:4d7ee19a6aef 57 printf("\r\n\r\n-------------------------------------------\r\n");
loopsva 0:4d7ee19a6aef 58 printf("NTC Res: %5d B25/50: %4d B25/80: %4d B25/85: %4d B25/100: %4d SeriesR: %d\r\n",
loopsva 0:4d7ee19a6aef 59 ntc.get_ntc_res(), ntc.get_ntc_beta_2550(), ntc.get_ntc_beta_2580(), ntc.get_ntc_beta_2585(), ntc.get_ntc_beta_25100(),
loopsva 0:4d7ee19a6aef 60 ntc.get_series_res());
loopsva 0:4d7ee19a6aef 61 uint16_t ad = ntc.read_ad_reg();
loopsva 0:4d7ee19a6aef 62 printf("NTC A:D Val: %5d Volt A:D: %.6f NTC-R_now: %7.1f Temp: %+.2f\r\n", ad,
loopsva 0:4d7ee19a6aef 63 NTC_VREF / NTC_AD_RESOL * (float)ad, ntc.get_ntc_res_viaAD(ad), ntc.get_ntc_temp(NTC::B25_85 , ad));
loopsva 0:4d7ee19a6aef 64
loopsva 0:4d7ee19a6aef 65 while(1) {
loopsva 0:4d7ee19a6aef 66 printf("Temp: %+.2f\r\n", ntc.get_ntc_temp(NTC::B25_85 ));
loopsva 0:4d7ee19a6aef 67 wait(2.0);
loopsva 0:4d7ee19a6aef 68 }
loopsva 0:4d7ee19a6aef 69
loopsva 0:4d7ee19a6aef 70 }