Simple program for temperature sensing using a NTC temperature sense resistor and internal mbed A:D converter
main.cpp@1:ccb26174e7da, 2017-04-12 (annotated)
- Committer:
- loopsva
- Date:
- Wed Apr 12 17:01:17 2017 +0000
- Revision:
- 1:ccb26174e7da
- Parent:
- 0:4d7ee19a6aef
updated code to reflect ntc library v6
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
loopsva | 1:ccb26174e7da | 1 | #include "mbed.h" |
loopsva | 1:ccb26174e7da | 2 | #include "ntc.h" |
loopsva | 1:ccb26174e7da | 3 | |
loopsva | 1:ccb26174e7da | 4 | #define NTC_VREF 3.3f |
loopsva | 1:ccb26174e7da | 5 | #define NTC_AD_RESOL 65536.0f |
loopsva | 1:ccb26174e7da | 6 | |
loopsva | 1:ccb26174e7da | 7 | // Connections: |
loopsva | 1:ccb26174e7da | 8 | |
loopsva | 1:ccb26174e7da | 9 | // 3.3V (or other Vref) |
loopsva | 1:ccb26174e7da | 10 | // --+-- |
loopsva | 1:ccb26174e7da | 11 | // | |
loopsva | 1:ccb26174e7da | 12 | // -+- |
loopsva | 1:ccb26174e7da | 13 | // | | |
loopsva | 1:ccb26174e7da | 14 | // | | |
loopsva | 1:ccb26174e7da | 15 | // | | Series |
loopsva | 1:ccb26174e7da | 16 | // | | Resistor |
loopsva | 1:ccb26174e7da | 17 | // | | |
loopsva | 1:ccb26174e7da | 18 | // -+- |
loopsva | 1:ccb26174e7da | 19 | // | |
loopsva | 1:ccb26174e7da | 20 | // +---> To A:D |
loopsva | 1:ccb26174e7da | 21 | // | |
loopsva | 1:ccb26174e7da | 22 | // -+- |
loopsva | 1:ccb26174e7da | 23 | // | | |
loopsva | 1:ccb26174e7da | 24 | // | | |
loopsva | 1:ccb26174e7da | 25 | // | | NTC |
loopsva | 1:ccb26174e7da | 26 | // | | |
loopsva | 1:ccb26174e7da | 27 | // | | |
loopsva | 1:ccb26174e7da | 28 | // -+- |
loopsva | 1:ccb26174e7da | 29 | // | |
loopsva | 1:ccb26174e7da | 30 | // --+-- |
loopsva | 1:ccb26174e7da | 31 | // --- Ground |
loopsva | 1:ccb26174e7da | 32 | // - |
loopsva | 1:ccb26174e7da | 33 | |
loopsva | 1:ccb26174e7da | 34 | |
loopsva | 1:ccb26174e7da | 35 | const NTC_TypeDef ntc_my_paramtr = { |
loopsva | 1:ccb26174e7da | 36 | // Vref |
loopsva | 1:ccb26174e7da | 37 | NTC_VREF, // Vref |
loopsva | 1:ccb26174e7da | 38 | NTC_AD_RESOL, // A:D 16-bit resolution |
loopsva | 1:ccb26174e7da | 39 | // muRata NCP15XH103J03RC |
loopsva | 1:ccb26174e7da | 40 | 10000, // NTC resistance |
loopsva | 1:ccb26174e7da | 41 | 5, // NTC initial tolerance |
loopsva | 1:ccb26174e7da | 42 | 0, // NTC B0/50 (none) |
loopsva | 1:ccb26174e7da | 43 | 3380, // NTC B25/50 |
loopsva | 1:ccb26174e7da | 44 | 3428, // NTC B25/80 |
loopsva | 1:ccb26174e7da | 45 | 3434, // NTC B25/85 |
loopsva | 1:ccb26174e7da | 46 | 3355, // NTC B25/100 |
loopsva | 1:ccb26174e7da | 47 | 0, // NTC other beta (none) |
loopsva | 1:ccb26174e7da | 48 | 1, // NTC beta tolerance |
loopsva | 1:ccb26174e7da | 49 | // 3.32k 1% 100ppm |
loopsva | 1:ccb26174e7da | 50 | 3320, // Series resistor value |
loopsva | 1:ccb26174e7da | 51 | 1, // Series resistor tolerance |
loopsva | 1:ccb26174e7da | 52 | 100 // Series Resistor tempco ppm |
loopsva | 1:ccb26174e7da | 53 | }; |
loopsva | 1:ccb26174e7da | 54 | |
loopsva | 1:ccb26174e7da | 55 | NTC ntc(A1, &ntc_my_paramtr); //initialize NTC temperature A:D |
loopsva | 1:ccb26174e7da | 56 | |
loopsva | 1:ccb26174e7da | 57 | main() { |
loopsva | 1:ccb26174e7da | 58 | printf("\r\n\r\n-------------------------------------------\r\n"); |
loopsva | 1:ccb26174e7da | 59 | printf("NTC Res: %5d B0/50: %4d B25/50: %4d B25/80: %4d B25/85: %4d B25/100: %4d B_OTHER: %4d SeriesR: %d\r\n", |
loopsva | 1:ccb26174e7da | 60 | ntc.get_ntc_res(), ntc.get_ntc_beta(NTC::B0_50 ), ntc.get_ntc_beta(NTC::B25_50 ), ntc.get_ntc_beta(NTC::B25_80 ), ntc.get_ntc_beta(NTC::B25_85 ), |
loopsva | 1:ccb26174e7da | 61 | ntc.get_ntc_beta(NTC::B25_100 ), ntc.get_ntc_beta(NTC::B_OTHER ), ntc.get_series_res()); |
loopsva | 1:ccb26174e7da | 62 | uint16_t ad = ntc.read_ad_reg(); |
loopsva | 1:ccb26174e7da | 63 | printf("NTC A:D Val: %5d Volt A:D: %.6f NTC-R_now: %7.1f Temp: %+.2f\r\n", ad, |
loopsva | 1:ccb26174e7da | 64 | NTC_VREF / NTC_AD_RESOL * (float)ad, ntc.get_ntc_res_viaAD(ad), ntc.get_ntc_temp(NTC::B25_85 , ad)); |
loopsva | 1:ccb26174e7da | 65 | |
loopsva | 1:ccb26174e7da | 66 | while(1) { |
loopsva | 1:ccb26174e7da | 67 | printf("Temp: %+.2f\r\n", ntc.get_ntc_temp(NTC::B25_85 )); |
loopsva | 1:ccb26174e7da | 68 | wait(2.0); |
loopsva | 1:ccb26174e7da | 69 | } |
loopsva | 1:ccb26174e7da | 70 | |
loopsva | 1:ccb26174e7da | 71 | } |