|
5 | 5 | #include "MultiPlexer_ADS1115.h" |
6 | 6 |
|
7 | 7 | MultiPlexer_ADS1115::MultiPlexer_ADS1115( |
8 | | - int16_t max_voltage, |
9 | | - int16_t range_min, |
10 | | - int16_t range_max, |
11 | 8 | int i2c_addr, |
12 | 9 | ADS1115_RANGE voltage_range |
13 | 10 | ) { |
14 | | - _maxVoltage = max_voltage; |
15 | | - _rangeMin = range_min; |
16 | | - _rangeMax = range_max; |
17 | 11 | _i2cAddress = i2c_addr; |
18 | 12 | _voltageRange = voltage_range; |
19 | 13 |
|
@@ -41,37 +35,37 @@ void MultiPlexer_ADS1115::begin() { |
41 | 35 | void MultiPlexer_ADS1115::loop() { |
42 | 36 | } |
43 | 37 |
|
44 | | -int16_t MultiPlexer_ADS1115::readChannel(ADS1115_MUX channel) { |
| 38 | +int16_t MultiPlexer_ADS1115::readChannel(ADS1115_MUX channel, int16_t max_voltage, int16_t range_min, int16_t range_max) { |
45 | 39 | _adc->setCompareChannels(channel); |
46 | 40 | _adc->startSingleMeasurement(); |
47 | 41 |
|
48 | 42 | while (_adc->isBusy()) {} |
49 | 43 |
|
50 | | - return _adc->getResultWithRange(_rangeMin, _rangeMax, _maxVoltage); |
| 44 | + return _adc->getResultWithRange(range_min, range_max, max_voltage); |
51 | 45 | } |
52 | 46 |
|
53 | | -int16_t MultiPlexer_ADS1115::readChannel0() { |
54 | | - return readChannel(ADS1115_COMP_0_GND); |
| 47 | +int16_t MultiPlexer_ADS1115::readChannel0(int16_t max_voltage, int16_t range_min, int16_t range_max) { |
| 48 | + return readChannel(ADS1115_COMP_0_GND, max_voltage, range_min, range_max); |
55 | 49 | } |
56 | 50 |
|
57 | | -int16_t MultiPlexer_ADS1115::readChannel1() { |
58 | | - return readChannel(ADS1115_COMP_1_GND); |
| 51 | +int16_t MultiPlexer_ADS1115::readChannel1(int16_t max_voltage, int16_t range_min, int16_t range_max) { |
| 52 | + return readChannel(ADS1115_COMP_1_GND, max_voltage, range_min, range_max); |
59 | 53 | } |
60 | 54 |
|
61 | | -int16_t MultiPlexer_ADS1115::readChannel2() { |
62 | | - return readChannel(ADS1115_COMP_2_GND); |
| 55 | +int16_t MultiPlexer_ADS1115::readChannel2(int16_t max_voltage, int16_t range_min, int16_t range_max) { |
| 56 | + return readChannel(ADS1115_COMP_2_GND, max_voltage, range_min, range_max); |
63 | 57 | } |
64 | 58 |
|
65 | | -int16_t MultiPlexer_ADS1115::readChannel3() { |
66 | | - return readChannel(ADS1115_COMP_3_GND); |
| 59 | +int16_t MultiPlexer_ADS1115::readChannel3(int16_t max_voltage, int16_t range_min, int16_t range_max) { |
| 60 | + return readChannel(ADS1115_COMP_3_GND, max_voltage, range_min, range_max); |
67 | 61 | } |
68 | 62 |
|
69 | | -ADS1115Result MultiPlexer_ADS1115::readAll() { |
| 63 | +ADS1115Result MultiPlexer_ADS1115::readAll(int16_t max_voltage, int16_t range_min, int16_t range_max) { |
70 | 64 | ADS1115Result result; |
71 | | - result.channel0 = readChannel0(); |
72 | | - result.channel1 = readChannel1(); |
73 | | - result.channel2 = readChannel2(); |
74 | | - result.channel3 = readChannel3(); |
| 65 | + result.channel0 = readChannel0(max_voltage, range_min, range_max); |
| 66 | + result.channel1 = readChannel1(max_voltage, range_min, range_max); |
| 67 | + result.channel2 = readChannel2(max_voltage, range_min, range_max); |
| 68 | + result.channel3 = readChannel3(max_voltage, range_min, range_max); |
75 | 69 |
|
76 | 70 | return result; |
77 | 71 | } |
0 commit comments