13 if (!this->
read_byte_16(ADS1115_REGISTER_CONVERSION, &value)) {
21 config |= 0b0000000000000000;
33 config |= 0b0000000000000000;
37 config |= 0b0000000100000000;
46 config |= 0b0000000000000000;
50 config |= 0b0000000000000000;
54 config |= 0b0000000000000000;
58 config |= 0b0000000000000011;
75 config &= 0b1000111111111111;
76 config |= (multiplexer & 0b111) << 12;
80 config &= 0b1111000111111111;
81 config |= (
gain & 0b111) << 9;
85 config &= 0b1111111100011111;
86 config |= (samplerate & 0b111) << 5;
90 config |= 0b1000000000000000;
102 switch (samplerate) {
121 switch (samplerate) {
154 while (this->
read_byte_16(ADS1115_REGISTER_CONFIG, &config) && (config >> 15) == 0) {
155 if (
millis() - start > 100) {
156 ESP_LOGW(TAG,
"Reading ADS1115 timed out");
165 uint16_t raw_conversion;
166 if (!this->
read_byte_16(ADS1115_REGISTER_CONVERSION, &raw_conversion)) {
173 raw_conversion =
static_cast<uint16_t
>(
static_cast<int16_t
>(raw_conversion) >> (16 -
ADS1015_12_BITS));
176 auto signed_conversion =
static_cast<int16_t
>(raw_conversion);
182 millivolts = (signed_conversion * 6144) / divider;
185 millivolts = (signed_conversion * 4096) / divider;
188 millivolts = (signed_conversion * 2048) / divider;
191 millivolts = (signed_conversion * 1024) / divider;
194 millivolts = (signed_conversion * 512) / divider;
197 millivolts = (signed_conversion * 256) / divider;
204 return millivolts / 1e3f;