Например TDA7294

Форум РадиоКот • Просмотр темы - АЦП ADS1015 и измерение силы тока
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср дек 24, 2025 22:51:43

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: АЦП ADS1015 и измерение силы тока
СообщениеДобавлено: Пт фев 28, 2020 18:28:03 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06
Сообщений: 546
Откуда: Николаев / Украина
Рейтинг сообщения: 0
Всем привет!
Делаю автономное устройство на базе ESP8266. Работать оно будет от аккумулятора 18650 и заряжаться от солнечной панели через схему заряда TP5000. Мне нужно измерять напряжение на аккумуляторе, напряжение на солнечной панели, а также ток заряда аккумулятора и ток разряда. Для этих целей решил использовать внешний АЦП ADS1015, так как у ESP8266 не достаточно аналоговых входов.
Как правильно организовать схему? В режиме дифференциального измерения ADS1015 использует 2 аналоговых входа. То есть получается А0 и А1 для измерения падения напряжения на шунте от солнечной панели и А2, А3 - на шунте "разряда" аккумулятора. При этом А1 и А2 соединены вместе в точке соединения шунтов и аккумулятора. То есть, вот так:
Изображение
Может это неправильная схема подключения, я не знаю, прошу вашего совета. Может лучше поставить шунты в разрыв цепи GND?
У меня возникло несколько вопросов:
1) возможно ли использовать не 4 аналоговых входа, а 3? Ведь 1-й и 2-й все равно соединены вместе. Тогда останется один свободный Аналоговый вход для измерения напряжения на солнечной панели. То есть, вот так:
Изображение
2) возможно ли одновременно (или поочередно) измерять и напряжение на аккумуляторе? То есть, сначала Аналоговыми входами А0 и А1 измерить падение напряжения на шунте, а потом через А1 измерить напряжение на аккумуляторе?
3) Достаточно ли разрядности ADS1015 для измерения падения напряжения на шунте? Или нужно использовать ОУ?
4) Какого номинала шунты лучше всего использовать? У меня есть на 0,033 Ом, с ноутбучных аккумуляторов могу достать других номиналов: R02, 005, 0075 и др. Или лучше по-больше поставить? На пример на 1 Ом?

_________________
Сделать своими руками всегда интересней чем просто купить и пользоваться


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: АЦП ADS1015 и измерение силы тока
СообщениеДобавлено: Пн мар 02, 2020 20:05:22 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06
Сообщений: 546
Откуда: Николаев / Украина
Рейтинг сообщения: 0
Почитал более внимательно даташит: The ADS1015 contains an input multiplexer (MUX), as shown in Figure 10. Either four single-ended or two
differential signals can be measured. Additionally, AIN0 and AIN1 may be measured differentially to AIN3.

То есть можно для измерений в дифференциальном режиме использовать 3 вывода: А0, А1 и А3. А3 должен быть средним. Проверил, работает!
Так же проверил возможность переключения режимов работы пина А3 между дифференциальным измерением и одиночным - тоже все работает!

Спойлер
Код:
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1015 ads;     /* Use thi for the 12-bit version */

void setup(void)
{
  Serial.begin(9600);
  Serial.println("Hello!");
 
  Serial.println("Getting differential reading from AIN0 (P) and AIN1 (N)");
  Serial.println("ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)");
 
  // The ADC input range (or gain) can be changed via the following
  // functions, but be careful never to exceed VDD +0.3V max, or to
  // exceed the upper and lower limits if you adjust the input range!
  // Setting these values incorrectly may destroy your ADC!
  //                                                                ADS1015  ADS1115
  //                                                                -------  -------
  // ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit = 3mV      0.1875mV (default)
  // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit = 2mV      0.125mV
  // ads.setGain(GAIN_TWO);        // 2x gain   +/- 2.048V  1 bit = 1mV      0.0625mV
  // ads.setGain(GAIN_FOUR);       // 4x gain   +/- 1.024V  1 bit = 0.5mV    0.03125mV
  // ads.setGain(GAIN_EIGHT);      // 8x gain   +/- 0.512V  1 bit = 0.25mV   0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit = 0.125mV  0.0078125mV
 
  ads.begin();
}

void loop(void)
{
  int16_t results;
  float   multiplier = 3.0F;    /* ADS1015 @ +/- 6.144V gain (12-bit results) */

  results = ads.readADC_Differential_0_3(); 
  Serial.print("Differential 0-3: "); Serial.print(results); Serial.print("("); Serial.print(results * multiplier); Serial.println("mV)");
 
  results = ads.readADC_Differential_1_3();   
  Serial.print("Differential 1-3: "); Serial.print(results); Serial.print("("); Serial.print(results * multiplier); Serial.println("mV)");

  int16_t adc0, adc1;   //, adc2, adc3;
  adc0 = ads.readADC_SingleEnded(3);
  Serial.print("AIN3: "); Serial.print(adc0); Serial.print(" Voltage: "); Serial.println(float((adc0*3)/1000.0));
  adc0 = ads.readADC_SingleEnded(2);
  Serial.print("AIN2: "); Serial.print(adc0); Serial.print(" Voltage: "); Serial.println(float((adc0*3)/1000.0));
  Serial.println();

  delay(1000);
}

_________________
Сделать своими руками всегда интересней чем просто купить и пользоваться


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: АЦП ADS1015 и измерение силы тока
СообщениеДобавлено: Пн мар 02, 2020 20:53:29 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ну, и не забываем, что А2 и А3 тоже работают дифференциально.

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y