ADS1115 strange readings

Hi,

I'm working on a project where I need to read three sensors with a reasonable level of precision. So I've been working with an ADS1115 on a breakout board for development. Everything is great when the sensors are attached, they read the expected voltage with no issue. Single-ended readings and I've been using both the Adafruit ADS1x15 and Rob Tillaart's ADS1x15 libraries. I've been using Arduino Uno, Arduino Nano and Lilygo TDisplay-S3 boards and get consistent results.

The problem I am having is with nothing attached I am getting a reading of 75-80mV on any channel that doesn't have a sensor connected. The issue is that the sensors (Analytical Industries PSR-11-33-NM1 oxygen sensors) operate in the 20-100mV range in the conditions I'm working with and a false reading of 75-80mV is right in what would be the perfect spot for the environment I'm monitoring.

Any ideas for eliminating this? Is this just down to the input pin being allowed to float when nothing is connected? I've tried it with 10k resistors between the input pins and ground and this drops it to zero without affecting the voltage being read when a sensor is then connected (there is a slight difference but can be dealt with via calibration). Is this the best approach or am I introducing another issue by doing this? It's fairly important that if something fails then it needs to be obvious to the user reading the display that it has failed.

I haven't attached any code as this is happening with the example single-ended code from both Adafruit and Rob Tillaart's libraries. Circuit is just the standard I2C connections on a breadboard with jumpers. Same results with Uno, Nano & TDisplay and I've tried both the ADS1115 boards I've got (from different sources).

The other issue I'm having is that I want the application to be able to check that the ADC is functioning. I've been using the Wire.beginTransmission; Wire.endTransmission structure to check if it is available. It returns 0 when available (great!). With either the ground, SCL or SDA leads disconnected I get a 2 returned to show an error (also great!). But with the VCC lead disconnected I still get a 0 (not so great). Is this normal and is there any way around that?

Cheers,

Stuart

That's normal. You are just reading noise and any electrical signals floating around in the air.
What do you read if you short the input to ground?

Once you connect the sensor with resistor,it won't pick up the ectraneous noise, unless you have long wires

That is the usual approach, but with typically much higher values of resistance. Try 10 Meg.

Avoid "floating inputs"!

Thanks, looks like the resistor to ground is the way to go then.

Depends on your oxygen sensor, some actually require a load resistor.
10K seems reasonable