#include "ThermometerPro.h" #include "AD7190.h" #include "cmd.h" #include "test.h" #include "uptime.h" static CmdServer cmdServer(&Serial); static TestCmd testCmd; static Uptime uptime; void setup() { cmdServer.begin(); testCmd.registerYourself(&cmdServer); uptime.begin(&cmdServer); Serial.begin(9600); delay(5000); Serial.print("Hello world\n"); unsigned char ad7190Status = AD7190_Init(); Serial.print(String("ad7190Status: ") + ad7190Status + "\n"); AD7190_RangeSetup(1, AD7190_CONF_GAIN_1); AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN4P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN4P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN3P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN3P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN2P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN2P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN1P_AINCOM); AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN1P_AINCOM); } unsigned long T() { AD7190_ChannelSelect(AD7190_CH_AIN4P_AINCOM); unsigned long t = AD7190_SingleConversion(); return t; } float pt1000(float r) { const float PT1000_R0 = 1000.0; const float PT1000_Coeff = 3.85e-3; float t = (r / PT1000_R0 - 1) / PT1000_Coeff; return t; } void loop() { cmdServer.exec(); uptime.exec(); Serial.print("Tick\n"); AD7190_ChannelSelect(AD7190_CH_AIN4P_AINCOM); unsigned long n4 = AD7190_SingleConversion(); n4 &= 0xffff00; AD7190_ChannelSelect(AD7190_CH_AIN3P_AINCOM); unsigned long n3x = AD7190_SingleConversion(); n3x &= 0xffff00; AD7190_ChannelSelect(AD7190_CH_AIN2P_AINCOM); unsigned long n2x = AD7190_SingleConversion(); n2x &= 0xffff00; AD7190_ChannelSelect(AD7190_CH_AIN1P_AINCOM); unsigned long n1x = AD7190_SingleConversion(); n1x &= 0xffff00; unsigned long n_max = 0xffffff; float r_ref = 6000.0; float r_m4 = (((float)n4) / ((float)n_max)) * r_ref * 1.0010705; float t4 = pt1000(r_m4); Serial.print(n4); Serial.print(", "); Serial.print(r_m4, 4); Serial.print(", "); Serial.print(t4, 2); Serial.println(); unsigned long n3 = n3x - n4; float r_m3 = (((float)n3) / ((float)n_max)) * r_ref * 1.000794; float t3 = pt1000(r_m3); Serial.print(n3x); Serial.print(", "); Serial.print(n3); Serial.print(", "); Serial.print(r_m3, 4); Serial.print(", "); Serial.print(t3, 2); // float d = r_m4 - r_m3; // Serial.print(", "); Serial.print(d, 2); // unsigned long dd = n4 - n3; // Serial.print(", "); Serial.print(dd); Serial.println(); unsigned long n2 = n2x - n3x; float r_m2 = (((float)n2) / ((float)n_max)) * r_ref * 1.001804; float t2 = pt1000(r_m2); Serial.print(n2x); Serial.print(", "); Serial.print(n2); Serial.print(", "); Serial.print(r_m2, 4); Serial.print(", "); Serial.print(t2, 2); // d = r_m3 - r_m2; // Serial.print(", "); Serial.print(d, 2); // dd = n3 - n2; // Serial.print(", "); Serial.print(dd); Serial.println(); unsigned long n1 = n1x - n2x; float r_m1 = (((float)n1) / ((float)n_max)) * r_ref * 1.002999; float t1 = pt1000(r_m1); Serial.print(n1x); Serial.print(", "); Serial.print(n1); Serial.print(", "); Serial.print(r_m1, 4); Serial.print(", "); Serial.print(t1, 2); // d = r_m2 - r_m1; // Serial.print(", "); Serial.print(d, 2); // dd = n2 - n1; // Serial.print(", "); Serial.print(dd); Serial.println(); Serial.println(); delay(1000); }