АЦП-модуль ADS1115 (Arduino)

АЦП-модуль ADS1115 представляет собой 16-битный  аналого-цифровой преобразователь, который имеет 4 входа для преобразования аналоговый сигнал в цифровой.

АЦП-модуль ADS1115 основан на одноименном чипе и содержит все необходимые для его работы внешние компоненты. АЦП-модуль совместим с I2C шиной. Оснащен программируемым усилителем и цифровым компаратором. Выполняет преобразования со скоростью передачи данных от 8 до 860 выборок в секунду (SPS).  Диапазоны входных сигналов от ± 256 мВ до ± 6.144 В. Питание модуля  3,3 В или 5 В.

Характеристики ADS1115:

  • разрешение: 16 бит
  • программируемая частота дискретизации;
  • напряжение питания: 2.0V – 5.5V;
  • низкое потребление тока: 150 мкА в рабочем режиме;
  • внутренний источник опорного напряжения;
  • 4 входа (AIN0-AIN3), которые могут использоваться как два дифференциальных входа для измерения разности напряжения между входами, либо как 4 отдельных несимметричных входа, в этом случае напряжение измеряется между одним из входов и общим проводом;
  • программируемый выходной компаратор;
  • встроенный программируемый усилитель входного сигнала PGA: до х16;
  • интерфейс : I2C: 4-контактный по выбору адреса.

При использовании несимметричного входа измерение напряжения производится относительно общего провода, в этом случае измеряется только положительное напряжение!!!

 

Модуль очень критичен к перенапряжению как по входам, так и по питанию. Превышение напряжения более чем на 5% от напряжения питания выведет его из строя!!!

Схемы подключения

Дифференциальный вход

#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads; 
/*Adafruit_ADS1115 ads(0x48);          задайте адрес устройства по которому 
будем работать на I2C шине (если уст-во одно, задавать адрес необязательно)*/
void setup(void)
{
  Serial.begin(9600);
 
  // ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit =  0.1875mV (default)
  // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit =  0.125mV
  ads.setGain(GAIN_TWO);           // 2x gain   +/- 2.048V  1 bit =  0.0625mV
  // ads.setGain(GAIN_FOUR);       // 4x gain   +/- 1.024V  1 bit =  0.03125mV
  // ads.setGain(GAIN_EIGHT);      // 8x gain   +/- 0.512V  1 bit =  0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit =  0.0078125mV
   ads.begin();
}
  int16_t results;
  float multiplier = 0.0625F; // выбран предел +/- 2.048V

void loop(void){
  results = ads.readADC_Differential_0_1();  
  Serial.print("Differential: "); 
  Serial.print(results); Serial.print("("); 
  Serial.print(results * multiplier); 
  Serial.println("mV)");
  delay(1000);
}

Несимметричные вход

#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads; 
/*Adafruit_ADS1115 ads(0x48);          задайте адрес устройства по которому 
будем работать на I2C шине (если уст-во одно, задавать адрес необязательно)*/

void setup(void) {
  Serial.begin(9600);
 
  // ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit = 0.1875mV (default)
  // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit = 0.125mV
   ads.setGain(GAIN_TWO);          // 2x gain   +/- 2.048V  1 bit = 0.0625mV
  // ads.setGain(GAIN_FOUR);       // 4x gain   +/- 1.024V  1 bit = 0.03125mV
  // ads.setGain(GAIN_EIGHT);      // 8x gain   +/- 0.512V  1 bit = 0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit = 0.0078125mV
 
  ads.begin();
}
int16_t adc0, adc1, adc2, adc3;
void loop(void) {
  adc0 = ads.readADC_SingleEnded(0);
  adc1 = ads.readADC_SingleEnded(1);
  adc2 = ads.readADC_SingleEnded(2);
  adc3 = ads.readADC_SingleEnded(3);
  Serial.print("AIN0: "); Serial.println(adc0);
  Serial.print("AIN1: "); Serial.println(adc1);
  Serial.print("AIN2: "); Serial.println(adc2);
  Serial.print("AIN3: "); Serial.println(adc3);
  Serial.println(" ");
 
  delay(1000);
}

Подключение датчика к Arduino с разным адресами I2C

Библиотека — https://github.com/addicore/ADS1115/archive/master.zip

Comments

  1. Начну с того, что получится точный измерительный комплекс на ADS1115.
    Почему в одном? ADS1115-4х канальный,
    (читал ампер-вольтметр на 1115 для БП, 2 в одном). Делать несколько устройств, накладно по деньгам,дорогие модули денег немеряно уйдет,(3 АЦП, 3 ардуин,…), а так получится:
    1-АЦП, 1-ардуин, 1-индикатор (неплохо бы
    индикатор лсд1604)
    1110 в виде модуля не нашел, 1115 и 1015 есть доступные в продаже модули.

  2. 4-й канал ADS1115,задействовать для замера ёмкости конденсаторов (если возможно).
    Получится бомба!!! Но главное точность замера параметра (иногда нужно) с минимальными затратами.

Добавить комментарий

Войти с помощью: