Simple program for temperature sensing using a NTC temperature sense resistor and internal mbed A:D converter
main.cpp@0:4d7ee19a6aef, 2017-04-08 (annotated)
- 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?
User | Revision | Line number | New 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 | } |