#define UNDEFINED -1
+#define AD8495_checksum CHECKSUM("AD8495")
#define AD8495_pin_checksum CHECKSUM("AD8495_pin")
+#define AD8495_offset_checksum CHECKSUM("AD8495_offset")
AD8495::AD8495()
{
{
// Thermistor pin for ADC readings
this->AD8495_pin.from_string(THEKERNEL->config->value(module_checksum, name_checksum, AD8495_pin_checksum)->required()->as_string());
+ this->AD8495_offset = THEKERNEL->config->value(module_checksum, name_checksum, AD8495_offset_checksum)->by_default(0)->as_number(); // Stated offset. For Adafruit board it is 250C. If pin 2(REF) of amplifier is connected to 0V then there is 0C offset.
+
THEKERNEL->adc->enable_pin(&AD8495_pin);
}
const uint32_t max_adc_value= THEKERNEL->adc->get_max_value();
float t=((float)adc_value)/(((float)max_adc_value)/3.3*0.005);
- THEKERNEL->streams->printf("adc= %d, max_adc= %lu, temp= %f\n", adc_value,max_adc_value,t);
+ t = t - this->AD8495_offset;
+
+ THEKERNEL->streams->printf("adc= %d, max_adc= %lu, temp= %f, offset = %f\n", adc_value,max_adc_value,t, this->AD8495_offset);
// reset the min/max
min_temp= max_temp= t;
float t=((float)adc_value)/(((float)max_adc_value)/3.3*0.005);
+ t=t-this->AD8495_offset;
+
return t;
}