ADS1115

Ilyardu
Offline
Зарегистрирован: 19.02.2018

Здравствуйте, при работе с ADS1115 выводит только нули. Использовал разные скетчи, проверял адрес модуля программой, само подключение. С чем это может быть связано?
 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ilyardu пишет:

С чем это может быть связано?
 

С тем, что либо неправильно подключено, либо используется неправильный скетч. Вы же ни того ни другого нам не показываете, так что проверяйте сами.

Ilyardu
Offline
Зарегистрирован: 19.02.2018

Схема подключения выглядит точно так, вот скетч(так же пробывал встроенные в библиотеку скетчи)

#include <Wire.h>
#include <Adafruit_ADS1015.h>
 
Adafruit_ADS1015 ads(0x48);
float Voltage = 0.0; 
 
void setup(void) 
 
Serial.begin(9600);
 
ads.begin(); 
void loop(void) 
 
int16_t adc1; 
 
adc1 = ads.readADC_SingleEnded(1); 
 
Voltage = (adc1 * 0.1875)/1000;
 
Serial.print("AIN1: "); 
Serial.print(adc1); 
 
Serial.print("\tVoltage: "); 
Serial.println(Voltage, 7); 
Serial.println(); 
delay(1000); 

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Я может ошибаюсь, но readADC_SingleEnded() это вроде измерение между входом и землёй, а у Вас на два входа батарейка подключена.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так "-" батареи разве не надо на GND завести? Вроде в п. 9.3.1 даташита это прямо сказано ("When single-ended signals are measured, the negative input of the ADC is internally connected to GND by a switch within the multiplexer"), т.е. он измеряете относительно своего GND.

Можно, конечно, "-" батареи подать и на AIN3 и измерять остальные AIN's относительно его, но для этого надо специально MUX конфигурировать (см. п. 10.1.2 даташита), но именно AIN3, а не AIN0, как у Вас.

Ilyardu
Offline
Зарегистрирован: 19.02.2018

ЕвгенийП пишет:

Так "-" батареи разве не надо на GND завести? 

Пробовал по-разному, результаты АЦП всегда равны нулю, не должны ли быть какие-нибудь помехи?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ilyardu пишет:

Пробовал по-разному, результаты АЦП всегда равны нулю, не должны ли быть какие-нибудь помехи?

Я не знаю. С тех пор, как человек здесь читал сигнал с пина Ресет и потом до усрачки нам всем доказывал, что это можно делать, я даже не пытаюсь догадываться что и как люди "пробуют по-разному", а обсуждаю только то, что вижу. Пока я вижу схему на которой измеряемое напряжение подключено неправильно и код, который не читал потому, что он неправильно выложен и его невозможно обсуждать (нет номеров строк).

Появится схема и код "по-разному" будем обсуждать "по-разному", а если схемы и кода нет - то и обсуждать нечего.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Ilyardu пишет:
Использовал разные скетчи

Вы бы хоть демку от библы посмотрели  -
// Adafruit_ADS1115 ads;  /* Use this for the 16-bit version */
Adafruit_ADS1015 ads;     /* Use thi for the 12-bit version */
Комментарии для кого пишутся?

Плюс, как замечено выше - 
Вы прицепили измеряемую батарею к дифф. входу, а получить значение хотите с "однополярного".

Ilyardu
Offline
Зарегистрирован: 19.02.2018

ЕвгенийП пишет:

Появится схема и код "по-разному" будем обсуждать "по-разному", а если схемы и кода нет - то и обсуждать нечего.

#include <Adafruit_ADS1015.h>
#include <Wire.h>

Adafruit_ADS1115 ads(0x48);
float Voltage = 0.0; 

void setup(void) 
{ 
Serial.begin(9600);
ads.begin(); 
} 
void loop(void) 
{ 
int16_t adc0; 
adc0 = ads.readADC_SingleEnded(0); 
Voltage = (adc0 * 0.1875)/1000;
Serial.print("AIN0: "); 
Serial.print(adc0); 

Serial.print("\tVoltage: "); 
Serial.println(Voltage, 7); 
Serial.println(); 
delay(1000); 
} 

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Ilyardu, A4 - SDA A5 -SCL

Ilyardu
Offline
Зарегистрирован: 19.02.2018

Да, только на этой схеме перепутал.

Ilyardu
Offline
Зарегистрирован: 19.02.2018

OlegK пишет:

Adafruit_ADS1015 ads;     /* Use thi for the 12-bit version */
 

Изменил, но ничего не поменялось. АЦП нули выводит.

selan61
Offline
Зарегистрирован: 15.12.2017

Подключал по приведеной схеме, использовал пример из библиотеки, всё прекрасно работает.

Правда я в библиотеке Adafruit_ADS1015.cpp закоментировал строку Wire.begin(), а в setup вставил 

 Wire.begin(); // SDA SCL I2C
 ads.begin();        //включаем АЦП
 
Вот кусок скетча что у меня работает
#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads(0x48); //16 бит и адрес устройства

int Voltage0;
int Voltage1; 
float Voltage2;
float Voltage3;

void setup(void)
{
   Wire.begin(); // SDA SCL I2C
  ads.begin();        //включаем АЦП

}

void loop()
{
  ADS1115();
}

void ADS1115(){
  // получаем и формируем данные с ADS1115
  int16_t adc0, adc1, adc2, adc3;     // на выходе АЦП получаем 16-разрядное целое
  adc0 = ads.readADC_SingleEnded(0);  //Измеряем напряжение1 220
  adc1 = ads.readADC_SingleEnded(1);  //Измеряем напряжение2 220
  adc2 = ads.readADC_SingleEnded(2);  //Измеряем напряжение3 13,5
  adc3 = ads.readADC_SingleEnded(3);  //Измеряем напряжение4 13,5
  Voltage0 = (adc0 * 0.1875)/15;      //пересчитываем в 220 вольт
  Voltage1 = (adc1 * 0.1875)/15;      //пересчитываем в 220 вольт
  Voltage2 = (adc2 * 0.1875)/250;     //пересчитываем в 13,5 вольт
  Voltage3 = (adc3 * 0.1875)/250;     //пересчитываем в 13,5 вольт
  }

 

 

qwerty987
Offline
Зарегистрирован: 03.10.2020

Здравствуйте, пробую подключить модуль ads1115 с Али к ардуино уно, и он после 10 секунд работы отрубает данные и обрубает шину i2c, после этого i2c scanner уже не работает. Через некоторое время ситуация может повториться, модуль неожиданно включается, работает немного и снова вырубается на несколько часов... Если подключить одновременно по шине еще и экран, то он не работает. Скетч стандартный, как в этой теме. Может кто с таким сталкивался? Адрес 0x48 на земле. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Как выглядит модуль?

qwerty987
Offline
Зарегистрирован: 03.10.2020

sadman41
Offline
Зарегистрирован: 19.10.2016

По ходу он на 3.3V, а вы его в 5V втыкаете. 

PS. Хотя нет, у меня тоже без доп. стабилизаторов, но с 5V работал...

qwerty987
Offline
Зарегистрирован: 03.10.2020

 По даташиту сам чип от 2 до 5.5. Или там есть разные ревизии по питанию?

sadman41
Offline
Зарегистрирован: 19.10.2016

Да спутал я с каким-то другим модулем, видимо.