Kevin Braun / ntc

Dependents:   ntc_helloworld

Embed: (wiki syntax)

« Back to documentation index

NTC Class Reference

NTC Class Reference

NTC temperature A:D conversion. More...

#include <ntc.h>

Public Types

enum  ntcBetaCurve {
  B0_50, B25_50, B25_80, B25_85,
  B25_100, B_OTHER
}
 

NTC Beta curves to choose from for Temperature calculations.

More...

Public Member Functions

 NTC (PinName p_ana, const NTC_TypeDef *ntc_parameter)
 Configure gpio pin.
 NTC (PinName p_ana)
 Configure gpio pin.
uint16_t read_ad_reg ()
 Read A:D register value.
int get_ntc_res ()
 Get the NTC resistance value.
int get_ntc_beta (int beta=B25_85)
 Get the NTC beta value.
int get_series_res ()
 Get the resistance value for the series resistor.
float get_ntc_res_viaAD (uint16_t din=0)
 calculate NTC resistance based on A:D reading
float get_ntc_temp (int curve, uint16_t din=0)
 calculate NTC temperaure

Detailed Description

NTC temperature A:D conversion.

  #include "mbed.h"
  #include "ntc.h" 

  #define NTC_VREF        3.3f
  #define NTC_AD_RESOL    65536.0f

  // Connections:

  //      3.3V (or other Vref)
  //     --+--
  //       |
  //      -+-
  //     |   |
  //     |   |
  //     |   | Series
  //     |   | Resistor
  //     |   |
  //      -+-
  //       |
  //       +---> To A:D
  //       |
  //      -+-
  //     |   |
  //     |   |
  //     |   | NTC
  //     |   | 
  //     |   |
  //      -+-
  //       |
  //     --+--
  //      ---  Ground
  //       -

  
  const NTC_TypeDef ntc_my_paramtr = {
    // Vref
    NTC_VREF,           // Vref
    NTC_AD_RESOL,       // A:D 16-bit resolution
    // muRata NCP15XH103J03RC
    10000,              // NTC resistance
    5,                  // NTC initial tolerance
    0,                  // NTC B0/50 (none)
    3380,               // NTC B25/50
    3428,               // NTC B25/80
    3434,               // NTC B25/85
    3355,               // NTC B25/100
    0,                  // NTC other beta (none)
    1,                  // NTC beta tolerance
    // 3.32k 1% 100ppm
    3320,               // Series resistor value
    1,                  // Series resistor tolerance
    100                 // Series Resistor tempco ppm
  };    

  NTC ntc(A1, &ntc_my_paramtr);                   //initialize NTC temperature A:D
 
  main() {
      printf("\r\n\r\n-------------------------------------------\r\n");
      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", 
                  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 ), 
                  ntc.get_ntc_beta(NTC::B25_100 ), ntc.get_ntc_beta(NTC::B_OTHER ),  ntc.get_series_res());
      uint16_t ad = ntc.read_ad_reg();
      printf("NTC A:D Val: %5d   Volt A:D: %.6f   NTC-R_now: %7.1f    Temp: %+.2f\r\n", ad, 
              NTC_VREF / NTC_AD_RESOL * (float)ad, ntc.get_ntc_res_viaAD(ad), ntc.get_ntc_temp(NTC::B25_85 , ad));

      while(1) {
          printf("Temp: %+.2f\r\n", ntc.get_ntc_temp(NTC::B25_85 ));
          wait(2.0);
      }
          
  }         

Definition at line 135 of file ntc.h.


Member Enumeration Documentation

NTC Beta curves to choose from for Temperature calculations.

Enumerator:
B0_50 

use B0/50 curve

B25_50 

use B25/50 curve

B25_80 

use B25/80 curve

B25_85 

use B25/85 curve

B25_100 

use B25/100 curve

B_OTHER 

use other curve

Definition at line 142 of file ntc.h.


Constructor & Destructor Documentation

NTC ( PinName  p_ana,
const NTC_TypeDef ntc_parameter 
)

Configure gpio pin.

Parameters:
A:DI/O pin
parametersfor NTC (NTC_TypeDef)

Definition at line 8 of file ntc.cpp.

NTC ( PinName  p_ana )

Configure gpio pin.

Parameters:
A:DI/O pin uses default parameters

Definition at line 15 of file ntc.cpp.


Member Function Documentation

int get_ntc_beta ( int  beta = B25_85 )

Get the NTC beta value.

Parameters:
ntcBetaCurveselection
B25_85default value
Returns:
beta curve value

Definition at line 32 of file ntc.cpp.

int get_ntc_res (  )

Get the NTC resistance value.

Parameters:
none
Returns:
resistance of NTC at 25C

Definition at line 28 of file ntc.cpp.

float get_ntc_res_viaAD ( uint16_t  din = 0 )

calculate NTC resistance based on A:D reading

Parameters:
none
dinoptional read from read_ad_reg().
din-> if missing or 0, read_ad_reg() value is used for calculation
din-> if != 0, then value of din is used for calculation
Returns:
resistance of NTC

Definition at line 64 of file ntc.cpp.

float get_ntc_temp ( int  curve,
uint16_t  din = 0 
)

calculate NTC temperaure

Parameters:
curveBeta curve to use. See ntcBetaCurve {};
dinoptional read from read_ad_reg()
din-> if missing or 0, read_ad_reg() value is used for calculation
din-> if != 0, then value of din is used for calculation
Returns:
temperature of NTC
-100 if NTC Beta selected = 0

Definition at line 73 of file ntc.cpp.

int get_series_res (  )

Get the resistance value for the series resistor.

Parameters:
none
Returns:
resistance of series resistor

Definition at line 60 of file ntc.cpp.

uint16_t read_ad_reg (  )

Read A:D register value.

Parameters:
none
Returns:
A:D value from 0-65535

Definition at line 22 of file ntc.cpp.