ADS1115 with Arduino Nano same voltage output

Hi, guys. I'm new to arduino and engineering stuff. Have mercy on me.

When the motion detects movement, A0= 3.3V if not 0V.

Chips:
ADS1115, SR602 Motion Sensor, Arduino Nano.

When motion sensor = 3.3V or 0V:
ADS1115 multimeter reading
VCC = 3.3V
GND = 0V
SCL = 3.3V
SDA = 3.63V
A0= 0 or 3.3V

Something is not right with my ADS1115. Whenever the motion sensor detects motion, SCL and SDA remains the same value.

I have tried with another ADS1115 and a new set of Arduino Nano with 5V(ADS1115). VCC,SDL,SDA=5V, A0=3V. Same Arduino Nano output. Please help!

The Arduino Nano result in serial monitor:
A0=-0.2
A1=-0.2

A2=-0.2
A3=-0.2

#include <Wire.h>
#include <Adafruit_ADS1015.h>
 
Adafruit_ADS1115 ads; // Using default (0x48 path)
const float multiplier = 0.015625;
int led_motion = 2;




//float alrt;
void setup(void) 
{
  Serial.begin(9600);
  ads.setGain(GAIN_EIGHT);

  // ads.setGain(GAIN_TWOTHIRDS);  +/- 6.144V  1 bit = 0.1875mV (default)
//   ads.setGain(GAIN_ONE);        +/- 4.096V  1 bit = 0.125mV
  // ads.setGain(GAIN_TWO);        +/- 2.048V  1 bit = 0.0625mV
  // ads.setGain(GAIN_FOUR);       +/- 1.024V  1 bit = 0.03125mV
  // ads.setGain(GAIN_EIGHT);      +/- 0.512V  1 bit = 0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    +/- 0.256V  1 bit = 0.0078125mV 
  
  ads.begin(); // Initialise ads1115
}
 
void loop(void) 
{
  int16_t adc0, adc1, adc2, adc3;


  adc0 = ads.readADC_SingleEnded(0); 
  adc1 = ads.readADC_SingleEnded(1);
  adc2 = ads.readADC_SingleEnded(2);
  adc3 = ads.readADC_SingleEnded(3);


  int16_t results;

  Serial.print("AIN0: "); Serial.println(adc0 * multiplier);
  Serial.print("AIN1: "); Serial.println(adc1 * multiplier);
  Serial.print("AIN2: "); Serial.println(adc2 * multiplier);
  Serial.print("AIN3: "); Serial.println(adc3 * multiplier);
  

  Serial.println(" ");



  delay(1000);
}

I don't remember if the ADS1115 module has I2C pull-ups (you can check that by disconnect it and measure the resistance between SDA and Vcc and SCL and Vcc).

If it does not have any pull-ups, add pull-up resistors between SDA and Vcc and SCL and Vcc. 4k7 to 6k8 would do fine.

thehardwareman:
I don't remember if the ADS1115 module has I2C pull-ups (you can check that by disconnect it and measure the resistance between SDA and Vcc and SCL and Vcc).

If it does not have any pull-ups, add pull-up resistors between SDA and Vcc and SCL and Vcc. 4k7 to 6k8 would do fine.

Hello Hardwareman, thank you for replying. I have checked the pull-up resistance for SCL and SDA, its 9.0kohm, 107kohm respectively. Is there a specific level-up voltage do I need for the SCL/SDA line? current it shows 3.3V for Vcc =3.3V.

Please post a hand drawn wiring diagram (take a picture with your phone). It is not possible to make sense of the photo.

apparition17:
Hello Hardwareman, thank you for replying. I have checked the pull-up resistance for SCL and SDA, its 9.0kohm, 107kohm respectively. Is there a specific level-up voltage do I need for the SCL/SDA line? current it shows 3.3V for Vcc =3.3V.

107 kohm sound too high. Since the values are different I suspect there are no pull-ups. Try to add external pull-ups to both SDA and SCL.

jremington:
Please post a hand drawn wiring diagram (take a picture with your phone). It is not possible to make sense of the photo.

Done. Pardon my drawing.

thehardwareman:
107 kohm sound too high. Since the values are different I suspect there are no pull-ups. Try to add external pull-ups to both SDA and SCL.

I added 4.7kOhm pull-up resistor from 3.3Vcc to both SCL and SDA line
The arduino serial reading:
A0=-0.2
A1=-0.2
A2:=-0.2
A3:=-0.2

Multimeter reading:
SCL= 3.3V
SDA= 2.43V

What does the multimeter indicate for the voltages on the ADC inputs?

The "Arduino serial reading" values make no sense.

jremington:
What does the multimeter indicate for the voltages on the ADC inputs?

The "Arduino serial reading" values make no sense.

Yes bro. Feel like throwing my board away :'(.
ADS multimeter reading:
Vcc=3.27V
GND=0V
SCL=3.4V
SDA=3.4V
A0= 0 or 3.27V (depending on motion detected)
A1=0.18V
A2= 0.17V
A3= 0.16V

Strange result. I will attempt to use Original Arduino Uno once its delivered.

Remove the sensor and test just the Nano and the ADC, using an AA cell as the input voltage. Redo and check continuity of all breadboard connections. Breadboards are unreliable and you may have floating inputs.

It is a bad idea to power the Nano with 12V, and expect it to power anything else. That stresses or overheats the internal voltage regulators, with unknown consequences.

A phone charger connected to Vcc (5V) and GND will work much better, and power your other chips as well. The ADS1115 may be powered with 5V.

jremington:
Remove the sensor and test just the Nano and the ADC, using an AA cell as the input voltage. Redo and check continuity of all breadboard connections. Breadboards are unreliable and you may have floating inputs.

It is a bad idea to power the Nano with 12V, and expect it to power anything else. That stresses or overheats the internal voltage regulators, with unknown consequences.

A phone charger connected to Vcc (5V) and GND will work much better, and power your other chips as well. The ADS1115 may be powered with 5V.

I agreed with you. Fortunately, I found out the problem. It lies with the voltage tolerance of ADS1115. My arduino still able to detected when I tested on digitalWrite and anlogRead and works with a newer set of ADS1115. After reading into ADS1115 datasheet and found the chip AnalogIn only capable of handling max VDD +0.3V. So if there a slight static increase in the voltage, boom.
The potential divider I did on multiple ADS1115 chips (Different version chips - with different inbuild resistor i presumed) must have blew most connecting ADS1115. :confused: Hey Thanks Jrmington. You overvoltage idea brought me this solution. However, which Pin on the ADS1115 caused the chip to blew? SCL/SDA/AnalogInput?

It is impossible to say how the ADC was damaged, but the input "voltage tolerance" issue is true for almost all chips, including the Arduino processor.

The input voltage must never go below GND by the same amount.

Always check the data sheet for absolute maximum values, stay well inside the range and you should be safe.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.