NTC temperature sensor going to A:D input. Topology is: (Vref or 3.3V) -> Series_resistor -> A:D_input -> NTC -> GND. Easy modification of NTC parameters w/o recompile of library
Diff: ntc.cpp
- Revision:
- 5:9655397ba539
- Parent:
- 3:1eb4f5296281
- Child:
- 6:8e6bd0f9877b
--- a/ntc.cpp Sat Apr 08 01:23:02 2017 +0000 +++ b/ntc.cpp Tue Apr 11 20:30:30 2017 +0000 @@ -29,6 +29,10 @@ return ntc_set_data.ntc_res; } +int NTC::get_ntc_beta_0050() { + return ntc_set_data.ntc_beta_0050; +} + int NTC::get_ntc_beta_2550() { return ntc_set_data.ntc_beta_2550; } @@ -45,6 +49,10 @@ return ntc_set_data.ntc_beta_25100; } +int NTC::get_ntc_beta_other() { + return ntc_set_data.ntc_beta_other; +} + int NTC::get_series_res() { return ntc_set_data.sres_res; } @@ -61,6 +69,9 @@ float NTC::get_ntc_temp(int curve, uint16_t din) { int beta = 0; switch (curve) { + case B0_50: + beta = ntc_set_data.ntc_beta_0050; + break; case B25_50: beta = ntc_set_data.ntc_beta_2550; break; @@ -73,6 +84,9 @@ case B25_100: beta = ntc_set_data.ntc_beta_25100; break; + case B_OTHER: + beta = ntc_set_data.ntc_beta_other; + break; default: beta = ntc_set_data.ntc_beta_2550; break; @@ -83,6 +97,7 @@ } else { ntc_res = NTC::get_ntc_res_viaAD(din); } + if(beta == 0) return -100.0f; return (beta / (log(ntc_res / (ntc_set_data.ntc_res * exp(-beta / 298.0f)))) - 273.0f); }