BayEOSArduino Library
NTC.h
1 #ifndef NTC_h
2 #define NTC_h
3 #include <Arduino.h>
4 
5 //Define a abstract class NTC_Sensor
6 //this class handles the R2T transformation
7 //readResistance has to be implemented
8 class NTC_Sensor {
9 protected:
10  float ntc_type; //e.g. 3.0 for 3k or 5.0 for 5k....
11 public:
12  NTC_Sensor(float nt);
13  float R2T(float t);
14  virtual float readResistance(void)=0;
15  float getTemp(void);
16 };
17 
18 class NTC_Calc: public NTC_Sensor {
19 public:
20  NTC_Calc(float nt):NTC_Sensor(nt){}
21  float readResistance(void);
22 };
23 
24 
25 //NTC sensor directly connnected to Arduino ADC
26 class NTC_ADC: public NTC_Sensor {
27 private:
28  uint8_t power_pin;
29  uint8_t adc_pin;
30  float pre_resistor;
31 public:
32  NTC_ADC(uint8_t pp, uint8_t ap, float pr, float nt);
33  float readResistance(void);
34 };
35 
36 //NTC sensor read out with MCP342x 18bit ADC
37 #include <MCP342x.h>
38 class NTC_MCP342x: public NTC_Sensor {
39 private:
40 
41  uint8_t power_pin;
42  uint8_t adc_ch_r;
43  uint8_t adc_ch_ntc;
44  float pre_resistor;
45  MCP342x* mcp;
46 
47 public:
48  NTC_MCP342x(MCP342x &m, uint8_t pp, uint8_t ch_r, uint8_t ch_n, float pr, float nt);
49  float readResistance(void);
50  uint8_t sleep_count;
51 
52 };
53 
54 //NTC sensor read out with HX711 24bit ADC Channel B
55 #include <HX711Array.h>
56 class NTC_HX711: public NTC_Sensor {
57 private:
58 
59  uint8_t power_pin;
60  float pre_resistor;
61  HX711Array* hx711;
62  uint8_t number;
63 
64 public:
65  NTC_HX711(HX711Array &hx, uint8_t pp, float pr, float nt, uint8_t n=0 );
66  NTC_HX711(HX711Array &hx, float pr, float nt, uint8_t n=0 );
67  float readResistance(void);
68  //Note: getTemp(nr) does not run a ADC conversion
69  //call readResistance before!
70  float getTemp(uint8_t nr);
71 
72 };
73 
74 
75 
76 #endif
Definition: HX711Array.h:6
Definition: MCP342x.h:17
Definition: NTC.h:26
Definition: NTC.h:18
Definition: NTC.h:56
Definition: NTC.h:38
Definition: NTC.h:8