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

Dependencies:   mbed ntc

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?

UserRevisionLine numberNew 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 }